Actividad 1. Ambiente de desarrollo Arduino. Actividad básica. Blink y Timers

Temas teóricos

  • Hoja de fabricante del chip y de la tarjeta de desarrollo
  • Voltajes de alimentación y de señales. Tierras
  • Lenguaje Arduino
  • Compilar. “Flashear”
  • Puerto serial. Puerto virtual serial. USB (enumeración)
  • Cuidados generales. Estática. Cortos circuitos. Golpes
  • Boteo del Arduino

Precauciones

  • Antes de conectar las tarjetas de desarrollo y sus pines a un circuito externo (especialmente señales que entran a la tarjeta de desarrollo) las tarjetas de desarrollo deben haber sido programadas al menos una vez inicialmente antes de ser conectado a dicho circuito.

Instrucciones generales

  1. Lea completamente todos los pasos de la guía de esta actividad
  2. Anote, responda y agregue al reporte todas las preguntas e instrucciones que se realicen en la guía. Dichas preguntas e instrucciones se pueden denotar al estar enumeradas con el siguiente formato: “1) Anote el puerto asignado a su dispositivo Arduino”
  3. Debe realizar una descripción de lo logrado a lo largo de la actividad, incluyendo las dificultades que se presentaron. Una bitácora de lo sucedido es lo mejor. (Anote no solo lo que usted ejecutó sino también el resultado de lo que ejecuta)
  4. El reporte debe ser entregado mediante correo electrónico al asistente con copia al profesor del curso mediante correo electrónico. Debe utilizar formato PDF.
  5. El correo electrónico del reporte debe llevar el siguiente formato en el “subject”: “IE0624 - Reporte N”, donde N es el número de la actividad realizada.

Evaluación

El reporte debe incluir las siguientes secciones (se incluye el porcentaje de nota de cada sección)

  1. Portada (curso, semestre, año, fecha, número y nombre de práctica, integrantes). 2%
  2. Bitácora de trabajo describiendo el resultado de todos los pasos seguidos de la guía incluyendo dificultades y/o situaciones inesperadas. 30%
  3. Capturas o fotografías de puntos importantes realizadas durante la actividad (el circuito ensamblado, resultados observables en el osciloscopio, etc) 20%
  4. Respuestas al cuestionario de la guía. 20% (deben estar claramente identificadas con el número de pregunta, sin confundirse con otra numeración en el reporte)
  5. Todo el código fuente de todos los programas utilizados a lo largo de la actividad. Debe agregar al inicio del código una descripción sobre dicho código (a qué parte de la práctica corresponde, la función que cumple dicho código). 20%
  6. Referencias utilizadas en caso de acceder a alguna fuente de información de Internet o bibliográfica durante la realización de la actividad. 8%

Guía

Parte 0. Configuración básica

Parte 1. Instalación de Arduino

  • Cree el directorio “~/local/src”
mkdir -p local/src
  • Descargue la última versión de Arduino (para Linux de 64bits) desde aquí: https://www.arduino.cc/en/Main/Software
  • Descargue el archivo en el directorio “~/local/src”
  • Descomprima dicho archivo:
cd ~/local/src
tar -xf arduino-1.8.4-linux64.tar.xz
  • Para ejecutar arduino, siempre desde una nueva consola, debe realizar los siguientes pasos:
cd ~/local/src/arduino-1.8.4/
./arduino
  • Conecte su arduino al puerto USB de su computadora.
  • Asegúrese que el arduino se enciende correctamente. (La luz LED verde PWR debería encender)
  • Asegúrese que el sistema operativo detecta correctamente el Arduino:
sudo dmesg
  • Este comando debería mostrar al final algo similar a lo siguiente:
[25240.987798] usb 1-2: new full-speed USB device number 21 using xhci_hcd
[25241.129316] usb 1-2: New USB device found, idVendor=1a86, idProduct=7523
[25241.129321] usb 1-2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
[25241.129324] usb 1-2: Product: USB2.0-Serial
[25241.130194] ch341 1-2:1.0: ch341-uart converter detected
[25241.131098] usb 1-2: ch341-uart converter now attached to ttyUSB0
  • El último mensaje indica cual puerto “virtual” serial el kernel de Linux asigno al dispositivo. Es importante anotar este puerto. 1) Anote el puerto ejecutado.
  • En este punto su Arduino se encuentra correctamente energizado.

Cambio en "PATH" para ejecutar el nuevo arduino más fácilmente

  • Edite el archivo .bashrc que se encuentra en su “home”:
cd ~
nano .bashrc
  • Al final de este archivo agregue la siguiente línea:
export PATH=${HOME}/local/src/arduino-1.8.4/:$PATH
  • Salve el archivo (Ctrl-X), salga de su sesión gráfica y vuelva a ingresar.
  • Después de esto puede ejecutar solamente “arduino” en cualquier consola para correr el programa arduino.
  • Agréguese al grupo dialout para poder escribir al puerto del arduino
sudo adduser USER dialout
  • En una consola de texto separada ejecute Arduino
  • Aparecerá el programa de desarrollo arduino en su pantalla
  • La parte grande de color blanco es la zona donde reside el código de instrucciones de arduino. El código de instrucciones de arduino es similar al lenguaje C simplificado.
  • El programa tiene un menú con diferentes capacidades y una barra de botones de acciones.
  • Espere la explicación del profesor sobre como funciona el proceso de desarrollo básico con Arduino
  • Abra el archivo utilizando el menú: File→Examples→Basics→blink
  • Se abre el programa ejemplo de “blinking”
  • Presione el botón con forma de “checkmark” (verify). Este botón realiza una “compilación” del programa actualmente en pantalla. Es una forma de corroborar que el programa fue escrito de forma correcta.
  • Presione el botón con forma de flecha hacia la derecha. “→” (Upload). Este botón descarga “flashea” el programa compilado al microcontrolador. 2) Describa lo que sucede durante este proceso.
  • La luz roja “L” del arduino debería destellar con una regularidad de 1 segundo aproximadamente.
  • La instrucción “delay”, realiza una espera sobre el programa, esto causa que el LED se mantenta en el último estado seleccionado por el tiempo determinado por “delay”. Modifique “delay” en todos los lugares del programa, cámbielo de 1000 a 5000. Compile y descargue el programa en el arduino. (de ahora en adelante “ejecute” el programa) 3) Cuánto tiempo dura el LED encendido y apagado? 4) Cuál es la unidad utilizada en la instrucción “delay”?
  • Siga modificando los valores de “Delay” hasta que no logre observar con los ojos la intermitencia. 5) Cuál es el valor más bajo de “delay” que puede usted observar con sus ojos? 6) Convierta dicho valor al periodo de la señal y su frecuencia.
  • Modifique el programa para utilizar otro “pin” de salida del Arduino. Modifique la instrucción “pinMode”. Puede crear una variable nueva arriba primero:
int d12 = 12;
  • Luego modifique pinMode:
pinMode(d12, OUTPUT);
  • Desconecte el Arduino de la computadora. Tome atención a las instrucciones del profesor. Nunca conecte el Arduino a la computadora cuando está utilizando los pines externos antes de tener el visto bueno del profesor o asistente.
  • Conecte el arduino a una protoboard. Conecte un LED en serie con una resistencia de 330ohms entre el pin +5V y el pin D12.
  • Modifique las instrucciones del programa “digitalWrite” de la siguiente forma:
digitalWrite(d12, HIGH)

y

digitalWrite(d12, LOW)

respectivamente.

  • Llame al profesor para conectar el arduino a la PC.
  • Ejecute el nuevo programa en el arduino. El LED debe parpadear a la velocidad previamente seleccionada.
  • Conecte un osciloscopio al pin D12. Para esto espere las instrucciones del profesor.
  • 7) Encuentre la velocidad mínima de parpadeo del LED visible por el osciloscopio (disminuya el tiempo de espera delay hasta que no se pueda observar correctamente una onda cuadrada en el osciloscopio, recuerde ajustar siempre el intervalo del tiempo del osciloscopio). 8) Mida con el osciloscopio el tiempo en bajo y el tiempo en alto. Observer si dichos tiempos varían o no son estables. 9) Calcule el periodo y la frecuencia de la señal. 10) Qué tipo de señal es esta? 11) Por qué se conecta el LED a la señal de +5V en lugar de GND o tierra?

Opcional

La parte opcional no tiene puntaje asociado, pero representa un reto interesante que consideramos una buena oportunidad de aprendizaje.

  • Hacer el mini-blink pero escribiendo directamente en registros. Compare la nueva frecuencia máxima con la que obtuvo en la práctica. Es mayor o menor? Por qué? Puede incluir esta explicación en el reporte si lo desea.

Referencias

  • teaching/ie0624/actividad_arduino_basic.txt
  • Last modified: 2018/09/05 16:43
  • by dgarcia