Hallo zusammen,
mein Board ist gestern eingetroffen.
Erster Eindruck: Solide gemacht, die ft-Stecker passen gut. Das Board ist übersichtlich und klar beschriftet.
Gegenüber anderen Shields erspart man sich auch Lötarbeiten mit den Headern. Allerdings sind die Stifte nicht als "Stacking Header" ausgeführt; man kann also obendrüber kein Board "stapeln". Das würde auch an den ft-Steckern scheitern, die hoch herausragen; zudem wäre es wenig sinnvoll, da das Board fast alle Ports des Arduino belegt (siehe unten).
Anders als das Adafruit-Motor-Shield (v2.3), das wir in den Modellen in unserem Buch verwendet haben, wird das Board nicht über I2C gesteuert - stattdessen werden (wie beim Arduino-Motor-Shield oder der Adafruit-Motor-Shield-Version 1) die Arduino-Ports direkt für die Motorsteuerung genutzt und sind beim Anschluss eines Motors belegt. Die Reihenfolge der Steckkontakte entspricht nicht der der digitalen Pins - daher muss man entweder etwas suchen oder die (vierseitige) Dokumentation konsultieren, um zu erkennen, welche Pins nutzbar sind. Die Anschlüsse D0 und D1 (UART/Serieller Port) liegen an zwei Schraubklemmen an und sind nicht über ft-Stecker erreichbar.
Diese Realisierung hat verschiedene Einschränkungen zur Folge, die man bei der Nutzung beachten muss:
- bei Anschluss aller vier Motorausgänge fallen acht der 14 digitalen Ein-/Ausgänge des Arduino Uno weg (D3, D4, D5, D6, D8, D9, D10, D11)
- die beiden Servo-Ports belegen D3 resp. D5; ist ein Servo angeschlossen, kann Motoranschluss M1 nicht genutzt werden. Für die Servos gibt es auch keinen separaten 5-6V Stromanschluss für den Fall, dass man die anliegende Last reduzieren muss (wie beim Adafruit-Shield)
- das Board kann nicht (wie beim Adafruit-Motor-Shield) weiter gestapelt werden, um mehr Motoranschlüsse zu gewinnen (wie das Adafruit-Shield, das über verschiedene konfigurierbare I2C-Adressen angesprochen werden kann)
- der SPI-Anschluss benötigt die Pins D2 (CE), D7 (CNE), D11 (MOSI), D12 (MISO) und D13 (SCK - Takt); wird ein Sensor also via SPI angeschlossen, sind daher der Motoranschluss M4 und die einzigen beiden freien digital-Pins D7 und D2 belegt
- die I2C-Ports sind über Schraubklemmen zugänglich; wird der Bus genutzt, sind die analogen Ports A4 und A5 belegt (das ist "Standard" und gilt auch für andere Motor-Shields und den Arduino Uno selbst)
Damit stehen eigentlich nur die Anaolg-Pins A0 bis A5 (A4/5 nur, wenn kein I2C genutzt) und zwei digitale Pins (D2, D7, falls kein SPI genutzt wird) für direkte Sensor-Anschlüsse zur Verfügung. Da beim Uno nur an D2 und D3 Interrupt-Service-Routinen angelegt werden können, dürfte auch davon einer (D3) für M1 wegfallen.
Erstes Zwischenfazit: Gut anschließbar (ft-Stecker), aber weit weniger Ports als beim Adafruit Motor Shield und zahlreiche Pin-Kollisionen (abhängig von der Nutzung), wodurch die Verwendung eingeschränkt und etwas knifflig wird - für Einsteiger ist die Doppelbelegung der Pins mglw. nicht sofort ersichtlich.
Aber ein paar der Modelle aus dem Buch lassen sich darüber betreiben; wir werden daher in nächster Zeit auf der
Webseite ein paar Beispielprogramme für einige der Robotermodelle bereitstellen.
Beste Grüße,
Dirk