Arduino meets Raspberry Pi

Brückenbauer Embedded Pi

14. August 2013, 14:39 Uhr | Hüseyin Anaç
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Die drei Betriebsmodi

Blockschaltbild
Bild 2. Blockschaltbild des Embedded Pi im Stand-alone-Modus. Das Embedded Pi steuert die Arduino Shields selbstständig an, kann aber über die On-Board Interfaces auch mit anderen I/Os verbunden werden.
© Elektronik

STM32/Stand-alone-Modus

Im Stand-alone-Modus arbeitet der Embedded Pi als Motherboard für das jeweilige Arduino Shield. Hier steuert der STM32-Mikrocontroller die Arduino Shields direkt ohne einen zwischengeschalteten Raspberry Pi. Der Embedded Pi verfügt über sechs analoge Eingänge, kann so seine Umwelt durch verschiedene Signale mittels einer Reihe von Sensoren wahrnehmen und damit etwa Lichtquellen, Motoren oder andere Steuerungsantriebe beeinflussen.
Um mit den über 100 verschiedenen Arduino Shields nicht nur Formfaktor-kompatibel zu sein, unterstützt der Embedded Pi sowohl 5-V- als auch 3,3-V-Arduino-Shields. Diese werden pin-to-pin über den Arduino-Steckverbinder (I/O headers rev3) einfach auf den Embedded Pi aufgesteckt (Bilder 1 und 2).
Die zusätzlichen On-Board Interfaces des Embedded Pi (SPI, UART, I2C, PWM und CAN) ermöglichen zusätzlich die Verbindung mit anderen Erweiterungs-Boards. Für das Debugging und Programmieren stehen ein SWD-/JTAG-Port sowie ein ISP-Interface zur Verfügung. In der CooCox-Entwicklungsumgebung können Anwender ihre Embedded-Projekte in C umsetzen. Die Tools für Cortex-M-Mikrocontroller, beispielsweise CoIDE oder CoFlash, laufen unter Windows XP, Vista und 7 und ermöglichen Flash-Programmierung und Debugging.
Um die Peripherie anzusteuern, die sich auf den Shields befindet, gibt es die „CoX Peripheral Library“. CoX definiert den Zugriff auf weit verbreitete Peripheriefunktionen der Mikrocontroller wie z.B. I2C, UART, SPI usw. Einmal geschrieben, kann ein CoX-Treiber einfach auf eine andere MCU-Architektur portiert werden. Für eine Reihe von Arduino Shields gibt es bereits CoX-Treiber, die kompatibel zu den Triple-Play-Modi sind. Damit lassen sich die Shields sofort in eigene Projekte in der CoIDE laden. Aktuell unterstützte Treiber für die Shields sind das Arduino WiFi Shield, das Arduino Motor Shield, das Adafruit Motor Shield oder das DFRobot LCD Shield. Momentan in der Entwicklung befinden sich die Treiber für das Arduino GPRS Shield. Embest entwickelt fortlaufend weitere Treiber für die verschiedenen Shields.

passend zum Thema

Blockschaltbild
Bild 3. Im ST-Adapter-Modus stellt ein Raspberry Pi die Benutzeroberfläche für die Steuerung der Arduino Shields dar. Das Embedded Pi sorgt für die Verbindung zwischen Raspberry Pi und den Shields und übernimmt die Steuerungsfunktionen.
© Elektronik

ST-Adapter-Modus

Im ST-Adapter-Modus steuert der STM32-Mikrocontroller ebenfalls die Arduino Shields. Das Raspberry Pi übernimmt dabei die Funktion des HMI (Human Machine Interface) und stellt eine grafische Benutzeroberfläche oder Kommandozeilenkonsole dar. Über das Raspberry Pi werden Befehle und Daten gesendet sowie Daten vom STM32 empfangen werden (Bild 3). Für diesen Modus muss eine spezielle Firmware für den Mikrocontroller des Embedded Pi aufgespielt werden, mit der die Arduino Shields gesteuert werden und die die Kommunikation mit dem Raspberry Pi sicherstellt. Diese kann aus der CoIDE-Projektdatei generiert und mit den Tools CoIDE, CoFlash oder mit dem ISP Tool programmiert werden. Der Quellcode zur Shield-Steuerung ist identisch mit dem im STM32/Stand-alone-Modus. Die Code-Komponenten des Protocol Decode Layer für die Kommunikation mit dem Raspberry Pi bietet CooCox auf der eigenen Homepage an.

Der ST-Adapter-Modus eignet sich besonders für anspruchsvollere Projekte, da er die Fähigkeiten des Raspberry Pi um Fähigkeiten der Automatisierung erweitert. Der STM32-Mikrocontroller des Embedded Pi bringt Features wie einen NVIC (Nested Vectored Interrupt Controller), GPIOs, Pulsweitenmodulation (PWM) und Analog-Digital-Umsetzer ein, die vielfältig mit den Arduino-Shields kombiniert werden können. Über die SPI-, I2C- und UART-Kanäle des Raspberry Pi können die Multiplexfunktionen der digitalen I/Os genutzt werden. Die Stromversorgung des Embedded Pi erfolgt hierbei über den angeschlossenen Raspberry Pi.

Der C++-Quellcode zur Befehlsübermittlung und zum Datenempfang vom Mikrocontroller läuft auf dem Raspberry Pi unter dem Debian-Betriebssystem „wheezy“. Dieses wird zusammen mit der Firmware und dem Quellcode des STM32 zur Verfügung gestellt. Für die Entwicklung von Anwendungen im ST-Adapter-Modus müssen Nutzer den Protocol Decode Layer Code und den C++-Code weiterentwickeln beziehungsweise ersetzen, damit sie auf dem Debian-Betriebssystem des Rasp­berry Pi laufen. Hierfür werden ebenfalls Anleitungen bereitgestellt.

Blockschaltbild
Bild 4. Schema des Raspberry-Pi-Modus.
© Elektronik

Raspberry-Pi-Modus

Im Raspberry-Pi-Modus fungiert der Embedded Pi als reine Hardware-Verbindung zwischen dem Raspberry Pi und den Arduino Shields. Der Raspberry Pi koppelt sich direkt an die Shields und kann dadurch deren Sensoren und Komponenten nutzen, um mit der externen Umgebung zu interagieren. Damit erweitert der Embedded Pi den Rasp­berry Pi um die digitalen und analogen Sensoren der Arduino Shields (Bild 4). So ist es in diesem Modus beispielsweise möglich, mit dem Rasp­berry Pi und dem Arduino-Motor-Shield einen Motor zu steuern.

Die Arduino Community hat bereits eine Vielzahl an Treibern, Anwendungsbeispielen und Hilfestellungen zu Shields für Linux entwickelt. In der Open Source Library „arduPi“ finden sich solche, die unter Debian auf dem Rasp­berry Pi laufen, sowie die meisten Treiber für das Shield-Umfeld wie GPIO, I2C und SPI.

Der Brückenbauer Embedded Pi verschmilzt zwei Welten und hebt den Rasp­berry Pi dadurch in die Liga der professionellen Applikation und Anwendungsentwicklung industrieller und Konsumbereiche.


  1. Brückenbauer Embedded Pi
  2. Die drei Betriebsmodi

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Farnell GmbH

Weitere Artikel zu Industrie-Computer / Embedded PC

Weitere Artikel zu SBCs / CPU-Boards / CoM / SoM