martes, 7 de junio de 2016

Primeros pasos con la placa Arduino

Lo primero que debe hacerse para empezar a utilizar la placa es asegurarnos de que funciona bajo los requerimientos mínimos.
                                        
Para esto aconsejo seguir una serie de pasos mediante los cuales podrá verse cómo la placa acaba recibiendo un programa muy sencillo y lo ejecuta. Mediante este programa podrá probarse tanto la capacidad de transferencia de software así como la calidad de la alimentación de la placa, la calidad de las señales PWM y la capacidad de establecer comunicación serial con la pc.
ATENCIÓN: No se pretende que el usuario aprenda a interpretar este programa, sólo se espera que sea descargado y subido a la placa "tal como es". Sin embargo se lo colocará al finalizar la entrada para quien desee investigar.
Tener la placa funcionando en su totalidad ya es un gran paso, ejecutándose cosas sencillas podrá transferirse a la placa todo lo que uno quiera siempre y cuando exista compatibilidad entre el IDE y las librerías con que se esté trabajando, así como del IDE con la placa. Aclaro esto porque algunos clones de Arduino cuando se les modifica el integrado de base o se le suprime el integrado de interfaz con la PC suelen presentar problemas de funcionamiento con el IDE, no son reconocidos, hay problemas con los drivers, no hay comunicación serial, etc.

En resumen, aconsejo seguir paso a paso la actividad a continuación para hacer funcionar la placa, se espera que este tutorial sirva tanto para WinXP, W7 y Ubuntu.

Actividad

Mediante esta actividad la placa Arduino realizará cinco tareas fundamentales:

·         Recibirá un programa transferido desde la PC.
·         Transmitirá múltiples mensajes a la PC.
·         Recibirá un mensaje desde la PC.
·         Hará conmutar el led vinculado al pin D13
·         Modificará sus salidas analógicas para que se verifique la tensión equivalente PWM con un tester.
En el programa que se le cargará a la placa en usuario únicamente interviene únicamente para presionar una tecla con que se verifica la comunicación. Sí debe estar muy pendiente al monitor serial para in recibiendo órdenes.

Conexionado del circuito

Arduino pin D3 (PWM) "+" ]------ /LED/------/220 Ohm/------[ "-" Arduino pin GND
Nota: Si la placa con que se está trabajando no posee un pin PWM en D3, modificar la línea de programa que se indicará con un comentario en el sketch de prueba.
Deberá conectarse la placa a la PC vía USB, se aconseja no usar un puerto USB2.0 si se dispone de uno básico ya que no será necesario. Debería encenderse el led Power, esto indica que la placa se encuentra alimentada y que es capaz de indicarlo.

Instalación del IDE y primera prueba en WinXP, W7

1.      Haber montado la placa y el circuito como se describió anteriormente.
2.      Descargar la última versión de Arduino IDE compatible con Windows desde este enlace.
3.      Instalar siguiendo el asistente.
4.      Ejecutar el programa y observar en "Menú > Herramientas > Puerto Serial" que se encuentre habilitado un puerto COM, por lo general COM3.
5.      Seleccionar la placa con que se esté trabajando en "Menú > Herramientas > Tarjeta", para este caso "Arduino Duemilanove w/ ATmega328".
6.      Chequear que se encuentre seleccionado por defecto "Menú > Herramientas > Programador > AVRISP mkII".
7.      Ira a "Menú > Archivo > Ejemplos > Basics > Blink" y abrir con un click. Se cargará al IDE el ejemplo "Blink" en una ventana nueva.
8.      Cargarlo a la placa mediante el símbolo ( -> ) ubicado arriba a la izquierda, al posarse sobre el botón se observará al lado del cursor la información "Cargar". Hacer un click.
9.      En caso de encontrarse todo en orden: Drivers correctamente instalados, puerto correctamente seleccionado, placa correctamente seleccionada y programador correcto, el programa se cargará a la placa, los led TX y RX a un lado del integrado de interfaz darán indicación de ello y se observará que el led asociado al pin D13 comienza a titilar cada 1 segundo. Esto representa que el programa se cargó y se está ejecutando correctamente ya que consiste únicamente en hacer titilar al led D13 integrado a la placa.
10.  Si lo anterior no ocurrió, puede deberse a algún paso mal hecho o que deba rehacerse la secuencia, dar reinicio a la pc o reinstalar los drivers. Los cuales pueden descargarse desde este enlace. En caso de persistir los problemas, revisar la sección Troubleshooting de la página oficial.

Instalación del IDE y primera prueba en Ubuntu (Linux)

En vista de la excelente información que hay en la web acerca del tema he decidido colocar dos enlaces seleccionados. Personalmente instalé el IDE en Xubuntu 12.04 y con el primer enlace ya fue suficiente.
Nota: Xubuntu es una distribución oficial de Ubuntu que emplea la misma estructura de base que Ubuntu, sólo que con un entorno de escritorio XFCE que simplifica la interfaz de usuario y minimiza el consumo de recursos. Para quienes no aprueben la sofisticada y poco funcional interfaz visual del actual Ubuntu esta es una excelente opción. A opinión personal diría que Xubuntu es como "el XP" de Linux. Robusto, simple, y toda la información disponible en la web para Ubuntu se aplica también a este sistema, así como los repositorios, drivers, software de terceros, etc. Más información sobre Xubuntu aquí. Descarga el último .iso desde aquí o bien versiones anteriores.
Aclaro que Arduino IDE puede descargarse muy fácilmente y completamente funcional desde el repositorio oficial de Ubuntu con un simple click, sólo que nunca se encuentra la última versión. De todas formas, para quien no tenga intereses en la última versión, el IDE funcionará al primer intento si se los descarga directo desde Synaptic.

·         Instalación para Ubuntu 12.04 LTS. Enlace.
·         Instalación para Ubuntu 13.04. Enlace.

1.      Una vez instalado correctamente el IDE, seguir los mismos pasos que para Windows:
2.      Ejecutar el programa y observar en "Menú > Herramientas > Puerto Serial" que se encuentre habilitado un puerto COM, por lo general COM3.
3.      Seleccionar la placa con que se esté trabajando en "Menú > Herramientas > Tarjeta", para este caso "Arduino Duemilanove w/ ATmega328".
4.      Chequear que se encuentre seleccionado por defecto "Menú > Herramientas > Programador > AVRISP mkII".
5.      Ira a "Menú > Archivo > Ejemplos > Basics > Blink" y abrir con un click. Se cargará al IDE el ejemplo "Blink" en una ventana nueva.
6.      Cargarlo a la placa mediante el símbolo ( -> ) ubicado arriba a la izquierda, al posarse sobre el botón se observará al lado del cursor la información "Cargar". Hacer un click.
7.      En caso de encontrarse todo en orden: Drivers correctamente instalados, puerto correctamente seleccionado, placa correctamente seleccionada y programador correcto, el programa se cargará a la placa, los led TX y RX a un lado del integrado de interfaz darán indicación de ello y se observará que el led asociado al pin D13 comienza a titilar cada 1 segundo. Esto representa que el programa se cargó y se está ejecutando correctamente ya que consiste únicamente en hacer titilar al led D13 integrado a la placa.
8.      Si lo anterior no ocurrió, puede deberse a algún paso mal hecho o que deba rehacerse la secuencia, dar reinicio a la pc o reinstalar los drivers. En caso de persistir los problemas, revisar la sección Troubleshooting de la página oficial.

Prueba avanzada de la placa

Esta es la prueba de la que se habló desde un principio, para obtener los resultados que se esperan, proceder de la siguiente forma.

1.      Descargar el sketch de prueba desde aquí.
2.      Abrir el IDE.
3.      Abrir el sketch desde "Menú > Archivo > Abrir..."
4.      Conectar la placa habiendo verificado que funcione con la prueba básica.
5.      Abrir el monitor serial.
6.      Dar carga al programa.
7.      Seguir las instrucciones del monitor serial, se pedirá que se presione la tecla "A" y que se envíe el caracter a la placa. Luego se realizará un test del led integrado y por último se verificarán las tensiones de salida PWM.

Enlaces



[ Adquirir placas Arduino online ]

Sketch de prueba avanzada


// Programa para prueba de placa Arduino.
// Este no es un programa-tutorial.
int led = 13; // MODIFICAR ESTA LÍNEA SI EL LED INTEGRADO ESTARÁ EN OTRO PIN
int salida_pwm = 3; // MODIFICAR ESTA LÍNEA SI LA SALIDA PWM ESTARÁ EN OTRO PIN
int tension_pwm = 0;
int test_ok = 0;
void setup(){
Serial.begin(9600);
Serial.println("- Programa de prueba -");
Serial.println("");
delay(1000);
Serial.println("Tx: Ok");
delay(1000);
Serial.println("Enviar por Serie la letra A");
delay(500);
Serial.println(" Esperando...");
}
void loop()
{
if (Serial.available()&& test_ok == 0) {
if ((Serial.read())== 'A') {
Serial.println(" Rx: Ok");
delay(500);
Serial.println("Prueba COM finalizada");
delay(1000);
Serial.println("");
Serial.println("Test led D13...");
test_ok = 1;
}
}
if (test_ok == 1) {
digitalWrite(led, HIGH);
Serial.println(" Estado: HIGH");
delay(1000);
digitalWrite(led, LOW);
Serial.println(" Estado: LOW");
delay(1000);
digitalWrite(led, HIGH);
Serial.println(" Estado: HIGH");
delay(1000);
digitalWrite(led, LOW);
Serial.println(" Estado: LOW");
delay(1000);
test_ok = 2;
}
if (test_ok == 2) {
delay(1000);
Serial.println("");
Serial.println("Test PWM");
delay(500);
Serial.println(" Verificar tension pin D3");
delay(500);
Serial.println(" Tension: 2V");
Serial.println(" Usted tiene 5 segundos...");
tension_pwm = 2;
analogWrite(salida_pwm, (map(tension_pwm, 0, 5, 0, 255)));
delay(5000);
delay(500);
Serial.println(" Tension: 4V");
Serial.println(" Usted tiene 5 segundos...");
tension_pwm = 4;
analogWrite(salida_pwm, (map(tension_pwm, 0, 5, 0, 255)));
delay(5000);
delay(1000);
Serial.println("");
Serial.println("- Fin programa de prueba -");
test_ok = 3;
}
}

No hay comentarios.:

Publicar un comentario