Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
formica:start [2012/10/26 21:14] – [Überblick] nordlichtformica:start [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Formica (de)===== 
-[[https://wiki.muc.ccc.de/en:formica|english version]] 
  
----- dataentry Projekt ---- 
-Projekt_url       :  
-Name              : Formica 
-Beschreibung_wiki : Ein kleiner Schwarm kleiner Schwarmroboter 
-Links_urls        :  
-Bilder_imgs       : https://brezn.muc.ccc.de/~lilafisch/formica/formica.jpg 
-Source_url        : https://github.com/muccc/formica_rev1_muc 
-Lizenz            : -- 
-Beteiligt         : bsx, lilafisch, nordlicht 
-Termine_page      : information:termine 
-Status            : (re)aktiviert, testen vorhandener formica 
-Kategorie_tags    : Hardware, Roboter 
-Verwandtes_tags   : -- 
----- 
- 
-{{:formica:formica.jpg?150}} 
- 
-Die Formica Roboter wurden auf dem 25c3 vorgestellt (Scalable Swarm Robotics, [[http://video.google.com/videoplay?docid=-3973323702036529336&hl=en#| auf Google Video]]). Zum Bau der Roboter werden neben Platinen nur häufig verwendete Bauteile benötigt, sie sind preiswert und gut nachzubauen. 
- 
-==== Überblick ==== 
- 
-  * 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 [[http://warrantyvoidifremoved.com/formica| warrantyvoid]] 
-und in einem eigenen [[http://formica.srobo.org/wiki/Main_Page|wiki]]. Hierher stammt auch die die Originalfirmware. Die in unserem Github Repository zu findende Firmware entwickelt sich ständig weiter und sieht heute wahrscheinlich schon ganz anders aus. Es geht ja auch nicht darum Roboter einfach fertig zu programmieren, sondern darum sie selber weiterzuentwickeln und dabei ganz viel zu lernen. 
-==== Ziel ==== 
-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?, ... 
- 
- 
-==== Aktuelles ==== 
- 
-  * 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 
- 
-==== Tasks ==== 
-  * 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 :P 
-  * mehr Programme wagen!! 
- 
-===== Entwicklung ===== 
-Da Formica auf dem [[http://www.ti.com/lsds/ti/microcontroller/16-bit_msp430/overview.page|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. 
- 
-==== Programmer / Debugger ==== 
- 
---> [[https://focus.ti.com/docs/toolsw/folders/print/ez430-f2013.html|eZ430-f2013]] 
- 
-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. 
- 
-{{:formica:ez430-f2013.jpg|}} 
- 
-{{:formica:debugger_klein.jpg|}} 
-==== Entwicklungs SW Toolchain ==== 
-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 | 
- 
- 
-==== First Steps ==== 
- 
-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  
-   
-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                                             
-   
-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  
-   
-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 | 
- 
- 
- 
-===== Hardware ==== 
- 
-[[https://github.com/muccc/formica_rev1_muc/blob/master/hardware/formica_nice.brd|PCB]] 
- 
-[[https://github.com/muccc/formica_rev1_muc/blob/master/hardware/formica_nice.sch|Schaltplan]] 
- 
-  * Anleitung Hardware [[hardware|kurz]] - Bestückungspläne etc. 
-  * Anleitung Hardware [[hardware_lang|lang]] - genaue bebilderte Anleitung 
-  * smd löten - einige [[:smd_loeten|Links]] 
-  * erste Fahrten mit den neuen Motoren: [[https://brezn.muc.ccc.de/~lilafisch/formica/formifahrt3.ogv|gefangen]], [[https://brezn.muc.ccc.de/~lilafisch/formica/formifahrt2.ogv|Laborerkundung]] 
-  * [[zensus|Liste]] der Formica in der Kapsel 
- 
-==== Änderung an der ursprüngl. PCB ==== 
-  * Ersetzung der Ursprünglichen Ladekontakte durch Klemmen 
-  * Einfügen einer Messmöglichkeit der Akkuspannung 
-  * Verlängerung der Platine für Akku, Klemmen 
- 
- 
-==== Interessierte ==== 
-^ 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 |          | 
-| r            2 |  (x)  |      | 
-| sonstige    |  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.1351286061.txt.gz
  • Last modified: 2021/04/18 12:32
  • (external edit)