Bonjour,
A travers une petite série d’articles, nous allons améliorer notre Raspberry Pi en lui ajoutant un micro-contrôleur : un ATmega328, le même que celui qui anime les Arduino UNO.
Nous aurons quasiment l’équivalent d’un Arduino Uno intégré à notre Pi, totalement reprogrammable via les GPIO, en UART et/ou en SPI.
L’IDE Arduino sera totalement utilisable sur le Pi, mais nous disposerons également d’outils en ligne de commande pour uploader nos sketches (à distance en SSH, par exemple).
Une petite précision, toutefois : notre ATmega sera cadencé à 8MHz/3.3v à la place des 16MHz/5v d’un UNO classique. Deux raisons : on économise au minimum un résonateur, et nous n’aurons pas besoin de convertisseur logique 3.35v (je rappelle que les GPIO d’un Pi sont sur une logique 3.3v et ceux d’un Arduino sont en 5v). En effet, un ATmega alimenté en 3.3v a des niveaux logiques en 3.3v également, ce qui sera parfait pour communiquer avec notre Pi.
Evidemment, la même méthode fonctionne aussi bien avec un ATmega en 5v/16MHz, mais il faudra faire quelques légers ajustements de code, et rajouter le nécessaire pour la conversion des niveaux logiques (un simple voltage divider suffira pour l’UART, mais c’est plus compliqué pour le SPI).
Au niveau de la programmation depuis le Pi, nous pourrons utiliser 2 méthodes :
– en SPI : permet de bootloader un ATmega et d’uploader du code, mais bloque un des deux uniques ports SPI du Raspberry. Cette méthode sera donc utilisée principalement la première fois, pour bootloader l’ATmega. Ensuite nous pourrons utiliser uniquement la seconde méthode :
– en UART : ne permet PAS de bootloader. Cependant, n’utilise que 3 pins sur le Raspberry, et ne bloque pas de SPI. Une fois l’ATmega bootloadé, nous pourrons utiliser uniquement cette méthode pour uploader nos sketches, et même déconnecter les liaisons SPI si on ne prévoit pas de « bootloader » d’autres ATmega par la suite (uploader des sketches reste cependant possible sans problème).
Ensuite, pour communiquer entre le Raspberry Pi et l’ATmega, nous aurons l’embarras du choix et du langage :
– SPI
– UART
– I2C
– Python
– Bash
– C, …
Cette série d’articles sera découpée en plusieurs parties :
– cablage façon breadboard des différents éléments
– installation des composants logiciels nécessaires
– conception et présentation d’un circuit imprimé sur cette base, étudié pour être modulable et extensible, avec néanmoins quelques améliorations…
Rendez-vous donc dans le premier article de la série : Rapberry Pi / Atmega bridge : branchements
2 réflexions au sujet de « Rapberry Pi / Atmega bridge : présentation »