Robot autónomo que ya tiene en su bolsillo! (3 / 6 paso)

Paso 3: Software - análisis de

En este paso, queremos analizar si somos capaces:
1) leer la posición de stick de receptor
3) servo control
2) control ESC

Para esto proponemos vamos a utilizar configuración de prueba mencionado en la página 2. Los componentes son:
1) android IOIO con escudo de la página 2.
2) receptor conectado a los pines digitales 3-7
3) conectado al pin 10 terminal de ESC
4) servo conectado al pin 11 terminal
Mi ESC incluye BEC, que significa que puede suministrar el IOIO forma tablero conectado ESC. En este caso, Lumpur negro en nuestro escudo se colocará en el lado izquierdo, pin VIN en tablero IOIO se conectará a bornes de servo (ESC suministrará Junta IOIO).

Desarrollo de software, necesita instalar el entorno de desarrollo Android estándar e incluyen bibliotecas IOIO para su proyecto. Usted puede encontrar el tutorial aquí: umentation https://www.sparkfun.com/tutorials/280 y doc Proyecto Android IOIO aquí: https://github.com/ytai/ioio/wiki

Nuestra aplicación de prueba tiene interfaz gráfica de usuario sencilla, necesitamos:
2 slider x servo control y ESC (control de pines PWM 10, 11)
5 x valores de muestra de etiqueta del receptor (anchura de pulso de caña en las patillas 3-7)

Android IOIO ofrece entrada de pulsos. Este tipo de entrada permite leer ancho de pulso entrante, por lo que es ideal para la lectura pulsos receptor forma. IOIO tiene disponibles 6 unos (3 precisión simple, precisión doble 3) se puede utilizar 6 sola o precisión doble 6, debe separar. Utilizamos PWM para la conducción de CES y Servos. Usted puede encontrar las funciones de cada pin aquí https://github.com/ytai/ioio/wiki/Getting-To-Know-The-Board

Esta aplicación de prueba tener relé simple código:

la clase MainActivity extiende {IOIOActivity}
privado TextView ch1, ch2, ch3, ch4, ch5;
seekBar1 privado de SeekBar, seekBar2;
int privados seekBar1_val, seekBar2_val;

protegido void onCreate(Bundle savedInstanceState) {}
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

CH1=(TextView)findViewById(R.ID.ch1_text);
CH2=(TextView)findViewById(R.ID.ch2_text);
CH3=(TextView)findViewById(R.ID.ch3_text);
CH4=(TextView)findViewById(R.ID.ch4_text);
CH5=(TextView)findViewById(R.ID.ch5_text);

seekBar1 = findViewById(R.id.seekBar1) (SeekBar);
seekBar2 = findViewById(R.id.seekBar2) (SeekBar);

seekBar1_val = 1000;
seekBar2_val = 1500;

seekBar1.setMax(1000);
seekBar2.setMax(1000);

seekBar2.setProgress(500);

seekBar1.setOnSeekBarChangeListener (new OnSeekBarChangeListener() {

público vacío onStopTrackingTouch (SeekBar seekBar) {}
}

público vacío onStartTrackingTouch (SeekBar seekBar) {}
}

público vacío onProgressChanged (SeekBar seekBar, progreso de int, boolean fromUser) {}
seekBar1_val = progreso + 1000;
}
});

seekBar2.setOnSeekBarChangeListener (new OnSeekBarChangeListener() {

público vacío onStopTrackingTouch (SeekBar seekBar) {}
}

público vacío onStartTrackingTouch (SeekBar seekBar) {}
}

público vacío onProgressChanged (SeekBar seekBar, progreso de int, boolean fromUser) {}
seekBar2_val = progreso + 1000;
}
});
}

{} público boolean onCreateOptionsMenu (menú)
Inflar el menú; Esto, agrega elementos a la barra de acción si está presente.
getMenuInflater () .inflate (R.menu.main, menu);
verdaderas;
}

clase del lazador amplía {BaseIOIOLooper}
pulse_ch1 de PulseInput privado;
pulse_ch2 de PulseInput privado;
pulse_ch3 de PulseInput privado;
pulse_ch4 de PulseInput privado;
pulse_ch5 de PulseInput privado;

privado PwmOutput M1;
PwmOutput Servo privada;

pública ch1_val de flotador;
pública ch2_val de flotador;
pública ch3_val de flotador;
pública ch4_val de flotador;
pública ch5_val de flotador;

privado led_ DigitalOutput;

lanza de protegidas void setup() {} ConnectionLostException
pulse_ch1 = ioio_.openPulseInput (3, PulseMode.POSITIVE);
pulse_ch2 = ioio_.openPulseInput (4, PulseMode.POSITIVE);
pulse_ch3 = ioio_.openPulseInput (5, PulseMode.POSITIVE);
pulse_ch4 = ioio_.openPulseInput (new DigitalInput.Spec(6),
PulseInput.ClockRate.RATE_250KHz,
PulseInput.PulseMode.POSITIVE,
falso);
pulse_ch5 = ioio_.openPulseInput (new DigitalInput.Spec(7),
PulseInput.ClockRate.RATE_250KHz,
PulseInput.PulseMode.POSITIVE,
falso);

M1 = ioio_.openPwmOutput (10, 50);
Servo = ioio_.openPwmOutput (11, 50);


led_ = ioio_.openDigitalOutput (0, true);
}

lanza de público void loop() {ConnectionLostException}
led_.Write(false);
trate de {}
ch1_val = pulse_ch1.getDuration() * 1000;
ch2_val = pulse_ch2.getDuration() * 1000;
ch3_val = pulse_ch3.getDuration() * 1000;
ch4_val = pulse_ch4.getDuration() * 1000;
ch5_val = pulse_ch5.getDuration() * 1000;

M1.setPulseWidth(seekBar1_val);
Servo.setPulseWidth(seekBar2_val);

Thread.Sleep(100);
} catch (InterruptedException e) {}
}
runOnUiThread (new Runnable() de {}

público void run() {}
CH1.setText (String.format ("%.2f", ch1_val));
CH2.setText (String.format ("%.2f", ch2_val));
CH3.setText (String.format ("%.2f", ch3_val));
CH4.setText (String.format ("%.2f", ch4_val));
CH5.setText (String.format ("%.2f", ch5_val));
}
});
}
}

protegida IOIOLooper createIOIOLooper() {
volver a Looper() nuevo;
}

}

Nuestro análisis ha ido bien, que podemos:
1) leer la posición de stick de receptor vía entradas digitales
3) servo control
2) control ESC

Vídeo de la prueba:

Artículos Relacionados

Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Chefbot: Un bricolaje móvil robot autónomo para servir comida en los hoteles

Como dice el titulo, vamos a ver cómo construir un robot móvil autónomo llamado Chefbot que es para servicio de alimentos y bebidas en hoteles y restaurantes.Este fue un proyecto de hobby y construí este robot después de ver un robot llamado Turtlebo
JAAR DIY - un Robot autónomo

JAAR DIY - un Robot autónomo

Concepto de JAAR no está haciendo casi un Rover.. .blindly como le digo y engañar... su más que haciendo un Robot... he incorporado la mayor parte de mi aprendizaje de los últimos 6 meses para este proyecto... hablando en serio yo soy apenas un princ
Desviación de obstáculo de Robot autónomo MICBot

Desviación de obstáculo de Robot autónomo MICBot

MICBot es un robot autónomo para detección de obstáculos y desviaciones y va alrededor,obras interiores o exteriores.Paso 1: Ultrasonido Sensor SFR05 Por lo tanto, esta solución utiliza el sensor de ultrasonidos como una medida de distancia y le perm
Cómo hackear un controlador inalámbrico de la Xbox para hacer un robot autónomo!

Cómo hackear un controlador inalámbrico de la Xbox para hacer un robot autónomo!

Introduction:Este proyecto surgió al tratar de hacer un robot autónomo de bajo costo para uso enEducación. La idea es que los estudiantes serían capaces de identificar con el controlador de Xboxy disfruta de hacking en algo mucho más interesante!Un d
Morder el Robot autónomo obstáculos «Sanglier» (jabalí)

Morder el Robot autónomo obstáculos «Sanglier» (jabalí)

concepto GeneralNuestra primera idea fue crear un robot oruga capaz de subir escaleras y un montón de otros obstáculos, para llegar a una buena velocidad (alrededor de 10 o 15 km/h) mientras que la filmación y transmisión de datos. Se decidirá si pue
Wallbots: Robots magnéticos autónomos que atraviesan las superficies verticales

Wallbots: Robots magnéticos autónomos que atraviesan las superficies verticales

este Instructable le mostrará cómo crear robots magnéticos que atraviesan las superficies verticales. Estos robots pueden moverse en las paredes metálicas, incluyendo elevadores, pizarras, neveras o puertas metálicas.El robot está equipado con varios
Construir un Robot autónomo de Wall-E

Construir un Robot autónomo de Wall-E

Hola! Después pide una kabillion, aquí tienes! Este robot está ejecutando el EZ-B disponible en http://www.ez-robot.comPrimero una pequeña introducción, ver el vide: http://www.youtube.com/watch?v=OJiMUzJHYFkComencé con el juguete titulado "Wall-E in
Robot autónomo de Arduino (Land Rover / coche) Stage1Model2

Robot autónomo de Arduino (Land Rover / coche) Stage1Model2

Mediados agosto de 2014 - decidí seguir robótica y construir un robot humanoide con grandes.Este robot sería construida en varias etapas. La etapa 1 es construir un Land Rover. Modelo1 enStage1 fue el Land Rover sin microcontrolador Model2 es uno con
Robot autónomo con LinkitONE

Robot autónomo con LinkitONE

¿Siempre se pregunta cómo autónomos robots están hechos? ¿Quería hacer un proyecto fresco? ¿Tienes un tablero de Linkit? Entonces estás en el lugar correcto!Aquí estará haciendo un robot con LinkitONE con piezas robóticas y servomotores.Permite comen
Robot autónomo principiante (parcialmente)

Robot autónomo principiante (parcialmente)

Todos los no parcialmente programación del robot VI requiere spdt interruptores que pueden obtener fácilmente activados, pero no tengo ese lujo. Así que hice un simple y fácil de hacer robot parcialmente autónomo.Paso 1: Ir a buscar las cosas2 x moto
Primera siempre Real pan de jengibre Robot autónomo (demanda)

Primera siempre Real pan de jengibre Robot autónomo (demanda)

dos ingenieros no se deben dejar solos durante una tormenta de nieve con gingerbread y un microcontrolador.  Los siguientes documentación de los resultados:Se trata de un acantilado autónomo detección robot de pan de jengibre, comúnmente conocida com
Robot autónomo barato

Robot autónomo barato

este instructivo detalla el robot que construido para la clase en la escuela. (Para el concurso de robot te diré que estoy entre 13 y 18)Materiales:-1 tablero de programación de PICAXE-2' de metal espiga de 7/64"-lámina de plástico de 1'x 1' negro 1-
DIY Robot autónomo inteligente (animal doméstico electrónico) /w Arduino

DIY Robot autónomo inteligente (animal doméstico electrónico) /w Arduino

Me encanta a todo tipo de robots especialmente autónoma o robots inteligentes, que tienen una inteligencia un poco más que evitar un obstáculo. Así que he decidido que voy construir mi propio robot inteligente barato tiene una estructura en la cámara
Robot autónomo del Autonavigation (Arduino)

Robot autónomo del Autonavigation (Arduino)

Hola,Esta es una guía paso a paso para construir un robot de navegación autónoma. Utilizamos el microcontrolador de Arduino para el control de este robot. Contamos con dos programas diferentes para este robot. El primero permite que el robot conducir