Introducción a Arduino y las herramientas · José H. Moyano Sistemas Embebidos 2016 3/22 Qué es...

22
José H. Moyano Sistemas Embebidos 2016 1/22 Introducción a Arduino y las herramientas

Transcript of Introducción a Arduino y las herramientas · José H. Moyano Sistemas Embebidos 2016 3/22 Qué es...

José H. Moyano Sistemas Embebidos 2016 1/22

Introducción a Arduinoy las herramientas

José H. Moyano Sistemas Embebidos 2016 2/22

Qué es Arduino

Arduino es una plataforma electrónica open-source basada en un microcontrolador simple, puertos de entrada/salida y un entorno de desarrollo.

– Económico.

– Hardware y software fácil de usar.

– Hardware y software open-source.

– Software multiplataforma

José H. Moyano Sistemas Embebidos 2016 3/22

Qué es Arduino

● Diagrama de bloques simple de entrada/salida

Arduino UnoATmega8U2

ATmega16U2 (R3) Arduino UnoATmega328P

José H. Moyano Sistemas Embebidos 2016 4/22

ATmega328P

● Alimentación (1.8V / 5.5V)

● Reloj (hasta 20MHz)

● Watchdog

José H. Moyano Sistemas Embebidos 2016 5/22

ATmega328P

● Memoria flash (programas) 32 KB

● SRAM (datos) 2 KB

● EEPROM (memoria a largo plazo) 1 KB

José H. Moyano Sistemas Embebidos 2016 6/22

ATmega328P

3 temporizadores/contadores

● Diferentes frecuencias de reloj

● Admiten comparación y overflow

● Generan interrupciones

José H. Moyano Sistemas Embebidos 2016 7/22

ATmega328P

3 puertos de I/O:

● 23 líneas programables de I/O

● 2 puertos de 8 bits, 1 de 7 bits

José H. Moyano Sistemas Embebidos 2016 8/22

ATmega328P

Comunicación serie

José H. Moyano Sistemas Embebidos 2016 9/22

ATmega328P

Conversor Analógico/Digital

● Resolución de 10 bits

● Genera una interrupción al terminar

José H. Moyano Sistemas Embebidos 2016 10/22

ATmega328P

CPU (Capítulo 7 datasheet)

● Memoria y buses separados para código y datos (arquitectura Harvard).

● Ejecuta instrucciones en cada ciclo de reloj (mientras una instrucción se ejecuta, se busca la próxima).

● 32 registros 8-bit de propósito general que se acceden en 1 ciclo de reloj. Incluye 3 registros 16-bit para direccionamiento indirecto a memoria de datos.

● La pila del sistema se almacena en la memoria de datos (SRAM).

José H. Moyano Sistemas Embebidos 2016 11/22

Arduino Uno

● ATmega328P (8-bits AVR)

● Reloj 16 MHz

● 14 pines de e/s digitales

– 6 pines con salida PWM

– 2 interrupciones externas

● 6 entradas analógicas

● Alimentación: 5 V/7-12 V

● Memoria de código 32 KB - 0.5KB (bootloader)

José H. Moyano Sistemas Embebidos 2016 12/22

Etapas

Diseño Codificación Compilación

Simulación yDebugging

FlashingTesteo

José H. Moyano Sistemas Embebidos 2016 13/22

Toolchain

● Diseño: Papel y lápiz. Hojas de datos. Imaginación.

● Codificación: Editor de texto | IDE (Atmel Studio)

● Compilación: avr-gcc

● Linkeo: avr-ld

● Traducción del ejecutable: avr-objcopy

● Simulación y Debugging: Atmel Studio

● Flashing: avrdude + [Atmel Studio | avrdudess]

José H. Moyano Sistemas Embebidos 2016 14/22

Software a instalar

● Arduino 1.6.1

– http://arduino.cc/en/Main/Software● Atmel Studio 6.2

– http://www.atmel.com/tools/atmelstudio.aspx● Terminal for Atmel Studio

– https://gallery.atmel.com/Products/Details/8491028b-e3a5-46fe-9449-dd22e7f59452

José H. Moyano Sistemas Embebidos 2016 15/22

Configuración de Atmel Studio

Crear un nuevo proyecto ”Executable C++”

Nombredel proyecto

José H. Moyano Sistemas Embebidos 2016 16/22

Configuración de Atmel Studio

Elegir el microcontrolador ATmega328P.

José H. Moyano Sistemas Embebidos 2016 17/22

Configuración de Atmel Studio

En las propiedades del proyecto, en la sección “Toolchain”, bajo “AVR/GNU C++ Compiler” agregar dos símbolos.

ARDUINO=100F_CPU=16000000L

José H. Moyano Sistemas Embebidos 2016 18/22

Configuración de Atmel Studio

● Setear la optimización para tamaño (-Os)

José H. Moyano Sistemas Embebidos 2016 19/22

Uploading con Atmel Studio

En el menú “Tools > External Tools...”

C:\Program Files\Arduino\hardware\tools\avr\bin\avrdude.exe

-C"C:\Program Files\Arduino\hardware\tools\avr\etc\avrdude.conf"-patmega328p -carduino -P\\.\COM3 -b115200 -Uflash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i

Tildar las opciones:● Prompt for arguments para modificar

COMX con el número de puerto COM correcto.

● Use Output window, para que los mensajes del avrdude aparezcan donde normalmente aparecen los mensajes del compilador.

José H. Moyano Sistemas Embebidos 2016 20/22

Uploading con Atmel Studio

Al guardar esta configuración aparece accesible una herramienta externa en el menú “Tools”. Antes de invocar esta herramienta se debe seleccionar el proyecto en la ventana “Solution Explorer” para que la variable $(ItemFilenName) se setee correctamente.

José H. Moyano Sistemas Embebidos 2016 21/22

Uploading con avrdudess

Homepage: http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/

José H. Moyano Sistemas Embebidos 2016 22/22

Debugging

● Atmel Studio Simulator

– https://www.youtube.com/watch?v=9QlDSNeuAdY

– http://www.atmel.com/webdoc/simulator/simulator.wb_Simulator_Use.html

● Estímulos y logs

– https://www.youtube.com/watch?v=5kF-Y8q7e9k

– http://www.atmel.com/webdoc/simulator/simulator.wb_Simulator2_Stimuli.html