Tabla de Contenidos

Introducción:

<html><center></html> Módulo Arduino Uno R.3 elegido para el proyecto Módulo Arduino Uno R.3 trasera <html></center></html>

Los módulos arduino están basados en microcontroladores económicos que con pocos componentes adicionales permiten obtener un buen número de entradas y salidas digitales y analógicas controlables por un programa que se aloje en el propio micocontrolador o desde un ordenador o tablet al que se pueden conectar por puerto serie ya sea por los estandard rs232, usb, bluetooth o incluso ahora hay módulos wifi o ethernet.

Esto hace que integrar el arduino en el proyecto lo haga sencillo, económico y versatil. Arduino tiene además la ventaja de que está basado en la filosofía de código abierto, así hay montones de desarrollos basados en él disponibles de forma gratuita pudiendo acceder desde los esquemas de los módulos hasta los programas realizados para su control.

Amplia información se puede encontrar en la página del proyecto traducida también en gran parte al español: http://www.arduino.cc/es/

En nuestro caso, para el display vamos a usar el arduino de forma invariable y siempre con el mismo uso, programa y cableado, por ello no necesitamos toda la placa, sino que nos vale con el micro con el mínimo de componentes siguiendo los pasos de este enlace:

Arduino sólo con el atmega: http://arduino.cc/es/Main/Standalone#.Uy8bnvl5Mzc

http://arduino.cc/en/uploads/Hacking/Atmega168PinMap2.png

Tras contemplar varias opciones lo mas practico, economico y funcional, usando sólo el atmega con el minimo de componentes es utilizar 2 controladores para manejar el equipo. Uno de ellos se encargará de la interfaz con el usuario, controlará el display, el teclado de control y llevará la programación del menu de control pasándole unicamente cuando el usuario seleccione un programa la orden al segundo atmega que será el que almacene todos los programas con las funciones que prestara el entrenador.

Manual de programación de Arduino en español: arduino_programing_notebook_es.pdf

Montajes y prácticas con arduino: http://unicarlos.com/pezazul/index.php

Montajes y muchos detalles: http://tallerarduino.wordpress.com/

Freaduino: Clon mas barato y potente de arduino. http://www.elecfreaks.com/store/freaduino-uno-rev12-p-414.html

Mas montajes e información en base a arduino: http://fritzing.org/home/

Mas montajes e información: http://www.arduteka.com/

Ehternet para arduino http://tecnotinker.blogspot.com.es/2012/07/uso-del-modulo-ethernet-enc28j60-con.html

Programar un arduino a través de otro: http://www.instructables.com/id/Arduino-Examples-2-Use-an-Arduino-as-a-FTDI-Progr/?lang=es https://www.minitronica.com/como-grabar-el-bootloader-en-el-atmega328p/

Conversor serie paralelo 16b con 2x 74hc595: http://arduino.cc/es/Tutorial/ShiftOut#.UzgAkKh_tBM

Contador binario: https://zbutton.wordpress.com/2010/02/07/construyendo-un-contador-binario-con-arduino/

Problema con ATMEGA328P-U Sko solución: Tras quemar el bootloader sin problemas, no funcionaba, fallo sync. Finalmente: Elegir “Arduino Nano” como placa y Atmega328P (old bootloader) como procesador. Aún no se porque, quizá porque reduce velocidad de programación.

Esquema de bloques:

Para controlar las funciones del entrenador vamos a usar 2 microcontroladores Arduino. No la placa completa pues al ir en un entrono fijo no necesitamos la placa que rodea al microcontrolador atmega y lo convierte en todo terreno.

Vamos a necesitar 2 pues vamos a poner un display grafico al que para dar estabilidad y suavidad pondremos con interface paralelo. Para ello necesitamos practicamente todas las salidas del controlador. La opción tomada para solventar esto y que el programa de control necesita mas memoria de la disponible en 1 controlador ponemos 2.

Se comunicaran entre ello por un puerto serie y se divide la programación en las rutinas de control grafico, sistema de menús y control del teclado y las comunicaciones (si se ponen con el PC) en el primer Arduino que vamos a llamar “De control”.

El segundo llevará la programación que controlará directamente las entradas y salidas accesibles al usuario y las funciones que se puedan realizar con ellas. Esta programación responderá a las instrucciones que le entrarán por puerto serie procedente de lo pedido por el usuario desde el primer Arduino.

Módulo de control (Arduino1):

Controlador.

Hadrware.

Display.

Teclado.

Software.

El Modulo de control (Arduino1) enviará vía serie los comandos para controlar las salidas y monitorizar las entradas al módulo de programas (Arduino2). Para controlarlo se utilizará un programa que contenga las rutinas que se elegiran y ajustarán mediante el teclado y un sistema de menus en el display.

Programa Modulo de control

Bitacora de cambios en el Programa del Módulo de control

Instrucciones de manejo del programa

Módulo de programas (Arduino2)

El circuito va a ser un arduino básico, es decir, el atmega con los componentes mínimos son sus entradas/salidas conectadas a los pines del entrenador menos los correspondientes a la comunicación serie que estarán conectados al modulo 1 y dispondran de una entrada adicional para ser controlado por puerto serie desde un PC.

Es esquema del modulo 2 o “de control” es el siguiente:

Como se puede observar incluye una parte que interconecta con el módulo 1 y centraliza en este esquema los conectores externos que darán la comunicación de ambos módulos permitiendo con un conmutador interconectarlos entre ellos o liberarlos y conectar cada uno por separado a otra fuente de datos (PC u otros) para reprogramarlos o interactuar con ellos desde el exterior).

Placa Arduino 2 o “de programas”:

Programa Arduino 2: Hay una librería estandarizada “Firmata” https://github.com/firmata/protocol que va incluso incluida en el ide de arduino aunque hay versiones mas actualizadas.

La idea de esta librería es que convierte al arduino en esclavo que sólo envía y transmite la información de sus pines hay librerías para utilizarlo desde numerosos entornos (como javascript, php o una aplicacion para Chrome: https://chrome.google.com/webstore/detail/arduino-firmata-controlle/ekimfiajefhjfmojhkgjmpinaainoale )ya hechas

Y lo mas interesante es que hay un entorno de simulación: http://myopenlab.de/startseite.html de codigo abierto y que permite a través de esta librería utilizar el arduino para que sus programas y simulaciones interactuen con el exterior.

La pega es que los códigos que hay que utilizar para enviar y recibir la información son puros byte hexadecimal. Por ello puede ser necesario tener la tabla de codigos ascii correspondiente. en el windows 7 en españa parece que responde a http://es.wikipedia.org/wiki/Windows-1252.

Digital Output Modo de pines
90 00 00 all off Input OutputAnalogPWMServo
PD0290 04 00On P02 F4 02 00F4 02 01 F4 02 04PD02
PD0390 08 00On P03 F4 03 00F4 03 01 F4 03 03F4 03 04PD03
PD0490 10 00On P04 F4 04 00F4 04 01 F4 04 04PD04
PD0590 20 00On P05 F4 05 00F4 05 01 F4 05 03F4 05 04PD05
PD0690 40 00On P06 F4 06 00F4 06 01 F4 06 03F4 06 04PD06
PD0790 00 01On P07 F4 07 00F4 07 01 F4 07 04PD07
PD0891 01 00On P08 F4 08 00F4 08 01 F4 08 04PD08
PD0991 02 00On P09 F4 09 00F4 09 01 F4 09 03F4 09 04PD09
PD1091 04 00On P10 F4 0A 00F4 0A 01 F4 10 03F4 10 04PD10
PD1191 08 00On P11 F4 0B 00F4 0B 01 F4 11 03F4 11 04PD11
PD1291 10 00On P12 F4 0C 00F4 0C 01 F4 0C 04PD12
PD1391 20 00On P13 F4 0D 00F4 0D 01 F4 0D 04PD13
An0 91 40 00On P14 F4 0E 00F4 0E 01F4 0E 02 F4 0E 04An0
An1 91 00 01On P15 F4 0F 00F4 0F 01F4 0F 02 F4 0F 04An1
An2 92 01 00On P16 F4 10 00F4 10 01F4 10 02 F4 10 04An2
An3 92 02 00On P17 F4 11 00F4 11 01F4 11 02 F4 11 04An3
An4 92 04 00On P18 F4 12 00F4 12 01F4 12 02 F4 12 04An4
An5 92 08 00On P19 F4 13 00F4 13 01F4 13 02 F4 13 04An5
90 0C 00Pin2+pin3–>Suma hex de bytes Byte2 tiene menos peso q byte3 Byte3 solo 0 ó 1
P03PWMval Analog response
E3 00 000 P05PWMvalE5 00 00 P14=An0E0 00 00E0 7F 07
E3 01 001 P09PWMvalE9 00 00 P15=An1E1 00 00E1 7F 07
E3 02 002 P10PWMvalEA 00 00 Pxx=An2E2 00 00E2 7F 07
E3 7F 00127 P11PWMvalEB 00 00 Pxx=An3E3 00 00E3 7F 07
E3 00 01128 Pxx=An4E4 00 00E4 7F 07
E3 7F 01255 Pxx=An5E5 00 00E5 7F 07

http://blog.ardublock.com/

Gastos de montaje:

Gastos de Montaje