Arduino mit Eclipse, zweiter Versuch

Nachdem der erste Versuch ziemlich zäh lief, hat mich Michael freundlicherweise auf ein neues Plugin hingewiesen. Und das funktioniert tatsächlich ziemlich gut (allerdings sind einige Kleinigkeiten zu beachten, wenn ihr auf dem Mac arbeitet):

  1. Man benötigt Eclipse in der C/C++-Version und die Arduino IDE (ich habe die 1.0 verwendet).
  2. Das Plugin gibt es unter “http://www.baeyens.it/eclipse/update site”. Wichtig: Das Leerzeichen darf nicht durch %20 ersetzt werden (macht Eclipse evt. automatisch)! Etwas unglücklich.
  3. In den Plugin-Einstellungen soll man den Pfad zur Arduino-IDE angeben. Auf dem Mac ist Folgendes einzutragen (Quelle): /Applications/Arduino.app/Contents/Resources/Java
  4. Der AVRDude-Pfad (siehe): /Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr/etc/avrdude.conf
  5. Unter Arduino/Paths sind folgende Pfade einstellen, siehe Screenshot und arduino.cc. (genaues Hinschauen lohnt sich – mich hat das doppelte “avr” der “AVR Header Files” 5 Minuten Fluchen gekostet^^)
  6. Beim Anlegen eines neuen Projektes muss man die Board-Version (zB “Uno”) auswählen und den Port angeben. Der Port ist das, was in der Arduino IDE unter Tools -> Serial Port ausgewählt wird – bei mir “/dev/tty.usbmodemfa131”
  7. Für diejenigen unter euch, die (wie ich) nicht vertraut mit der C++-Version sind: Kompiliert wird mit dem “Hammer” (dauert bei mir recht lange); auf’s Board geschoben wird das Ganze mit dem “AVR”-Button.

Wermutstropfen bisher:

  1. Den Eclipse-Debugger kann man auch hier nicht benutzen. Aber schon die Shortcuts, Templates usw sind der Hit!
  2. Importe sind manuell hinzuzufügen. So braucht man für ein simples “Serial.begin(9600);” schon ein “extern HardwareSerial Serial;” usw. 🙁

Danke an Michael für den Tipp, garretto für das tolle Tutorial (nachdem ich es entdeckt habe, war dieser Eintrag quasi überflüssig), und Jantje für das Plugin!

Gestensteuerung ist 2011

Arduino liest Deine Gedanken, und schickt sie an Siri:

und dann geht das ganze per Native Extension über’s Arduino an AIR. Nimm das, HTML5.

Projekthomepage; vor kurzem haben sie einen Investor gefunden^^ via

OK, evt. muss man noch eine App dazwischenschalten, für die Kommunikation von Siri zum Arduino:

via

Arduino mit Eclipse als IDE

Das ist leider einfacher gesagt als getan, siehe unten 🙁 Eclipse muss man natürlich nur einmal einrichten. Da das deutlich umfangreichere aber das Einrichten des Projektes ist, würde ich empfehlen, ein einmal lauffähig eingerichtetes Projekt als Template zu nutzen.

Anmerkung #1: Was momentan noch nicht funktioniert, ist die Ausgabe nach Serial 🙁 Ich habe bisher nur ein sehr rudiemntäres “Blink”-Projekt kompilieren können… offenbar fehlen da irgendwelche Includes, wobei die HardwareSerial eigentlich da ist. Ich bleibe dran.

Anmerkung #2: Im Folgenden werden OS X Lion und ein Uno verwendet

Einrichten von Eclipse:

  1. Eclipse IDE for C/C++ Developers installieren
  2. Das AVR-Plugin installieren
  3. Das AVR “Crosspack” installieren
  4. Sicherheitshalber die Pfade unter Preferences -> AVR -> Paths checken:
    AVR-GCC: /usr/local/CrossPack-AVR20100115/bin
    GNU make: /usr/local/CrossPack-AVR20100115/bin
    AVR Header Files: /usr/local/CrossPack-AVR20100115/avr-3/include
    AVRDude: AVR-GCC: /usr/local/CrossPack-AVR20100115/bin
  5. Dein(e) Arduino(s) unter Preferences -> AVR -> AVRDude einrichten. Anmerkung: Der default Port ist der, den man auch in der Arduino-IDE nutzt – und den man unter /dev/ findet (ls -la /dev/)
    Configuration Name: <irgendwas>
    Programmer Hardware: Arduino
    Override default port: /dev/tty.usbmodemfa131
    Override default baudrate: 115200

Einrichten eines ersten Projekts (dieses kann man hinterher kopieren, um diese Einstellungen nicht immer wieder vornehmen zu müssen):

  1. Neues “C” Projekt anlegen:
    Project name: <irgendwas>
    Project type: AVR Cross Target Application -> Empty
    Finish
  2. In den Project properties -> AVR -> AVR Dude -> Programmer -> “Programmer configuration” die Konfiguration von oben, Punkt 5, auswählen
  3. Das Arduino anschliessen
  4. In den Project properties -> AVR ->AVR Dude -> “Target Hardware” entweder “Load from MCU” versuchen, oder für den Uno “ATmega328P” auswählen. Anmerkung: Auch, wenn arduino.cc als Microcontroller für den Uno den ATmega328 angibt, so ist es in Wirklichkeit doch der ATmega328P
  5. Die Arduino IDE öffnen, ein neues Projekt anlegen, und kompilieren (“Verify” genügt) (es geht darum, einmal die Core Library anzulegen)
  6. “Irgendwo” unter /private/var/ die Datei core.a finden – bei mir war es /private/var/folders/8f/0zf3pf294rvbrybmwh7mq1bm0000gn/T/build1871947640038466426.tmp/core.a 🙂 – und in den Projektordner kopieren
  7. Diese “neue” core.a in libcore.a umbenennen
  8. Unter den Project properties -> C/C++ Build -> Settings -> Tool Settings -> “Additional Tools in Toolchain”: “Generate HEX for Flash Memory”, “Print Size” und “AVRDude” müssen angewählt sein; “Generate HEX file for EEPROM” und “Generate Extended Listing” müssen abgewählt sein
  9. Unter … -> AVR Compiler -> Command von “avr-gcc” in “avr-g++” ändern
  10. Unter … -> AVR Compiler -> Directories den Pfad /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino (oder analog) eintragen. Anmerkung: Rechtsklick auf die Arduino-App -> Paketinhalt anzeigen hilft 😉
  11. Unter … -> AVR Compiler -> Debugging -> “Generate Debugging info” “No debugging info” auswählen
  12. Unter … -> AVR Compiler -> Optimization -> “Optimization Level” “Size Optimization (-Os)” auswählen
  13. Unter … -> AVR Assembler -> Debugging -> “Generate Debugging Info” “No debugging info” auswählen
  14. Unter … -> AVR C Linker -> Libraries eine neue Library mit dem Namen “core” anlegen. Einen neuen Library Path mit “${workspace_loc:/${ProjName}}” anlegen – damit sollte er jetzt im aktuellen Projekt nach der corelib aus Schritt 6 und 7 suchen
  15. Eine neue Datei mit Namen main.c anlegen
  16. coden 😉

Kompilieren und flashen tut man das Projekt dann mit dem “Hammer”-Button in der Menüleiste – es muss dabei im Dropdown “Release” ausgewählt sein.

Mit Hilfe von, und, und, und.