lunes, 26 de octubre de 2015

Arduino on water: Arduino RC Boat / Barco de control remoto con Arduino

Que tal, el proyecto que estoy por compartirles tuvo su origen en la solicitud de apoyo de algunos estudiantes de mecatrónica para la elaboración de un barco utilitario construido desde cero con el objetivo práctico de recolectar muestras en cuerpos de agua.

Partimos de un diseño muy básico, un tipo de embarcación conocida como catamarán que básicamente consiste en una plataforma central con un flotador de cada lado, la idea era usar la plataforma para montar ahí toda la parte electrónica y mecánica, aquí la imagen de referencia:



Para la construcción del casco decidimos por el material mas común: madera, aunque en este caso usamos un armazon de madera cubierto con láminas de panel mdf de 3mm, esta combinación pudiera parecer un poco fragil, principalmente porque el mdf y el agua no son del todo compatibles, pero cada flotador se cubrió con una gruesa capa de resina impermeable, para poder sellar el casco y proveer la flotabilidad adecuada, las medidas aproximadas del flotador fueron de 90 cm de largo por 20 de ancho en la parte mas ancha y 20 de altura, a continuación las fotos de la construcción de los flotadores:







Una vez terminada la construcción de los flotadores pasamos al ensamblado y colocación del sistema de propulsión, inicialmente se habia proyectado usar un par de motores brushless, los cuales al final no brindaron el empuje suficiente ya que el casco junto con los componetes mecánicos y electrónicos sobrepasó el preso proyectado (el conjunto acabó pesando cerca de 10 Kg), después de estudiar algunas alternativas optamos por adaptar un motor de taladro adaptado como  motor fuera de borda y dirigido por un brazo de aluminio controlado por un servo.







La parte mecánica constó de un brazo de grua con una polea accionada por un motor DC que soportaba un peso aprox de 1Kg, en la punta de la grua se montó un dispositivo capaz de sumergirse hasta 2mts y abrirse dentro del agua para poder tomar una muestra del cuerpo de agua además de un sensor de temperatura, se adaptó además un receptor gps para poder integrar junto con la muestra de agua la coordenada geográfíca, fecha y hora exacta de la muestra. En cuanto a la circuitería de control constó de un par de arduinos acoplados con 2 trasceptores nrf24l01 que nos daban un alcanze hasta e 150 mts, en el transmisor de contro se montó una pantalla LCD para poder visualizar las señales del barco (gps, tranceptor, temperatura, etc.)




Aquí un pequeño video del barco navegando en una laguna cercana:



Si a alguien le intersa consultar la lista de materiales, o más información sobre este proyecto me será muy grato compartir la experiencia, un saludo!.

domingo, 10 de mayo de 2015

Prototipo de teclado USB para 16 teclas con Pic18F4550

En esta ocación quiero compartir información de un proyecto sobre el PIC18F4550, que como sabemos lo interesante de este PIC es que al contar con soporte USB podemos diseñar cualquier tipo de dispositivo y hacerlo reconocible para la PC, en esta ocacion implementamos una interface de teclado genérica para usar pulsadores tipo videojuego en lugar de teclas, usando código extraido del siguiente foro:

http://www.libstock.com/projects/view/446/mikroc-pro-hid-keyboard

Adaptamos el código escrito en MikroC que ya cuenta con la configuración necesaria para el PIC trabajando con un reloj de 8Mhz, originalmente el código reconoce 9 teclas, 8 del puerto B y 1 del puerto C, lo extendemos para que reconozca 16 teclas en total, usando los puertos que se mencionan en el diagrama, cada pin es cableado con una resistencia Pull-up y para registrar la tecla usamos un pulsador a tierra, esto permite en el código leer la condicion cuando la lectura del puerto sea igual a cero.

Aquí vemos ya el prototipo cableado y conectado al USB



el dispositivo es reconocido como HID Keyboard, en windows no se requiere ningun driver adicional



Dejo aqui el archivo HEX ya compilado y configurado para las teclas de la A a la P (16 teclas)



Proximamente mostraremos el teclado soldado en placa perforada

lunes, 12 de enero de 2015

La mejor definicion de MVC que he encontrado:

The MVC separates the user interface (UI) of an application into three main aspects:
➤ The Model: A set of classes that describes the data you’re working with as well as the business rules for how the data can be changed and manipulated
➤ The View: Defi nes how the application’s UI will be displayed
➤ The Controller: A set of classes that handles communication from the user, overall application flow, and application-specifi c logic