Java und Arduino

Meeresgott

Bekanntes Mitglied
Hallo Java Forum,

ich programmiere zurzeit ein System das auf einem Raspberry Pi laufen soll. An diesem habe ich einen Arduino angeschlossen, um Messungen zu machen, die ich mit dem Pi so nicht machen kann. Für die Kommunikation zwischen den beiden benutze ich die RXTX Bibliothek (rxtx.qbang.org). Klappt auch soweit wunderbar. 🙂
Nun möchte ich allerdings via Java den Arduino neuen Code übermitteln also Updaten können. Da der Pi über einen Internetzugang verfügt und mein Java Programm Zugriff auf einen Server hat und sich auch bei diesem Updates für sich selber holt. Muss es ja möglich sein den Code, den das Programm vom Server holt, an den Arduino zu übertragen.
Programmiert wird dieser schließlich auch über die Serielle-Schnittstelle als muss es auch mit Java klappen.

Hat jemand einen Ansatz ? Oder selbst ähnliches probiert ?
vielleicht sogar schon gemacht ?

Danke schon mal für Antworten 🙂
 
@InfectedBytes Der Paspberry Pi kann mit einen GPIOs meines Wissens nach nur Digitale Signale verarbeiten, keine analogen. Daher wirds schwer mit dem Raspberry einen elektrischen Wiederstand oder eine Spannung zu messen.

@Meeresgott Ich denke du bist auf dem richtigen Weg. Ich kann mir gut vorstellen, dass es ein Kommandozeilen-Programm gibt, welches diese Schnittstelle bedient und mit dem man code auf den Arduino laden kann. Da kann es hilfreich sein, mal genauer nachzulesen, was die Arduino IDE so macht, wenn man code hochlädt.
So ein Tool vorausgesetzt ist es dann ein leichtes, vom Raspberry Code auf den Arduino zu schieben. Du müsstest nur ggf. mit den GPIOs vom Raspberry den Reset-Schalter vom Arduino ansprechen.
 
@Tobse genau aus dem Grund benutze ich ein Arduino 🙂
hast du vielleicht eine Ahnung welches Kommandozeilen-Programm ich benutzen kann ?
bin auf AVRDude gestoßen. Kennst du dich damit aus ? Alle Beiträge zu dem Thema sin allerdings meistens von 2010. Und eine .exe konnte ich auch nirgends finden

@InfectedBytes Ich möchte den Arduino als Erweiterung generell nutzen. Mir ist klar das ich einen AD-Wandler benutzen kann. Aber ich habe mich bewusst dafür entschieden es so zu machen. Nur hätte ich nicht gedacht das ich so bald auf ein Probleme Stoße das mich derart aufhält. auf AVRDUDE bin ich auch gekommen aber wo kann ich dieses Downloaden ? Finde nur Seiten die erklären wie man es anwendet.

Als Zwischenergebnis die Arduino IDE kann man via Kommandozeile steuern. Benötigt aber eine GUI. Da ich auf meinem PI keinen X-Server laufen habe um Ressourcen zu sparen fällt dies schon mal weg
 
hast du vielleicht eine Ahnung welches Kommandozeilen-Programm ich benutzen kann ?

Wie gesagt: schau mal, was die Arduino IDE macht. Die lädt ja den Code auch direkt auf den Mikrocontroller. Meine IDEs (NetBeans, IntelliJ, VisualStudio, u.s.w) zeigen bei allem, was sie machen (Kompilieren, Exportieren, Unit-Tests, ...) ein Konsolenfenster an, mitsamt dem Befehl, der das bezweckt:
unnamed.png
 
Die Arduino IDE läßt sich zwar über die Kommandozeile aufrufen. Aber Sie baut leider für Fehlermeldungen im Hintergrund eine GUI auf die dann auf meinem PI eine HeadlessException wirft. Außer ich starte den X-Server aber dies will ich vermeiden.

@InfectedBytes Vielen Dank ich werde jetzt auch in diese Richtung weiter schauen können 🙂
 
Die Arduino IDE läßt sich zwar über die Kommandozeile aufrufen. Aber Sie baut leider für Fehlermeldungen im Hintergrund eine GUI auf die dann auf meinem PI eine HeadlessException wirft. Außer ich starte den X-Server aber dies will ich vermeiden.
Die meisten Programme haben für sowas eine "nogui" option (oder ähnliches)
Google einfach mal nach möglichen argumenten, vielleicht hat die Arduino IDE soetwas auch
 
@InfectedBytes Habe auf der Webseite von Arduino nachgeschaut leider gibt es keine "nongui" Option. 🙁

@Hans_G habe den Arduino-Makefile jetzt nur kurz überflogen aber abreitet dieser nicht zusammen mit der Arduino IDE oder sind sie von einander unabhängig ?

In diesem Tutorial unter dem Punkt "Global variables" wird ein Path zur Arduino IDE verlangt. Wenn das Programm die IDE per Kommandozeile nutzt habe ich wieder das selbe Problem...
 
Also wenn das CLI-Tool eine HeadlessException wirft, ist es in Java geschrieben. Ergo vermute ich, dass man die Quelldateien irgendwo finden kann. Damit könntest du dann die Fehlermeldungen ggf. ins STDOUT leiten - je nachem wie das Teil programmiert ist. Das wird aber sicher kein Spaß... eher den X11 aktivieren :S
 
Ich habe noch keinen Quellcode für die Arduino IDE gefunden :/
Das habe ich mir auch gedacht ob ich nicht einfach den X-Server starten soll bis ich dann auf AVRDude gestoßen bin. Ich denke für diese Frage bin ich jetzt im falschen Forum aber möchte nicht noch wo anders deshalb einen Thread auf machen

Hat einer von euch einen Link zu den möglichen Befehlen von AVRDude ? Ich habe den Arduino Atmega2650 und finde einfach nicht den richtigen Parameter für die -c Property..


@Hans_G auf diese Seite bin ich ebenfalls gestoßen habe aber das Problem das soweit ich das verstanden habe ebenfalls über die IDE geht und dafür benötige ich den von mir ungewünschten X-Server
 
aber das Problem das soweit ich das verstanden habe ebenfalls über die IDE geht und dafür benötige ich den von mir ungewünschten X-Server

Ich kann mich auch irren. Aber da steht doch "python + make based solution (i.e. no Java)". make ist ein CLI-Tool, also no problemo. Und Python läuft auch ohne Desktopumgebung.
Es kann natürlich noch dauern, bis der Rewrite fertig ist, aber das wäre genau das, wonach du suchst.
 
Ich hab es geschaft 🙂 mit AVRDude und dem ProzessBuilder
Ist zwar nicht komplett Java aber das wird auch nicht möglich sein wenn ich einen Micro Controller programmieren möchte.

Ich danke euch Herzlich für eure Geduld! Vielen Dank

@Tobse und bis es fertig ist habe ich jetzt schonmal eine Lösung. Nochmal Danke

Meeresgott
 

Neue Themen


Zurück
Oben