Paso 1: ATTiny 85 USI
En primer lugar queríamos uso y ATTiny 85. El pequeño chip AVR que es compacto y bajo en consumo de energía. Los ATtiny 85 (y sus primos) no tienen hardware I2C o SPI incorporado, sino más bien USI (interfaz en serie Universal). USI se puede utilizar para facilitar el I2C y SPI. Estos métodos pueden utilizarse también para programar el ATTiny con el Raspberry Pi.
Conexión hardware es simple para esto si desea usar SPI conectar MOSI MOSI, MISO a MISO, y CLK a CLK. I2C conectar el SDA SDA, SCL a SCL y agregar Levante resistentes (4.7 kohms en 5V) para que funcione. Sugiero usar I2C ya que tarda una menos pin pins son limitados y librería I2C para el ATTiny están mejor documentados.
Biblioteca USI ATTiny puede encontrarse aquí. La biblioteca es sencilla de utilizar y puede implementarse fácilmente.
Este es el código para el ATTiny. El código simplemente ecos lo envió a él y parpadea un LED una cantidad igual de tiempo.
#include < TinyWireS.h >
#define SLAVE_ADDRESS 0 x 04
#define LED1_PIN 4 / / ATtiny Pin 3
void setup()
{
pinMode(LED1_PIN,OUTPUT);
Blink(LED1_PIN,2); Mostrar que está vivo
TinyWireS.begin(SLAVE_ADDRESS);
}
void loop()
{
byte byteRcvd = 0;
if(TinyWireS.Available())
{
byteRcvd = TinyWireS.receive();
TinyWireS.send(byteRcvd);
Blink (LED2_PIN, byteRcvd);
}
}
void Blink (byte led, tiempos de byte) {}
para (byte i = 0; i < veces; i ++) {}
digitalWrite(led,HIGH);
retraso (25);
digitalWrite(led,LOW);
retraso (17);
}
}
Este es un código simple para la frambuesa Pi hecho en python. El código envía un número entero de su elección e imprime lo que los ecos del ATTiny nuevo.
importación de smbus
importación de timebus = smbus. SMBus(1)
direccion = 0 x 04
Aunque la verdad:
i2cread = bus.read_byte(address)
imprimir time.sleep(0.1) i2cread
Con esto de que usted debería ser capaz hacer pruebas básicas y asegúrese de que no hay ningún problema de hardware. Sin embargo, más adelante encontramos que la biblioteca es la limitación ya que tiene problema haciendo comunicación rápida y dio lugar a frecuentes estrellarse. Esto empujó a trasladarse a ATMegas ya permitirá es para nosotros la biblioteca de alambre de Arduino.