Projets de pi framboise pour les nuls

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.

Fonctions Raspberry Pi GPIO Pin Autres

L'entrée à usage général / sortie (GPIO) broches peut être commuté entre entrée ou de sortie et un pull-up ou pull-down résistance activés, mais il ya une foule d'autres périphériques dans la puce Raspberry Pi qui peuvent être commutés à ces épingles. Vous pouvez voir l'agencement de base pour une broche, GPIO 18.

image0.jpg

Tous les autres broches ont une disposition similaire, mais avec différents blocs à sélectionner. Les chiffres sur l'interrupteur sont la valeur du registre à trois bits qui doivent être mis dans la collection de fonction alternative sélectionnez registres. Notez que les numéros de Alt ont peu de rapport avec les motifs de bits que vous avez réellement définies.

Bien qu'il existe 54 lignes GPIO dans le processeur du Raspberry Pi, seulement 28 sont mis en évidence sur le connecteur P1 sur la carte (moins sur les modèles non-plus) - le reste sont utilisés pour faire réellement le processeur acte comme un ordinateur (des choses comme la carte SD, connecteur USB, et les LED). Sur le B + et modèles de A +, vous avez le premier 28 GPIO Goupilles sur les modèles précédents, vous avez un sous-ensemble de ceux-ci. La plupart des diagrammes vous trouvez que vous donnent seulement une sélection de ces fonctions alternatives. Ici, vous pouvez voir toutes les fonctions de remplacement et où ils apparaissent sur le connecteur GPIO.

image1.jpg

La première chose à repérer est qu'il ya deux types de “ rien ici ” ;: L'un est blanc et l'autre est étiqueté comme . Il est probable que ces fonctions réservées sont utilisés pour les essais en usine de la puce ou pour les fonctions ne sont pas présentées dans la feuille de données. Ceux vierges sont tout simplement pas mises en œuvre.

Pour l'histoire complète gore, le BCM2835 document Périphériques ARM est l'endroit où vous voulez regarder, mais voici un rapide coup d'oeil à quelques-unes des fonctions:

  • ALT 0: Là où la plupart des fonctions alternatives intéressantes et utiles sont aussi loin que le Raspberry Pi est concerné. Le SDA et SCL 0 et 1 sont les deux que je2C bus, et l'TXD0 et RXD0 sont les connexions série. Les lignes de GPCLK sont une sortie d'horloge d'usage général qui peut être réglé pour fonctionner à une fréquence fixe indépendante de tout logiciel. Les broches PWM fournissent la largeur d'impulsion modulée deux outputs- le SPI 0 est les lignes périphériques de bus série de l'interface. Enfin, les repères de PCM fournissent sorties audio modulés par impulsions codées.

  • ALT 1: Les broches sont utilisées comme un bus de mémoire secondaire. En raison de la conception du Raspberry Pi, cela est d'aucune utilité.

  • ALT 2: Les ALT seulement 2 broches a fait ressortir les à la tête de broches GPIO sont réservés.

  • ALT 3: Les broches les plus utiles ici sont les CTS0 et RTS0 lignes- ceux-ci sont Handshaking lignes pour le module de série si vous en avez besoin. Les lignes de BSC sont pour le contrôleur Serial Broadcom, qui est un mode rapide, je2C conforme bus prenant en charge 7-bit et 10-bit d'adressage et ayant le moment contrôlé par des registres internes. Les lignes SD1 sont probablement pour le contrôle d'une carte SD, mais le BCM2835 document Périphériques ARM ne fait aucune autre mention de celui-ci. Il est pas la façon dont le Raspberry Pi accède à la carte SD de toute façon.

  • ALT 4: Les SPI 1 lignes sont un deuxième bus SPI. Et les broches de bras sont d'une interface JTAG. JTAG est une façon de parler à la puce sans aucun logiciel sur elle. Il est très utilisé pour les tests initiaux sur un système au cours du développement, même si elle peut être utilisée pour le débogage matériel ainsi.

  • ALT 5: Les broches utiles ici sont les deuxièmes lignes de données série du port et protocole. Les lignes de PWM sont exactement les mêmes lignes de PWM qui sont des commutateurs à GPIO 12 et 13 sous ALT 0, mais cette fois ils sont passés à GPIO 20 et 21. Il ya aussi deux des lignes à des fins générales horloge avec une autre copie de les signaux ARM JTAG.

Mise sous tension de la Raspberry Pi

Une question commune est “ que le pouvoir Raspberry Pi cela, ”?; à laquelle le répondeur est toujours “ Qu'entendez-vous par la puissance ”?; Fondamentalement, il ya trois façons de Pi peut alimenter quelque chose et chacun a une réponse distincte.

Sourcing la puissance de la broche GPIO

Les broches GPIO sont très fragiles sur le Raspberry Pi, par rapport à d'autres conseils d'administration, comme l'Arduino. Chaque broche GPIO peut source (fournir le courant) ou lavabo (sucer le courant dans l'axe pour passer quelque chose à la terre) à propos de 16mA. Le montant total de leur source ou coulé de toutes les broches additionnés actuelle devrait être limitée à environ 50 mA, qui se répand à environ 3 mA chacune pour les modèles non-plus.

La seule chose que vous devriez être alimentez directement à partir d'une broche GPIO est une LED, et seulement avec un faible courant à cela. Tout le reste doit passer par une sorte de pilote - normalement un transistor FET ou. En outre, la tension de sortie est uniquement 3V3, de sorte que de nombreux dispositifs ont besoin de plus de tension, ainsi que plus de courant.

Sourcing la puissance de la Pi

Ceci est où le signal à contrôler quelque chose est dérivé des broches GPIO, mais la puissance réelle à conduire, il est de la 3V3 ou 5V lignes électriques internes du Raspberry Pi.

Utilisation de l'alimentation en 3V3 est difficile parce que cette ligne passe par les régulateurs de tension et il ya un nombre limité de pièces de rechange disponibles courant avant que vous obteniez une surchauffe des régulateurs. Ne prenez pas plus de 50 mA à partir de ce rail d'alimentation. Si vous voulez plus, pensez à utiliser un régulateur de tension sur la ligne de 5V.

Beaucoup plus prometteuse est la ligne de 5V parce qu'il est dérivé de la même source d'énergie qui alimente l'ensemble Pi. Parce que le Pi prend jusqu'à 800mA en pointe, si vous mettez l'Pi avec une alimentation de 2A, vous pourriez prendre environ 1.2A à partir des lignes de 5V. Parallèlement les deux 5V broches du connecteur GPIO et au moins deux motifs de réduire la résistance introduite par le connecteur. Mais à l'extrémité supérieure de cette consommation de courant, attendez un peu de tension statisme - vous pourriez obtenir un volts ou si perdu et se retrouver avec seulement environ 4V.

Sourcing la puissance d'une alimentation externe

Il ya des moments où vous avez besoin d'une tension supérieure à 5V 3V3 ou pour commander un dispositif. Si tel est le cas, vous avez besoin d'une alimentation séparée. Cela signifie que le sol ou borne -ve de l'alimentation externe doivent être reliés à la masse de la Raspberry Pi. Une crainte commune ici est que cette volonté en quelque sorte endommager le Pi, mais tant qu'il est seulement le sol qui est connecté, il n'y a rien à craindre.

Par exemple, une application typique pourrait consister à conduire un relais de 12V.

image0.jpg

La façon dont un transistor fonctionne assure que le 12V ne fuit pas en arrière dans le Raspberry Pi.

Les contacts de relais sont complètement distincts de la Pi-ce qui est dit d'être isolé. Toute sorte de bobine ou inductance doit avoir une diode de protection contre retour EMF- c'est un grand pic de tension inverse qui se produit lorsque la bobine est retirée de l'actuelle de relais et le champ magnétique effondre. Les diodes short cela et l'empêche de causer des dommages.

La résistance de 1K dans la base du transistor garantit que vous ne faites pas trop de courant à partir de la broche GPIO. Ce circuit est applicable à d'autres choses aussi bien - par exemple, à la place de la bobine de relais, vous pouvez avoir un moteur.


» » » » Projets de pi framboise pour les nuls