This is an old revision of the document!


Formica (de)

english version

Name:
Formica
Beschreibung:
Ein kleiner Schwarm kleiner Schwarmroboter
Bilder:
bilder: formica.jpg
Source:
https://github.com/muccc/formica_rev1_muc
Lizenz:
--
Beteiligt:
bsx, lilafisch, nordlicht
Termine:
Weitermachen
Statu:
(re)aktiviert, testen vorhandener formica
Kategorie:
Hardware, Roboter
Verwandtes:
--

Die Formica Roboter wurden auf dem 25c3 vorgestellt (Scalable Swarm Robotics, auf Google Video). Zum Bau der Roboter werden neben Platinen nur häufig verwendete Bauteile benötigt, sie sind preiswert und gut nachzubauen.

  • Anleitung Hardware kurz - Bestückungspläne etc.
  • Anleitung Hardware lang - genaue bebilderte Anleitung
  • smd löten - einige Links
  • (Braindump zum Firmware flashen)
  • erste Fahrten mit den neuen Motoren: gefangen, Laborerkundung
  • Liste der Formica in der Kapsel
  • Schwarmroboter
  • Kommunikation, Programmierung über IR (auch gegenseitiges updaten)
  • Weitere Ausstattung: Reflektivitätssensor, Status LED, IR Sensoren auch zur hell/dunkel Messung
  • Eigenständiges Laden über Beinchen/Fühler
  • Antrieb durch Handyvibrationsmotoren (durchaus schnell…)
  • mit einer Akkuladung ca. 30min aktiv
  • ca. 30*30*20mm groß
  • 30€/Stück

Ausführliche Dokumentation (mit Bildern) findet sich auf warrantyvoid und in einem eigenen wiki.

Interessanter Seminarvortrag über Braitenberg-Fahrzeuge von Mario Kupnik, Christian Ebenbauer und Harald Rössl an der TU Graz: http://www.igi.tugraz.at/STIB/WS98/gruppe3/welcome.html

Erstmal einige der Roboter und eine Ladestation nachbauen. Dabei an der Ladestation schon erste Verbesserungen vornehmen (Abprallen von Robotern an den Ladeplatten verhindern).
Schwarmexperimente - Zusammenkommen, Auseinanderfahren, “Krankheiten” die mit bestimmten Wahrscheinlichkeiten verbreitet werden, Gruppenreaktion auf einen Reiz, verschiedene Programme die Roboter gegenseitig auslösen können, Formationen, Interaktion mit anderen Geräten (moodlamps, asuro, …), nachvollziehen anderer Schwarmexperimente, finden von “Futterplätzen”, wie viele “Leittiere” braucht ein schwarm?, mit welchen Parametern wird aus den einzelnen Robotern ein Schwarm?, …

  • andere Motoren funktionieren deutlich besser! → Neubestellung
  • 30 Roboter sind beim 25c3 beim erfabereich rumgefahren. Oder besser gehinkt (Räder…)
  • bessere Möglichkeit zum flashen: statt kompliziertem Aufbau zum einspannen der Roboter: Stiftleiste mit Fädeldraht mit den 4 zum flashen benötigten Testpoints verbinden, mit Heisskleber auf den msp430
  • Ladecontroller abgebrannt! Besser nicht Vcharge und GND vertauschen…
  • Motoren laufen, LED blinkt
  • Kits können bei mir abgeholt werden
  • Alle Teile sind da!!
  • Empfehlung: Vor dem Löten eines Formica Roboter wird dringend angeraten eine moodlamp o.ä. gelötet zu haben, einige Widerstände sind knifflig
  • Einzelne Roboter debuggen (Programmierung geht nicht, RG-LED tut nicht was sie soll)
  • Rädermaterial, verschiedene Radien testen (Radiergummi, Moosgummi, …)
  • Ladestation
  • derzeit auch bei warrantyvoid/xgoat nur Programmierung über den ez430 (evtl. geht auch bald der goodfet?), eine weitere Möglichkeit zB per IR wäre schön 😛
  • mehr Programme wagen!!

Da Formica auf dem TI MSP430 Mikrocontroller basiert, stehen eine Reihe sehr kostengünstiger Entwicklungstools zur Verfügung. Diese können sowohl zur Programmierung des Formica als auch zum Sept-by-step Debuggen genutzt werden.

–> http://www.ti.com/ez430

Das ez430 Entwicklungstool kommt in Form eines USB Stick daher. Im Inneren des Kunststoffgehäuses befindet sich eine zweiteilige Leiterplatte. Der größere Teil ist ein USB Debugadapter. Über eine Stiftleiste ist ein kleines Daughterboard mit einem MSP430 angeschlossen, das über die TI eigene SpyByWire Schnittstelle programmiert und debuggt werden kann. Lässt man die Controllerplatine weg, kann man über die Schnittstelle direkt die Formica programmieren und debuggen. Ein passendes Anschlusskabel hierfür ist schnell gebaut.

In Debian Wheezy gibt es endlich eine MSP430 Toolchain direkt aus dem Repository. Du solltest hierfür folgende Pakete installieren:

  • binutils-msp430
  • gcc-msp430
  • gdb-msp430
  • msp430-libc
  • msp430mcu
  • mspdebug
sudo apt-get install binutils-msp430 gcc-msp430 gdb-msp430 msp430-libc msp430mcu mspdebug 

Während der Entwicklung wirst Du hauptsächlich gerade installierten Tools direkt benutzen.

Tool Beschreibung
mspdebug Zur Verbindung mit dem Debugger. Hierüber wir die eigenliche Debugging Verbindung hergestellt und die Programmierung durchgeführt.
msp430-gdb GNU Debugger für MSP430. Zum step-by-step Debuggen um Sourcecode

Damit es losgehen kann, brauchst Du als erstes den Sourcecode der Formimca Firmware.

cd /pfad/zu/meinem/projekt
git clone https://github.com/muccc/formica_rev1_muc.git

Wenn die Toolchain wie oben beschrieben installiert ist, solltest Du die Firmware compilieren können. Als Resultat erhältst Du ein File mit dem Namen formica.elf.

make

Als nächstes wird die Firmware auf die Formica programmiert. Dafür benötigt man eigentlich nur mspdebug. Damit wir danach gleich mit dem Debuggen loslegen können, werden wir aber gleich msp430-gdb mitstarten. Dar wird uns ermöglichen komfortabel Breakpoints zu setzen, Schritt für Schritt durch das Programm zu steppen und den Inhalt von Variablen anzuzeigen und zu beobachten.

Ist die Formica über das ez430 Tool angeschlossen, kann man mit mspdebug eine Verbindung herstellen. Auch mit mspdebug kann man Peorgramme debuggen, jedoch nur auf Assamblerebene. Um den viel komfortableren gdb Debugger nutzen zu können, kann man über mspdebug einen Server starten, mit dem man sich von msp430-gdb aus verbinden kann.

mspdebug uif
(mspdebug) gdb
Bound to port 2000. Now waiting for connection...

Fürs Debugging starten wir in einem zweiten Temrinalfenster nun msp430-gdb.

msp430-gdb

(gdb) target remote localhost:2000 
Remote debugging using localhost:2000
0x0000c000 in ?? ()  

Als nächstes soll die vorher Kompilierte Firmware aus den Controller der Formica geflasht werden. Das machst Du am besten auch über gdb. Genau genommen machst Du es über mspdebug. Das lässt sich aber direkt aus gdb fernsteuern. Alle Anweisungen denen der Befehlt monitor oder kurz mon vorangestellt wird werden direkt an mspdebug übergeben.
(gdb) mon prog formica.elf

Erasing...                                                            
Programming...                                                         
Writing 3022 bytes to c000 [section: .text]...                        
Writing   64 bytes to cbce [section: .rodata]...                      
Writing    4 bytes to cc0e [section: .data]...                        
Writing   32 bytes to ffe0 [section: .vectors]...                     
Done, 3122 bytes written   s from /home/daniel/Entwicklung/msp430/formica_daniel/formica.elf...done.

Damit man vernünftig mit Source Code Unterstützung Debuggen kann, müssen nach jedem Flashen die Debugsymbole aus dem .elf File neu geladen werden. Darüber kann gdb Funktions- und Variablennamen den richtigen Speicheradressen zuordnen.

(gdb) symbol-file formica.elf 
Reading symbol

Fertig ist die Debugumgebung.

Hier noch die wichtigsten gdb Befehle:

Befehl Funktion
mon $Befehle Alle nachfolgenden Befehle werden an mspdebug übergeben
symbol-file $filename Lädt Debug Symbole
break $Name Setzt Beakpoint auf Variable oder Funktion mit $Namen oder auf Source Code Zeile (z.B. main.c:75)
info break Zeigt alle gesetzten Breakpoints an.
cont Programm läuft weiter (bis zum nächsten Breakpoint)
next Single Step over
step Single Step into
print $Name gibt Variableninhalt aus
list zeigt Source Code im im aktuellen Bereich an
  • Ersetzung der Ursprünglichen Ladekontakte durch Klemmen
  • Einfügen einer Messmöglichkeit der Akkuspannung
  • Verlängerung der Platine für Akku, Klemmen
nick Anzahl bezahlt erhalten
lilafisch (x) viele
schneider 2 (x)
kiu 1 (x) 1
andi 2 (x)
iggy 2
mazzoo 2 (x) 2
bsx 3 (x)
phpat 2
argv 3 (x) 1
flo 1 (x) 1
luja 1
cmks 1 (x)
jchome 1 (x)
sepi 1 x 1
r 2 (x) 2
sonstige 1 1 1
mo2000 2

Überweisungen an:

  • Kontonr. 100 105 605 8
  • BLZ 701 500 00
  • Empfänger: Sophia Schillai
  • Verwendungszweck: Nick in der Bestelliste
  • formica/start.1351282259.txt.gz
  • Last modified: 2021/04/18 12:32
  • (external edit)