Étape 1: ATTiny 85 USI
Tout d’abord, nous voulions utiliser et ATTiny 85. La petite puce AVR qui est compacte et faible consommation d’énergie. Le 85 ATtiny (et ses cousins) n’ont pas des matériels I2C ou SPI intégrée, mais plutôt l’USI (Interface série universelle). USI peut servir à faciliter I2C et SPI. Ces méthodes permettent également de programmer le ATTiny utilisant le Raspberry Pi.
Matériel de branchement est simple pour cela si vous voulez utiliser SPI connecter MOSI à MOSI, MISO au MISO, et CLK à I2C CLK. connecter le SDA au SDA, SCL de SCL et ajoutez les tirer vers le haut de résistants (4,7 kOhms sur 5V) pour qu’il fonctionne. Je suggère d’utiliser I2C puisqu’il reprend un moins broches et épingles sont limitées et bibliothèque I2C pour le ATTiny sont mieux documentés.
ATTiny USI bibliothèque peut être trouvée ici. La bibliothèque est simple à utiliser et peut être facilement mis en œuvre.
C’est le Code pour le ATTiny. Le code simplement les echos ce qui est envoyé à elle et clignote un voyant une quantité égale de temps.
#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) ; Il est vivant
TinyWireS.begin(SLAVE_ADDRESS) ;
}
void loop()
{
byteRcvd octets = 0 ;
if(TinyWireS.available())
{
byteRcvd = TinyWireS.receive() ;
TinyWireS.send(byteRcvd) ;
Clignote (LED2_PIN, byteRcvd) ;
}
}
void Blink (octet dirigé, octet times) {}
pour (octet j’ai = 0; i < fois; i ++) {}
digitalWrite(led,HIGH) ;
retard (25) ;
digitalWrite(led,LOW) ;
retard (17) ;
}
}
Il s’agit d’un simple code pour le Raspberry Pi fait en python. Le code envoie un nombre entier de votre choix et imprime ce que les echos ATTiny retour.
importer smbus
importation timebus = smbus. SMBus(1)
adresse = 0 x 04
While True :
i2cread = bus.read_byte(address)
impression i2cread time.sleep(0.1)
Avec ceci, on devrait être en mesure de faire des tests de base et assurez-vous qu’il n’y a aucun problème matériel. Cependant, plus tard, nous avons constaté que la bibliothèque est limité par son problème faisant une communication rapide et a abouti à fréquentes s’écraser. Cela a poussé pour passer au ATMegas comme qui permettra aux est pour nous la bibliothèque de fils Arduino.