Raccordement de la PI de framboise et de l'Arduino

Certaines personnes voient l'Arduino et Raspberry Pi comme conseils rivaux, mais ce ne sont pas du tout le cas. Si quoi que ce soit, ils sont complémentaires - la faiblesse de l'un est la force de l'autre. Voici trois façons de connecter un Arduino et un Raspberry Pi.

Sommaire

USB

Il suffit de brancher le connecteur USB sur le Raspberry Pi au connecteur USB de l'Arduino. Voilà tout ce que vous devez faire. Il ya une légère mise en abyme en ce que le Pi peut potentiellement affecter l'Arduino un des deux ports, alors quand l'ouverture du port série à l'Arduino, utilisez le code suivant:

importation serialtry: ser = serial.Serial ('/ dev / ttyACM0', 115200, timeout = 2), sauf: ser = serial.Serial ('/ dev / ttyACM1', 115200, timeout = 2)

Cela suppose que vous avez mis en place le code dans le Arduino pour utiliser le port série à la même vitesse de transmission 115200 avec une commande de commencer:

Serial.begin (115200)

Vous pouvez utiliser toute vitesse de transmission que les deux systèmes peuvent utiliser, mais ils doivent correspondre. Sur le côté Pi, utiliser ser.write () d'envoyer tout ce qui est dans les supports à l'Arduino et Retour = ser.read (1) pour obtenir un retour d'octets. Si il n'a rien reçu après la période de temporisation été défini lors de l'ouverture du port, les retours d'appels. Vous pouvez obtenir autant d'octets de retour de cet appel que vous mettez dans les supports.

Sériel

Cela fonctionne un peu comme dans le logiciel USB, mais ici vous connecter les broches GPIO sur le Raspberry Pi aux broches TX et RX sur l'Arduino. Cette méthode peut être utile si vous avez un Arduino avec plus d'un port série, comme l'Arduino Mega. Le seul hic est que si vous utilisez un 5V Arduino, vous avez besoin des circuits de décalage de niveau. Pour recevoir un signal 5V dans le Pi, un diviseur résistif simple suffit, mais en allant de 3V3 jusqu'à 5V vous avez besoin d'un transistor.

image0.jpg

Tout usage général transistor NPN peut être utilisé ici. Vous communiquez de la même manière que la série USB, sauf que vous obtenez toujours le port ttyACM0.

Pour les deux méthodes de série, vous transférez octets pas des nombres. Si vous avez des problèmes avec cela, peut-être un autre logiciel d'installation a changé le fonctionnement par défaut de votre port série sur le côté Pi. Si oui, une recherche en ligne pour les symptômes de votre problème spécifique.

je2C

Le I2C (prononcé “ I au carré C ” mais I2C souvent écrit) peut être utilisé pour connecter les deux ensemble. Le I2Système C est un arrangement maître / esclave - que le maître envoie ou demande des données. Le Raspberry Pi est pas très bien adapté pour être un I2C esclave, de sorte que vous avez à faire le maître. Le bus nécessite résistances pull-up, qui sont déjà sur broches GPIO 2 et 3 sur le Raspberry Pi. Malheureusement, le 5V Arduino a sa résistance interne pull-up activé si vous utilisez le standard I2Bibliothèque C appelé “ fil ” - parce que cela tire les lignes jusqu'à 5V, il pourrait endommager votre Pi. Ainsi, vous aurez à pirater la bibliothèque de fil (celui utilisé pour I2C) ou, mieux encore, utiliser une bibliothèque qui permet de contrôler les résistances de pull-up internes comme celle qui se trouve au Github.com. Connection est alors simple. Notez qu'il existe un exemple d'utilisation du Arduino comme je2C esclave dans la section des exemples de l'IDE Arduino.

image1.jpg

Si vous ne voulez pas changer le logiciel, vous devrez utiliser un I2Niveau C circuit de décalage.


» » » » Raccordement de la PI de framboise et de l'Arduino