EUR | USD

Erfahren Sie beim Bau des Devastator-Roboters auf unterhaltsame Weise mehr über Sensoren, MCUs, Software und Motorsteuerung

Von Paul Pickering

Zur Verfügung gestellt von Nordamerikanische Fachredakteure von Digi-Key

Der Bau eines multifunktionalen Roboters aus einem Kit stellt eine großartige Möglichkeit dar, um erste Schritte als Maker zu machen und etwas über Mikrocontroller, Sensoren, Motoren, Softwareentwicklung und vieles mehr zu lernen. Darüber hinaus stehen eine große Auswahl an Roboterkits, Zusatzkomponenten und Online-Hilfen sowohl für Einsteiger als auch für erfahrene Maker zur Verfügung

Dieser Artikel behandelt einige der praktischen Schritte, Probleme sowie mögliche Upgrades, die beim Bau eines Roboters, der auf der Plattform DFRobot Devastator (Abbildung 1) basiert, in Betracht gezogen werden können.

Bild des DFRobot Devastator

Abbildung 1: Der DFRobot Devastator ist eine vielseitige Plattform, mit deren Hilfe Entwickler und Maker ihre Kenntnisse in den Bereichen Elektronik und Software erweitern können. (Bildquelle: DFRobot)

Warum der Devastator? Er ist solide und widerstandsfähig, verfügt über eine Aluminiumkonstruktion und zwei bürstenbehaftete Gleichstrommotoren mit Metallgetriebe. Er ist für Lasten von bis zu 3 kg geeignet, verfügt über mehrere Montagebohrungen für Sensoren, Servos, Roboterarme und weiteres Zubehör und ist mit allen beliebten Mikrocontrollerkarten kompatibel.

Bau eines vollständigen Robotersystems

Der Roboter wird mit Fahrwerk, Rädern, Laufflächen und zwei Motoren geliefert, überlässt die Auswahl weiterer Komponenten jedoch dem Entwickler. Ein vollständiges System erfordert eine Mikrocontrollerkarte, eine Motortreiberkarte und eine Möglichkeit zur Eingabe von Befehlen. Optionale Zusatzkomponenten sind unter anderem Roboterarme, eine Videokamera oder ein Kollisionsvermeidungssystem, um ein gewisses Maß an autonomem Betrieb zu bieten.

Auswahl einer Mikrocontroller-Plattform

Der Devastator-Roboter ist mit mehreren beliebten Mikrocontroller-Plattformen kompatibel. Die Open-Source-Entwicklungsplattform Arduino wurde 2003 in Italien entwickelt und wird von Neueinsteigern wie auch von professionellen Entwicklern gleichermaßen verwendet. Das Board Arduino Uno (Abbildung 2) verwendet den 8-Bit-RISC-Mikrocontroller ATmega328P von Microchip Technology (ehemals Atmel).

Weitere Standardmerkmale sind ein USB-Anschluss, der von einem vorprogrammierten ATmega16U2-Mikrocontroller gesteuert wird, digitale Ein- und Ausgänge, ein analoger Eingangsport sowie In-Circuit-Programmierung über die serielle Schnittstelle für Software-Updates. Das neuere Board Arduino Due aktualisiert den Kern auf einen ARM®-Cortex®-M3 mit 32 Bit. Dieser Kern kommt auch auf dem Controllerboard von DFRobot (siehe unten) zum Einsatz, die Arduino-Kompatibilität und Motortreiber vereint.

Bild des Arduino Uno

Abbildung 2: Das Arduino Uno ist eine beliebte Wahl für Makerprojekte und basiert auf dem 8-Bit-RISC-Mikrocontroller ATmega328P von Microchip Technology. (Bildquelle: Arduino)

Der Einplatinencomputer Raspberry Pi wurde ursprünglich für Schulen entwickelt, um die Grundlagen der Informatik zu vermitteln. Er erfreut sich inzwischen jedoch auch in der Maker-Community überaus großer Beliebtheit. Der aktuellste Raspberry Pi 3 basiert auf einer Quad-Core-CPU von Broadcom mit 1,2 GHz und 64 Bit. Er unterstützt den WLAN-Standard 802.11n, Bluetooth 4.1 und Bluetooth mit geringem Stromverbrauch (BLE). Außerdem bietet er 1 GB RAM, einen Mikro-SD-Karteneinschub, 4 USB-Anschlüsse, HDMI- und Ethernet-Anschlüsse, eine Kameraschnittstelle, 40 GPIO-Pins sowie weitere spezielle Schnittstellen.

Windows-Gurus, die ihre vorhandene Erfahrung nutzen möchten, können mit dem Devastator-kompatiblen LattePanda-Controllerboard beginnen, da auf ihm eine aktivierte Vollversion von Windows 10 installiert ist. Auf dem Board befindet sich eine Quad-Core-CPU mit 1,8 GHz, die mit einem Coprozessor kombiniert ist, dem 8-Bit-Prozessor ATmega32u4 von Microchip, um die Kompatibilität mit Arduino zu gewährleisten.

Das Board LattePanda bietet 2 GB DDR3L-RAM und bis zu 32 GB Speicher, einen USB-3.0- und zwei USB-2.0-Anschlüsse, Wi-Fi, Bluetooth 4.0, einen Coprozessor und insgesamt 22 GPIOs, die auf beide Prozessoren aufgeteilt sind.

Steuerung der Motoren

Nach Auswahl des Mikrocontroller-Kerns geht es an die Auswahl einer Steuerplatine für den Motor. Der Devastator verfügt über zwei 6-Volt-Motoren, die mit 160 U/min (ohne Last) laufen. Jeder davon hat ein maximales Abtriebsdrehmoment von 0,8 kgf.cm (0,058 ft-lb.) und einen maximalen Stillstandsstrom von 2,8 Ampere (A).

Der Raspberry Pi erfordert für bestimmte Roboterfunktionen eine Plugin-Erweiterungskarte. Die DFR0398 Romeo BLE Quad von DFRobot hingegen stellt eine Single-Board-Option für Arduino-Fans dar, die sowohl den Mikrocontroller als auch die Motortreiber umfasst (Abbildung 3). Die Karte verfügt über einen leistungsstärkeren Kern als die UNO-Modelle, ist jedoch weiterhin mit der Arduino-Software kompatibel.

Als Mikrocontroller kommt der STM32F103RET6 von STMicroelectronics zum Einsatz. Diese Komponente nutzt als Kern den ARM®-Cortex®-M3 mit 32 Bit und 72 Megahertz (MHz). Sie verfügt außerdem über 512 KB Flash-Speicher, eine Motorsteuerung mittels PWM-Ansteuerung, 16 Kanäle für 12-Bit-Analog-zu-Digital-Wandlung und zwei Kanäle für die 12-Bit-Digital-zu-Analog-Wandlung.

Bild der DFR0398 Romeo BLE Quad von DFRobot

Abbildung 3: Die DFR0398 Romeo BLE Quad ist eine Arduino-kompatible Robotersteuerungskarte mit Bluetooth-Funktion und Treibern für vier Motoren. (Bildquelle: DFRobot)

Bei den Motortreibern handelt es sich um HR8833-Komponenten von Microsemi. Jeder MOSFET-Treiber enthält zwei H-Brückentreiber für die bidirektionale Steuerung der Devastator-Motoren. Die Romeo BLE Quad verfügt über vier Encoder-Schnittstellen und außerdem den HF-Transceiver CC2540 von Texas Instruments für drahtlose Bluetooth-4.0-Konnektivität.

Mehr Leistung

Die Mikrocontrollerkarten können mit den 5 V über den USB-Steckverbinder betrieben werden. Für die Motoren jedoch ist eine tragbare Stromquelle (d. h. eine Batterie) mit höherer Spannung und Stromstärke erforderlich. Viele Maker verwenden umgebaute kostengünstige Akkus, die ursprünglich für ferngesteuerte Autos entwickelt wurden. Diese Akkus bieten üblicherweise Spannungen von 7 Volt oder mehr und Kapazitäten von über 5000 Milliampere-Stunden (mAh) und es ist ein Leichtes, den Steckverbinder auszuwechseln. Der Servoanschluss der Romeo BLE Quad ist für 7 bis 10 Volt DC geeignet.

Programmieren der Mikrocontrollerkarte

Die Installation von Software auf der Mikrocontrollerkarte ist einfach und viele makerfreundliche Hersteller bieten auf ihren Websites Schritt-für-Schritt-Anleitungen an.

Bei der Wahl des Betriebssystems kommt es auf die verwendete Plattform an. Auf der LattePanda-Platine ist Windows bereits vorinstalliert. Der Raspberry Pi bietet mehrere Optionen, Windows IoT Core und verschiedene Linux-Distributionen eingeschlossen. Raspbian, eine Variante des Open-Source-Linux-Betriebssystems Debian, wird am häufigsten gewählt.

Arduino hingegen verwendet kein Betriebssystem im klassischen Sinn. Stattdessen verwenden Arduino-Plattformen ein zyklisch ausgeführtes Programm, das wiederholt eine Codesequenz durchläuft. Zum Schreiben und Installieren von Code verwenden Entwickler die quelloffene integrierte Arduino-Entwicklungsumgebung (IDE). Diese plattformübergreifende Anwendung ist in Java programmiert und für Host-Rechner mit Windows, Mac OS X sowie Linux verfügbar.  Die Arduino-Umgebung verwendet für mehrere Objekte eine eigene Terminologie. So wird bei einer Arduino-kompatiblen Plugin-Karte beispielsweise von einem „Shield“ gesprochen und ein Softwaremodul wird „Sketch“ genannt.

Programmieren mit der Romeo BLE Quad

Da es sich bei dem Romeo-BLE-Quad-Board um eine Einzelboard-Roboterlösung mit erweiterten Peripheriebausteinen handelt, verwenden wir sie für die folgende Diskussion:

Wählen Sie zuerst das gewünschte Betriebssystem für den Host-Rechner aus und laden Sie die passende IDE von der Arduino-Website herunter. Obwohl für das Romeo-BLE-Quad-Board von DFRobot nicht derselbe ATmega328-Prozessor wie für die Arduino-Standard-Hardware verwendet wird, ist die Softwareentwicklung sehr ähnlich, da die Karte mit der Arduino-IDE kompatibel ist.

Die IDE ist für über 25 Karten von verschiedenen Herstellern geeignet. Die Romeo BLE Quad ist jedoch nicht darunter. Das Romeo BLE Quad ist eine Version eines anderen DFRobot-Boards, nämlich des Bluno M3, mit zusätzlichen Motortreibern. Um die IDE zu konfigurieren, muss die Datei Bluno M3 von der GitHub-Website heruntergeladen werden.

So installieren Sie die Datei:

  1. Öffnen Sie die Arduino-IDE und wählen Sie „File -> Preferences“ aus. Kopieren Sie den GitHub-Link in das Feld „Additional Boards Manager URLs“ und klicken Sie auf „OK“.
  2. Wählen Sie „Tools -> Board -> Board Manager“ aus, geben Sie „Bluno M3“ in das Suchfeld ein und klicken Sie auf „Install“. Die Konfigurationsdatei wird heruntergeladen.
  3. Wählen Sie im Menü „Tools -> Board“ die Bluno M3 aus.

Das System ist jetzt bereit für die Anwendungsentwicklung. Die Standard-IDE unterstützt die Programmierung in C und C++ und enthält mehrere Codebeispiele. Entwickler verwenden den Texteditor zum Schreiben von Sketches (Programmen) (Abbildung 4).

Bildschirm der Arduino-IDE und Texteditor

Abbildung 4: Bildschirm der Arduino-IDE und Texteditor: Ein neues Programm enthält die zwei erforderlichen Funktionen. (Bildquelle: Arduino)

Die IDE übernimmt das Debugging und das Cross-Kompilieren des Codes und lädt das Ergebnis anschließend über den ISP-Port auf die Mikrocontrollerkarte hoch. Die Romeo BLE Quad kann auch über den Bluetooth-Anschluss programmiert werden.

Der Texteditor beginnt ein neues Programm mit zwei vorgeladenen erforderlichen Funktionen und ist bereit für die Codeeingabe. „setup()“ konfiguriert die Anfangsbedingungen und wird einmal ausgeführt. Anschließend wird „loop()“ kontinuierlich ausgeführt.

Die folgenden zwei Arduino-Bibliotheken müssen heruntergeladen und installiert werden, um die Devastator-Motoren über das Romeo BLE-Quad-Board zu steuern: Motor.h und PID_v1.h.

Der Code für den Motor beginnt mit dem Anfordern dieser zwei Bibliotheken als Header-Dateien über einen Einfügungsbefehl. Anschließend werden die E/A-Pins sowie einige Anfangskonstanten definiert. Als Nächstes werden im Abschnitt „setup()“ die Motoren konfiguriert (Auflistung 1).

Copy
/*!
* @file RemeoBLEQuadDrive.ino
* @brief RemeoBLEQuadDrive.ino PID control system of DC motor
*
*  RemeoBLEQuadDrive.ino Use PID control 4 way DC motor direction and speed
* 
* @author linfeng(490289303@qq.com)
* @version  V1.0
* @date  2016-4-14
*/
 
#include "PID_v1.h"
#include "Motor.h"
 
Motor motor[4];
int motorSpeed[4] = {-200,200,400,-400};/*Set 4 speed motor*/
/* Speed=motorSpeed/(32*(setSampleTime/1000))(r/s) */
const int motorDirPin[4][2] = { //Forward, Backward
/*Motor-driven IO ports*/
  {8,23},
  {7,9},   
  {24,14},
  {4,25}
};
 
 
//const double motorPidParam[3]={0.6,1,0.03};/*DC MOTOR,Yellow??180degree*/
//const double motorPidParam[3]={1.5,1,0.05};/*DC MOTOR,Yellow??90 degree*/
const double motorPidParam[3]={1.2,0.8,0.05};/*Encoder V1.0,160rd/min ;19500/min; 32:1,Kr=3.5*/
void setup( void )
{
  Serial1.begin(115200);
     for(int i=0;i<4;i++){
                                motor[i].setPid(motorPidParam[0],motorPidParam[1],motorPidParam[2]);/*Tuning PID parameters*/
                                motor[i].setPin(motorDirPin[i][0],motorDirPin[i][1]);/*Configure IO ports*/
                                motor[i].setSampleTime(100);/*Sets the sampling period*/
                motor[i].setChannel(i);/*Sets the motor channel */
                                motor[i].ready();/*Motor enable*/
                motor[i].setSpeed(motorSpeed[i]);/*Set motor speed*/
                }
}
 
void loop( void )
{
                for(int i = 0; i < 4; i++){
                                motor[i].calibrate();/*motor PID calibrate*/
                }
 
}

Auflistung 1: Dieses Beispiel eines C-Codes konfiguriert und steuert vier Arduino-Motoren für die Romeo BLE Quad. (Codequelle: DFRobot)

Die Abschnitte setup() und loop() konfigurieren und steuern vier Motorkanäle. Da für das Fahrwerk des Devastator nur zwei davon benötigt werden, stehen die übrigen zwei für Zubehör wie den unten genannten Roboterarm zur Verfügung.

Drahtlose Steuerung des Roboters

An die Steuerplatine kann ein USB-Kabel angeschlossen werden, um den Roboter auf diese Weise zu steuern. Die drahtlose Steuerung über Wi-Fi oder Bluetooth und ein Smartphone, Tablet oder einen Computer ist jedoch sehr viel komfortabler. Wie bereits erwähnt bietet die Romeo BLE Quad dasselbe Bluetooth-4.0-Modul wie die Bluno-Plattform. Open-Source-Apps für iOS 7.0+ und Android 4.3+ sind von GitHub erhältlich. Über diese Apps kann der Entwickler den Roboter steuern und per Remote-Zugriff ein neues Sketch hochladen.

Upgrades am Basisdesign

Nach dem Zusammenbau wird das Basisdesign gerne um weiteres Zubehör ergänzt, damit der Roboter einige hilfreiche Aufgaben übernehmen kann (Abbildung 5). Im Folgenden finden Sie einige Upgrades, die Sie ausprobieren können.

Ultraschallsensor URM37 v4.0 von DFRobot und Kameramodul 397 von Adafruit

Abbildung 5: Der Ultraschallsensor URM37 v4.0 von DFRobot) (links) und Adafruits Kameramodul 397 (rechts) sind beliebtes Zubehör (Bildquellen: DFRobot and Adafruit).

Ein mobiler Roboter sollte Hindernisse erkennen und ihnen ausweichen können. Der Ultraschallsensor URM37 v4.0 von DFRobot gibt eine zur Entfernung proportionale Spannung aus und ist sowohl mit dem Arduino als auch dem Raspberry Pi kompatibel. Der Sensor erkennt Objekte oder Wände, woraufhin der Code eine zufällige Drehung ausführt und der Roboter seinen Weg in die neue Richtung fortsetzt.

Gerne wird der Roboter auch mit einer mobilen Kamera ausgestattet. Das Kameramodul 397 von Adafruit kann Videos aufnehmen oder Fotos schießen. Die Kamera mit ihrem CMOS-Bildsensor macht Aufnahmen mit einer Auflösung von 640 x 480 Pixel bei 30 Frames pro Sekunde (fps) und verfügt außerdem über eine Bewegungserkennung.

Sie können die Kamera an einem Roboterarm wie beispielsweise an der Kipp-Schwenk-Baugruppe DF05BB anbringen (Abbildung 6). Das Kit enthält zwei Halterungen sowie zwei DF05-Servomotoren und wird horizontal befestigt.

Befestigung der Kipp-Schwenk-Baugruppe DF05BB von DFRobot

Abbildung 6: Die Kipp-Schwenk-Baugruppe DF05BB von DFRobot wird mit zwei Servomotoren und zwei Halterungen geliefert. (Bildquelle: DFRobot)

Zusammenbau

Ein vollständiger Devastator-Roboter besteht aus dem Fahrwerk, der Steuerplatine, einer Erweiterungskarte und einem Ultraschallsensor (Abbildung 7). Die zwei Platinen befinden sich aus Komfortgründen auf der oberen Plattform. Es ist jedoch auch eine untere Befestigungsplattform vorhanden, falls oben eine bewegliche Kamera montiert werden soll. 

Fahrwerk, Steuerplatine, Erweiterungskarte zur Motorsteuerung und Ultraschallsensor des Devastator

Abbildung 7: Dieses Beispiel für ein vollständiges Devastator-Design umfasst das Fahrwerk, eine Steuerplatine, eine Erweiterungskarte zur Motorsteuerung sowie einen Ultraschallsensor. (Bildquelle: DFRobot)

Fazit

Der DFRobot ist eine ausgezeichnete Plattform für Entwickler und Maker, um auf unterhaltsame Weise und mit guter Unterstützung etwas über Softwareentwicklung, die Funktionsweise von Mikrocontrollern, Sensoroptionen und Motorsteuerung zu erfahren.

Des Weiteren sind auf der Website von Digi-Key viele Ressourcen verfügbar. Beispielsweise können Sie hier etwas über die Programmierung der Arduino-Plattform erfahren. Außerdem bietet Digi-Key Unterstützung bei der Programmierung des Raspberry Pi mit Python, der am weitesten verbreiteten Pi-Sprache. Für alle oben genannten Produkte sind umfangreiche Dokumentationen, Anwendungshinweise und Tutorials verfügbar.

Nach Abschluss dieses Projekts stehen noch zahlreiche weitere zur Verfügung. Maker.io hat sich der Maker-Bewegung verschrieben und bietet Dutzende ausgewählte Projekte, Ressourcen, Finanzierungsquellen und vieles mehr.

Haftungsausschluss: Die Meinungen, Überzeugungen und Standpunkte der verschiedenen Autoren und/oder Forumsteilnehmer dieser Website spiegeln nicht notwendigerweise die Meinungen, Überzeugungen und Standpunkte der Digi-Key Electronics oder offiziellen Politik der Digi-Key Electronics wider.

Über den Autor

Paul Pickering

Über den Verlag

Nordamerikanische Fachredakteure von Digi-Key