Java für Arduino und andere MCs mit HaikuVM

Mit HaikuVM ist es möglich Microcontroller und somit den Arduino in Java zu programmieren. Auf dem MC läuft aber keine VM. Stattdessen wird der Java-Bytecode in C-Code übersetzt und dann mit einem Crosscompiller auf den MC angepasst.

Auf der Projektseite gibt es ein ausführliches Windows und Linux Tutorial, doch wie sieht es mit MAC OS X aus?

Im folgendem werde ich erläutern, wie man HaikuVM auf dem Mac installiert, einrichtet und schließlich ein einfaches Beispiel ausführt.

Vorbereitung

Um HaikuVM installieren zu können braucht man ein AVR Toolchain wie CrossPack und dos2unix. Beide Programme kann man sich per MacPorts auf den Mac ziehen. Alternativ kann man sie auch als .pkg runter laden: dos2unix CrossPack

Achtung: HaikuVM läuft zur Zeit (28.02.13) nicht mit der neusten Version von CrossPack. Version 20120217 hat bei mir einwandfrei funktioniert.

Installation

Nachdem man die Voraussetzungen erfüllt hat kann man die neuste Version von HaikuVM runter laden und in den Home-Ordner entpacken. Dann macht man die Programme ausführbar:

chmod +x haikuVM/bin/*

und behebt noch Ungereimtheiten:

dos2unix haikuVM/bin/*

Nun muss man den Port rausfinden, an dem der Arduino angeschlossen ist. Man kann dies, indem man die Arduino IDE öffnet und dann den Serial Monitor startet. Dann steht oben der Port zum Arduino.

Arduino IDE - Serial Monitor

Arduino IDE – Serial Monitor

Nun macht man diesen noch ausführbar:

sudo chmod a+rw /dev/tty.usbmodem1d171

Als letztes ändert man noch den Port in <haikuvm_home>\config\HaikuVM.properties :

HaikuVM Properties

HaikuVM Properties

Ich hab bei mir noch die Baudrate verändert, da ich einen Arduino UNO SMD R2 habe und ich sonst beim Upload immer einen ‚Programmer is not Responding‘ Error bekommen würde.

Das erste Programm

Um ein erstes Beispiel auszuführen gibt man nun einfach diese Zeile ein:

/Users/bob/haikuVM/bin/haiku -v –Config arduino -o BlinkWithThread.hex /Users/bob/haikuVM/examples/src/main/java/arduino/tutorial/BlinkWithThread

Achtung: bob muss zu dem eigenen Benutzernamen geändert werden.

Wenn alles funktioniert, sollte nun an Pin 13 eine LED aufblinken.

Ein Gedanke zu „Java für Arduino und andere MCs mit HaikuVM

  1. Hallo, ich bin versucht, HaikuVM um auf meinem Mac arbeiten, aber ich habe Probleme – Ich folgte Ihrem Tutorial, aber ich habe diesen Fehler: /Users/saf/haikuVM/bin/../bin/haikuupload BlinkSimple.hex
    Interner Fehler. Das folgende Verzeichnis ist nicht vorhanden:
    „/Users/saf/haikuVM/bin/../bin/../lib/haikuvm“1
    #
    #
    #
    ################################################## ###########
    # Datei hochladen
    ################################################## ###########
    Makefile: 118: Warnung: Überschreiben Befehle für Ziel `BlinkSimple.hex ‚
    Makefile: 104: Warnung: ignorieren alten Befehle für Ziel `BlinkSimple.hex ‚
    avrdude -p m328p -c stk500v1 -P /dev/tty.usbmodem1431 -b 57600 -F _Uflash: w: BlinkSimple.hex: a
    avrdude: stk500_recv (): Programmierer reagiert nicht

    avrdude getan. Danke.

    make: *** [Upload] Fehler 1
    ################################################## ###########
    # Fehler beim Hochladen von Dateien
    ################################################## ###########
    java.lang.Exception: Script „/Users/saf/haikuVM/bin/../bin/haikuupload ‚beendet mit Fehlercode = 2
    bei haikuvm.pc.tools.HaikuVM.executeBlocking (HaikuVM.java:553)
    bei haikuvm.pc.tools.HaikuVM.call (HaikuVM.java:218)
    bei haikuvm.pc.tools.HaikuVM.haikuupload0 (HaikuVM.java:198)
    bei haikuvm.pc.tools.HaikuVM.haiku0 (HaikuVM.java:143)
    bei haikuvm.pc.tools.HaikuVM.main (HaikuVM.java:97)

    wissen Sie, warum dies sein könnte?

    Sorry, wenn dies keinen Sinn (Ich habe Google Translate – Englisch Sprache)

    Danke Shon

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s