Cariño, encogi lo Arduino: pasar de Arduino a ATtiny y escribir el código en C de AVR puro (5 / 5 paso)

Paso 5: Hacer la charla ATtiny a usted

Hemos creado con éxito un pequeño proyecto pero usted notará que nuestros ATtiny se comporta un poco como una caja negra: no sabes realmente quiere en ella, porque la única salida tienes son algunos LED. Si usted tiene un programa más complejo funcionando, quizá quieras saber quiere está sucediendo en su ficha, por ejemplo qué valores está leyendo al hacer mediciones de anlog. Se dispone de juntas de depuración y desarrollo costoso pero le mostrará cómo puede implementar algunos básicos "depuración" de una manera más barata.

En el caso de Arduino, puede tener una conexión serial a la computadora y el monitor de valores usando al Monitor serie. Lamentablemente nuestro ATtiny no tiene tal capacidad incorporada porque le falta un chip FTDI para la comunicación serial. PERO no tenemos que estar triste por eso: podemos implementar software de comunicación serial en el ATtiny y "abusar" de nuestro Arduino como promotor de la serie. Esto significa que podemos tener el ATtiny nos habla a través de Arduino (y al revés if necesitamos).

Afortunadamente, no tenemos que implementar esto en nosotros mismos desde Martin Thomas y Colin Gittins hizo una buena biblioteca y ponerla en github: avr-softuart. Usaremos esto para crear un pequeño programa para nuestra ATtiny que transmite algunos valores de la prueba via serial expedición a nuestro ordenador con nuestro Arduino. Puede utilizar esto más adelante en su propio programa para algunos básico "depuración".

Una palabra de ADVERTENCIA: "softuart" implementa las capacidades de la UART en software que significa que es mucho más lenta que la UART implementada en hardware. También significa que el ATtiny tiene que hacer algún trabajo pesado durante la manipulación de la comunicación serial. Por lo tanto les recomiendo usar "softuart" sólo mientras depura tu proyecto.

Vamos a empezar con nuestro programa para el ATtiny. Primero necesitamos descargar el avr-softuart fuentes desde el repositorio de github. Necesitaremos la siguiente incluye:

--

#include < avr/io.h >
#include < avr/interrupt.h >
#include < util/delay.h >
#include "softuart.h"

--

En el fie softuart.h se debe establecer la SOFTUART_TXBIT en la línea 18 para el pin correcto (en nuestro ejemplo nos establece en PB1). En el bucle principal, comenzamos la comunicación serial con las siguientes instrucciones:

--

softuart_init();
softuart_turn_rx_off();    no recibir datos en serie
SEI(); Esto permite interupts, que son necesarios para softuart

--

El resto es bastante fácil. Por ejemplo, si desea transmitir un carácter se puede llamar softuart_putchar('c'); que transmite el carácter 'c'. También puede transmitir cadenas y, si incluye stdio.h, también puede enviar números de formato de printf. Puede tener un vistazo a los ejemplos en main.c de repositorio de github del softuart.
Sin embargo, te recomiendo mantenerlo como simple, pequeño y rápido posible. Esto significa que usted no debe incluir stdio.h y utilizar printf() ya que tarda hasta unos 1,5 kB de la memoria flash. Por lo tanto, debe implementar una función que envía enteros como cadenas de caracteres. Yo lo he hecho en el segundo ejemplo para este tutorial y puede obtener el código completo en el repositorio de github. El programa escribe sólo números enteros entre -128 y 127 fuera de serie. Puede descargar, compilar y cargar el código en el ATtiny.

Ahora que tenemos nuestro programa de "hablar" sobre el ATtiny, debemos preparar el Arduino para recibir estos datos seriales y reenviarlo via USB a nuestro ordenador por lo que podemos leer la salida en un monitor de la serie. El código es muy simple y debe descargar también desde el repositorio de github. Sólo recibe datos entrantes en serie con software serial de ciertos pin (10) con una velocidad en baudios 2400 (lento software de serie!) y la transmite a nuestro ordenador vía el hardware de serie con una velocidad en baudios de 115200 (USB rápido!). Añadir este código a tu Arduino y puede continuar con el esquema de cableado muy simple arriba para juntar todo.

Al conectar tu Arduino a su puerto USB, el ATtiny iniciará enviando los datos en serie a la Arduino, que enviará a nuestro equipo. Ahora puede usar al Monitor de serie en el IDE de Arduino o programas como pantalla o minicom para leer la salida. Esto le permite ver lo que está pasando en el ATtiny con solo 1 eje y un Arduino.

Espero que este tutorial le ayudará a crear programas de ATtiny inteligentes que utilizan sólo una fracción del espacio y la energía necesitadas por un Arduino. Puede echar un vistazo en el siguiente proyecto para obtener un ejemplo acerca de cómo leer datos de sensor análogo de un acelerómetro para detectar cuando un dispositivo ha sido sacudido: attiny soundcube

Artículos Relacionados

Aprende o enseña Arduino sin ninguna línea de código #1

Aprende o enseña Arduino sin ninguna línea de código #1

Parte 1: Hola mundoIntroducciónHola a todos, este es el primer tutorial de Arduino que programa sin necesidad de escribir ninguna línea de código, usando Ardublock, que es una extensión del IDE de Arduino para programación visual. Ardublock se basa e
Arduino y CueCat escáner de código de barras

Arduino y CueCat escáner de código de barras

he tenido un escáner de código de barras cuecat sentados por más de 10 años. Básicamente se conecta a un puerto PS2 (al parecer hay una version USB) como un teclado y escupe hacia fuera un código de barras cuando se analizan. Bonito!. Lo molesto es q
Arduino rfid leer y escribir en la pantalla lcd

Arduino rfid leer y escribir en la pantalla lcd

le mostrará cómo hacer arduino rfid leer y escribir en la pantalla lcdPaso 1:¡Hola!Hoy voy a mostrar cómo hacer arduino rfid leer y escribir en la pantalla lcd. Descargar el código y la carga en arduino no importa bruja uno pero prefiero uno y infidu
Robot Linefollower de Arduino y la basura - pensamientos y código

Robot Linefollower de Arduino y la basura - pensamientos y código

este linefollower terminó como falla con respecto a la competencia, pero aprendí algunas cosas que voy a compartir ahora.Si desea ver la estructura general, vaya a photoseries que postee anteriormente mientras que el edificio estaba en progreso. Info
Vidrio de Arduino - casco de realidad aumentada de código abierto

Vidrio de Arduino - casco de realidad aumentada de código abierto

¿Has pensado en conseguir un casco de realidad aumentada? ¿Fueron también asombró a la posibilidad de realidad aumentada y miró la etiqueta del precio con un corazón roto?Sí, yo también!Pero eso no me impide allí. Construí mi coraje y en su lugar, de
Cuatro canales TV falsos con Arduino o Attiny

Cuatro canales TV falsos con Arduino o Attiny

Mientras trabajaba en un simulador de "en casa" Anexo sistema de alarma, una de las cosas que quería hacer es tener un televisor encendido y de vez en cuando cambiar de canal. Por tuve un IR Led incorporado en el proyecto y fino trabajado.Sin em
Interfaz de LCD de 2 hilos para Arduino o Attiny (actualizado junio de 2016)

Interfaz de LCD de 2 hilos para Arduino o Attiny (actualizado junio de 2016)

Generalmente necesidad de 11signal líneas de LCD + 3 o 5 líneas para Vcc, tierra y contraste y en algunos casos un 2 extra de luz de fondo.Utilizando la pantalla LCD en modo de 4 bit ahorra 4 pines, pero a menudo eso no es suficiente. Aunque es posib
Aprende o enseña Arduino sin ninguna línea de código # 2

Aprende o enseña Arduino sin ninguna línea de código # 2

Hola a todos, este es el segundo tutorial de Arduino como al programa sin necesidad de escribir ninguna línea de código, usando Ardublock, que es una extensión de la IDE de Arduino para programación visual. Si es la primera vez que utilice Ardublock,
Una máquina pequeña Tea Timer (TTT) para Arduino y ATtiny

Una máquina pequeña Tea Timer (TTT) para Arduino y ATtiny

TinyTeaTimmer (TTT) es una implementación de un pequeño accesorio que fácilmente puede ser montado y programado usando un interruptor, un botón, 1 o 2 LEDs, un pequeño servo motor y una placa Arduino o un procesador ATTiny.Puede encontrar los archivo
Arduino animatronics-hacer tu vestuario impresionante más impresionante!

Arduino animatronics-hacer tu vestuario impresionante más impresionante!

Aquí es cómo agregar luces, sonido y acción a tu proyecto favorito de Halloween utilizando el microcontrolador de Arduino de código abierto. Arduino es fácil aprender a utilizar y se abre un nuevo mundo para traje constructores y creadores de la cria
Clave de acceso con arduino

Clave de acceso con arduino

~ ~ el kit completo para este tutorial ya está a la venta en www.razvantech.com conseguir uno! ~~Este instructable le mostrará cómo hacer un sistema de bloqueo de código usando la placa Arduino Mega.Cuando escriba el código adecuado, un LED se encien
Velocidad coche RC controlado con (controlador de controlador de Motor de CH 4 + Arduino + Bluetooth)

Velocidad coche RC controlado con (controlador de controlador de Motor de CH 4 + Arduino + Bluetooth)

Hola, ya que este es mi primer instructivo aquí, espero que te guste y no dude en preguntar sobre cualquier cosa no clara en él.En primer lugar, empecé este proyecto después de que quería controlar 4 motores que requiere de relativamente alta potenci
Arduino powered bluetooth remoto relé interruptor

Arduino powered bluetooth remoto relé interruptor

HiQuería construir una simple caja de interruptor remoto de bluetooth 2 canales.para poder cambiar de forma remota varios dispositivos de encendido y apagado desde mi teléfono android.El dispositivo tenía que ser pequeña fácil de usar y flexable sufi
Invernadero miniatura con arduino

Invernadero miniatura con arduino

Requisitos-Botella de refresco-humedad / sensor de temperatura-Motor servo-Arduino-caja de-Caso Arduino-bandas elásticas-cables eléctricosPaso 1: Conecte la humedad / sensor de temperatura para la botella de sodaFijar la humedad / sensor de temperatu