Cámaras

Para este proyecto me gustaría utilizar un total de tres cámaras. Tomando como referencia los videojuegos diríamos: una en tercera persona, una en segunda y la última en primera persona.
- La cámara en tercera persona sería fija, estará instalada en algún punto de la habitación en la que se vaya a desplazar el robot, mostrando todo el ángulo posible para poder ver en que situación se encuentra el vehículo.
- La cámara en segunda persona es inalámbrica, iría colocada sobre el vehículo, de forma que pudieramos ver el cuerpo del coche y parte del terreno que tenemos delante.
- La cámara en primera persona también es inalámbrica. Iría montada en el morro del coche, para mostrarnos lo que tenemos justo delante de nosotros. Esta cámara está pensada para los movimientos que requieren más precisión, como coger cosas, arrastrarlas, disparar...

En este post quiero centrarme en las cámaras que irán montadas en el vehículo, ya que la cámara fija será una simple cámara USB, sin mayor complicación.


Objetivo: Instalar cámaras inalámbricas en el vehículo que sean relativamente económicas y no muy pesadas.


PRIMERA OPCIÓN:



Podría utilizar el mismo sistema que se utiliza en aeromodelismo para vuelo FPV (First Person View).
Esto significa utilizar una mini cámara PAL con una emisora para la señal de video. Que en este caso podemos utilizar la versión que ya lleva la emisora incorporada, ya que no tenemos tanto problema de espacio. Estas camaritas pesan muy poco y el consumo es muy bajo. Podríamos estar hablando de unos 150g para una cámara con visión nocturna y una calidad de video relatavimente buena. Y un consumo de 120mAh con los IR apagados.
Necesitaremos un receptos de video, que no es gran problema, ya que los hay por menos de 30€ que dan bastante buen resultado.
El problema lleva a la hora de llevar la señal de video al PC. Necesitaremos una capturadora con varias entradas de video, que puede resultar un problema si queremos tener el servidor bajo linux. Aunque para windows hay saluciones muy económicas. Yo de momento sigo sin encontrar una tarjeta que no se dispare de precio y que me puedan asegurar que funciona sobre linux.
Todo esto sin tener en cuenta que la señal de video se transmite a 2,4GHz y puede interferir con la WLAN

Consumo total: 150mAh.
Coste total: (Cámara 35€) + (Receptor 27€) + (Capturadora 50€) = 112€
Cámara extra: (Cámara 35€) + (Receptor 27€) = 62€
Pros:
- Poco peso.
- Muy bajo consumo.
Contras:
- Incompatibilidad con Linux.
- Interferencias con la Wlan.



SEGUNDA OPCIÓN:

Esta sería utilizando una cámara IP inalámbrica. Como ejemplo he tomado la FOSCAM FI8908W. Esta cámara tiene una calidad de imagen bastante buena. También dispone de visión nocturna y tiene un alcance de hasta 15 metros.
Utilizando una cámara IP se acabarían los problemas de incompatibilidad, y tampoco necesitamos accesorios, si nuestro router dispone de wifi.
Los inconvenientes de esta cámara son el peso y el consumo. De serie pesa unos 400g, que espero poder rebajar quitándole la base y toda la carcasa que no sea necesaria. En caso de no que motorizarla, también me puedo ahorrar los servos, si es que son muy pesado o consumen mucho (está por ver). El consumo está cerca de 500mAh con los IR apagados, que también espero poder rebajar desmontando las partes del circuito que no sean necesarias, pero esto ya lo veo menos probable.

Consumo total: 500mAh.
Coste total: (Cámara 60€) + (Bateria extra 30€) = 90€
Cámara extra: (Cámara 60€) = 62€
Pros:
- Fácil configuración.
- Buena calidad de video.
Contras:
- Mucho peso.
- Consumo elevado.



He encontrado algunas otras soluciones, que he descartado por ser muy parecidas a estas dos, o por necesitar demasiado tiempo de desarrollo.

De todos modos, si conoceis alguna otra opción que penseis que puede ser mejor que cualquiera de estas dos, os agradecería que la compartierais, igual que cualquier consejo que podais darme sobre el tema.

Gracias!
Continue reading

Esquema de conexiones

Sigo trabajando en el interfaz gráfico para enviar órdenes al vehículo desde la web. Mientras tanto, he hecho un boceto de conexión entre los dispositivos entre sí.

Así es como quedaría:



Batería: He decidido usar una lipo de 2 celdas de unos 5000mAh. Que de momento pienso que le permitirá funcionar durante un buen rato, y con 7,2V que da, puedo alimentarlo todo (Arduino, motores, webcam...).

Arduino: Una Arduino Mega 2560 va a ser el centro del proyecto.

Conexión inalámbrica:
- La primera opción era comprarme todo el kit para poder utilizar XBee. Me parecía una idea estupenda, pero el precio del kit completo sale algo caro y realmente no necesito tanto alcance para la comunicación, de momento, con unos 10-20 metros es suficiente. Este kit constaría de: 1x Xbee Shield For Arduino, 1x Xbee USB adapter y 2x XBee 2mW Wire Antenna. Estamos hablando de unos 60€ en total.

- La segunda opción, que me parece más razonable es comunicarse a través de Bluetooth. Es una muy sencilla, me permite utilizar la misma velocidad de transferencia y es mucho más ecónomica. Hay mucha variedad, con más o menos alcance, con modo host o solo esclavo, etc. Sin ir más lejos, este modelo con modo Host y casi 30m de alcance cuesta cerca de 24€.

Finalmente he decidido quedarme con el Bluetooth, aunque con una versión más económica. Con unos 20 metros de alcance y solo con modo esclavo me cuesta cerca de 10€.

Controladora para motores:
Estoy entre dos opciones:


- La primera es el Adafruit Motor Shield, que me permite controlar hasta cuatro motores DC, dos motores paso a paso y dos servos, pero solo me permite usar motores de hasta 0,6A. El precio es de aproximadamente 20€.


- La segunda opción es comprar dos controladoras 2A Dual Motor Controller de DFRobot, que me permiten controlar dos motores de hasta 2A cada una. Esto ya me gusta más. Y el precio de las dos placas suma unos 24€.

Así que he pensado quedarme con la segunda opción, ya que la diferencia de precio es poca y me va a permitir usar motores mucho más potentes en el futuro.

Motores: El chasis viene equipado de casa con cuatro motores Micro DC Geared Motor de DFRobot. Vienen con reductora 1:120, funcionan entre 3V y 6V, y alcazan las 180rpm, que es más que suficiente para empezar.

Cámara: He pensado utilizar una webcam inalámbrica con receptor USB. He encontrado algunas relativamente económicas, pero de momento ninguna compatible con Linux. Me estoy planteando el montarla sobre un servo para poder orientar la cámara sin tener que girar el coche.

Linterna: Quiero equiparlo con una linternita LED, pero todavía no se si de LEDs de alta luminiscencia o de infrarrojos. El tema es que sea posible jugar con el cochecito incluso cuando sea de noche. Eso si, apagad la luz cuando hayais terminado :P

Un saludo!
Continue reading

Desactivando el "Auto-Reset Enable Trace"

Esta mañana he descubierto que era lo que me estaba dando tantos problemas al comunicarme con la placa.

Resulta que las Arduino tienen un jumper llamado "RESET-EN" que viene puenteado por defecto. Con esto consiguen que podamos programas la placa desde nuestra aplicación e inmediatamente después se ejecute el programa que acabamos de flashear. Esto es una comodidad, pero inhabilita las comunicaciones por el puerto serie, ya que resetea nuestro Arduino después de cada comunicación.

Bueno, pues lo único que tenemos que hacer es cortar el jumper, para que no se vuelva a resetear automáticamente.

En el caso de la Arduino Mega 2560 encontramos el jumper aquí:


Hay que pasar con un bisturí o cutter entre los dos puntos de soldadura.
Con mucho cuidado y sin salirse del rectangulito blanco:



Una vez hecho esto, podemos comunicarnos con la placa a través del USB sin ningún problema.

A disfrutar!
Continue reading

Un poco de Brainstorming

Hoy he tenido otro día de locos, así que no he podido avanzar nada en el proyecto y tampoco preparar la documentación que quería. Así que voy a ir anotando las ideas que tengo para ir empezando a organizar todo esto.

Servicio:
- Tengo pensado utilizar un Mini PC como servidor web. Así estorbará poco y ahorraré en energía. Le he echado el ojo a un FUTRO C100. Tiene muy buena pinta, hablan muy bien de él y se puede conseguir a buen precio por ebay (lo he pedido hoy mismo).

Datasheet FUTRO C100






- Sobre este PC tengo pensado instalar (como ya he comentado) Ubuntu 10.10 con un servidor LAMP.
- Utilizaré PHP para hablar con los puertos y comunicarme con mi Arduino. De momento será por USB, pero la idea es hacerlo inalámbrico. Con el problema de la retransmisión de video, si es que quiero instalar una cámara en primera o segunda persona. Así que ya veremos.
- Quiero usar una Webcam normal y corriente para servir streaming o imágenes que se actualicen con frecuencia.

Electrónica:
- Cómo placa principal para el GE (Garden Explorer, a partir de ahora) me gustaría utilizar un Arduino 2560. Por la facilidad de programación y la cantidad de accesorios que hay prácticamente plug-and-play. Y la verdad es que los precios no me echan para atrás.

Página oficial Arduino.



- De momento voy a preparar la comunicación a través de USB, aunque más adelante utilizaré un módulo inalámbrico, pero todavía no se de que fecuencia estamos hablando.
- Para controlar los motores utilizaré simples puentes en H o algún módulo que encuentre para controlar motores DC (más adelante viene el porqué de los motores DC).

Mecánica:
- Como base para el primer prototipo voy a utilizar una plataforma mobil con tracción a las cuatro ruedas (me ahorro la dirección, y de esta forma puede girar sobre sí mismo), con muy buena relación calidad/precio.
El DFRobot 4WD Mobile Platform.

Página DFRobots.
Review muy buena.





De momento no necesitamos nada más que montar el Arduino sobre él y conectar los motores al controlador.

Esta sería la descripción de la primera idea a desarrollar.
Continue reading