Arduino : Twig/Grove I2C Motor Driver Library

Da es ein wenig umständlich ist jedes mal die ganze I2C Kommunikation erneut in Code zu gießen, habe ich kurzerhand auf Basis der original Arduino Stepper Library eine kleine Library zur Nutzung des Twig I2C Motor Driver von Seeed geschieben.

Listing 1 zeigt ein kleines Code Beispiel zur Nutzung der Arduino Library. Da der Code eigentlich selbsterklärend ist, erspare ich mir hier nährere Erläuterungen.

Listing 1:

#include <Wire.h>
#include <TwigMotor.h>
#define STEPS 48

// create an instance of the TwigMotor class, specifying
// number of steps and I2C address
TwigMotor stepper(STEPS, 0x28);

void setup()
{
// set the speed of the motor to 100 RPMs
stepper.setSpeed(0x28,100);
}

void loop(){
// move 100 steps forward
stepper.step(0x28,100,FORWARD);
delay(1000);
// move 100 steps backward
stepper.step(0x28,100,BACKWARD);
delay(1000);
}

Die genaue Spezifikation und weitere Informationen zum Twig I2C Motor Driver gibt es im Seeed Wiki.

Die Twig I2C Motor Shield Library gibt’s hier zum Download:
https://github.com/mariolukas/TwigMotor-Library

UPDATE: Bei der Arduino IDE mit einer kleinereren Versionsnummer als 022 kann es zu Problemen kommen.

11 Gedanken zu “Arduino : Twig/Grove I2C Motor Driver Library

  1. […] werden. Um auch hier Zeit zu sparen war meine Lösung für dieses Problem klar: ein Arduino samt Motor Treibern sollte das ganze steuern. Damit alles perfekt sein sollte, musste der Drucker natürlich über […]

  2. Hey,

    Do you have an email I can catch you on? I have a few questions re your projects.

    Thanks

    Ryan

  3. Hast du schon Erfahrungen sammeln können, wie man das Ding mit Halbschritten auf einem Stepper betreibt?

    Ich versuche gerade rauszufinden, wie die gesamte API von dem Ding ist, bzw. welche I2C Befehle der Treiber überhaupt versteht.

    MfG
    Michael

    • Hallo,

      alles was ich bisher hab sind die Informationen die bei seeed im Wiki stehen. Ich musste allerdings einen neuen ATMega 8 drauf löten ( den alten hab ich wohl gebraten). Ich hatte dann das Problem das ich keine Firmware für den neuen ATMega hatte. Ich hab seeed bereits angeschrieben, ob sie die sourcen für die Firmware rausgeben und warte noch auf eine Antwort. Um mein Problem zu lösen hab ich kurzerhand die Firmware von einem zweiten TWIG ausgelesen. Zur Not müsste man mal in das hex file reinschauen. Ich hab im Moment leide viel zu tun und kann mich nicht wirklich damit befassen (wohl erst ab April wieder). Falls du was rausfindest wäre ich natürlich froh wenn du mich auf dem Laufenden hälst. Ich werd mir die Sache im April auch noch mal anschauen.

      Gruss
      Mario

  4. Hi Mario.

    Wenn ich das richtig gesehen habe, gibts mittlerweile die Firmware im Wiki bei denen.

    File:Grove-I2C Motor Driver firmware.zip

    Vielleicht kannst du dann deinen gebratenen Driver wieder reparieren.

    Ich fange gerade erst an mit dem Arduino-Kram. Muss mein C++ von vor 12 Jahren mal wieder auffrischen 😉

    MfG
    Michael

    • Hi,

      danke für den Hinweis das die Firmware jetzt online ist. Leider scheint da auch nur das HEX File drin zu sein. Mein Treiber läuft wieder. Da ich die Teile in dem Klopapierdrucker verbaut habe und der jetzt zur CeBit geschickt wird, kann ich leider erst mal nicht weiter daran tüfteln. Aber wenn das Ding wieder zurück ist werde ich mich mal intensiver damit befassen. Auch werde ich dann meine Library erweitern.

      Gruss
      Mario

  5. Moritz Zumbühl

    hi,
    irgendwie krieg ich das ding gar nicht zum laufen. hast du einen tipp bezüglich den leds? bei mir sind alle 5 an (also power und die beiden Paars pro Motor) aber ich krieg einfach keinen einzigen code zum laufen. weder Demo, noch deine lib (cool!) noch den roover code. irgend welche Hilfe? kann gut c++ und scripting aber null hardware&elektronik 😉

    verzweifelte grüsse
    moritz

    • Hi,

      ja die Teile machen manchmal schon extrem Probleme. Leider hab ich meine noch nicht wieder bekommen. Der Drucker kommt erst im Mai von einer Ausstellung zurück.

      Hast du mal versucht den Resettaster zu drücken, was machen die LED’s dann? Was willst du denn damit ansteuern, Stepper oder einfache DC Motoren?

      Die Library ist leider noch nicht für die neueste Arduino IDE angepasst. Aber sollte mit den Beispielen in einer älteren Version bspw. 028 eigentlich direkt laufen. Hast du den I2C Bus richtig verkabelt? Verwendest du eine externe Stromversorgung für die Boards?

      Gruss
      Mario

  6. Moritz Zumbühl

    hoi mario
    danke für die Antwort! ich hab jetzt mal ein anderes board genommen und es funktioniert zum Glück damit. werd deinen hinweisen bei zeit dann mal noch nachgehen.

    gruss Moritz

  7. Higgsboson

    Hallo Mario,

    danke für das tolle Library!

    Ich habe zwei der Treiber und möchte damit zwei Motoren gleichzeitig ansteuern.

    Leider schaffe ich es nur, sie nacheinander zu bewegen. Gibt es hier eine Lösung, um die Motoren gleichzeitig bewegen zu können?

    Viele Grüße

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Kommentare werden moderiert. Es kann etwas dauern, bis dein Kommentar angezeigt wird.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.