AVR – Arbotix controlling AX12A-Motors with PyPose

Nach der Einrichtung einer Entwicklungsumgebung soll mit PyPose eine Verbindung zu den AX-12A-Motoren hergestellt werden, um die Position der Motoren zu lesen/schreiben. PyPose ist ein Python-Programm mit dessen Hilfe man Posen eines Roboters aufzeichnen und für AVR als *.h-Dateien speichern kann. Für die Kommunikation zwischen PyPose <-> Arboitx <-> AX-12A-Motoren wird eine serielle Verbindung mittels FTDI oder einer XBEE-Funkbrücke benötigt. In diesem Artikel wird eine kabelgebundene FTDI-Schnittstelle verwendet.

Arduino-Installationhttp://www.arduino.cc/playground/Learning/Linux
Arbotix-Installationhttps://code.google.com/p/arbotix/wiki/GettingSetup

Arduino IDE

Die Arduino-Entwicklungsumgebung ab Version 1.0 enthält gcc, avr-gcc,
Java VM, und nötige Bibliotheken für die Arbeit mit
AVR-Mikrocontrollern. Seit der Version Arduino 1.0 wurden viele
syntaktische Änderungen vorgenommen, so dass Sketchbook-Dateien (*.pde)
von ehemaligen Arduino-IDEs nicht zwangsläufig unter den neuen Versionen ab Arduino 1.0
laufen. In diesem Artikel wird die aktuelle Arduino-Version 1.0.1 auf einem Raspberry Pi geladen und eingerichtet.

Voraussetzung: root-Rechte oder sudo-Eintrag in /etc/sudoers

Download/Installation Arduino IDE

http://www.arduino.cc/playground/Learning/Linux

1. Apt-Repositorien aktualisieren.

apt-get update

2. Download und Installation Arduino.

apt-get install arduino

3. Gruppenzugehörigkeit erweitern, um den seriellen Bus benutzen zu dürfen.

usermod -a -G dialout meinbenutzername

Download/Installation Arbotix

https://code.google.com/p/arbotix/wiki/GettingSetup

1. Download Arbotix Firmware, PyPose & Nuke.

wget https://arbotix.googlecode.com/files/arbotix-0015.zip

2. Arbotix Firmware, PyPose & Nuke nach Ordner arbotix-0015 auspacken und in den Ordner wechseln.

mkdir arbotix-0015
unzip arbotix-0015.zip -d arbotix-0015
cd arbotix-0015

3. Kopieren von arbotix-0015/arbotix/* nach ~/sketchbook/arbotix0015_sketches.

mkdir ~/sketchbook/arbotix0015_sketches
cp -r arbotix-0015/arbotix/* ~/sketchbook/arbotix0015_sketches

4. Verschieben von ~/sketchbook/arbotix0015_sketches/hardware/* nach /usr/share/arduino/hardware.
Mit „whereis arduino“ überprüfen, ob /usr/share/arduino korrekt ist.

sudo mv ~/sketchbook/arbotix0015_sketches/hardware/* /usr/share/arduino/hardware/

5. Verschieben von ~/sketchbook/arbotix0015_sketches/libraries/* nach /usr/share/arduino/libraries.

sudo mv ~/sketchbook/arbotix0015_sketches/libraries/* /usr/share/arduino/libraries/

6. Die Datei „usr/share/arduino/hardware/arbotix/programmers.txt“ anpassen, so dass USB zur Kommunikation verwendet wird.

sudo vim /usr/share/arduino/hardware/arbotix/programmers.txt
diamexisp.name=Diamex ISP
diamexisp.communication=usb
diamexisp.protocol=stk500v2

Test & Fehlerbehebung

1. Mögliche Fehler während dem Ausführen von Arduino und compilieren einer *.ino-Datei

1.1 HardwareSerial.cpp error: attempt to use poisened „SIG_USART1_RECV“

Fehlerhafte avr-gcc-Version.

vi /Pfadangabe/zu/arduino-0023/hardware/arbotix/cores/arbotix/wiring.h