Hallo zusammen, Ich stehe bei meinem kleinen Projekt vor einigen Startschwierigkeiten und bräuchte eure Hilfe. Zunächst mal zu meinem Aufbau: Habe einen Raspberry Pi 3 Model B+ und einen Arduino Mega 2560. Diese sollen mittels serieller Schnittstelle (USB) kommunizieren. Habe auf dem Arduino bereits ein lauffähiges Vorprojekt das ich jetzt gerne erweitern möchte. In dem Vorprojekt wurde ein Schrittmotor mittels Touchscreen am Arduino angesteuert (Touchscreen Shield). Die Geschwindigkeit, Beschleunigung, Weg usw. kann so eingestellt werden und der Motor wird dann entweder direkt getippt oder ein Automatikbetrieb gestartet, bei dem ein definierter Weg gefahren wird. Jetzt zu meiner Erweiterung. Und zwar würde ich gerne wie oben beschrieben einen Raspberry Pi mittels USB-Schnittstelle mit dem Arduino verbinden. Auf dem Pi soll dann ein lokaler Webserver laufen (Flask), über diesen sollen dann die Funktionen, die vorher am Arduino Touchscreen möglich waren, nun über einen Webbrowser von einem beliebigen Endgerät ausgeführt werden können. Der Arduino-Sketch vom Vorprojekt sollte dann quasi nur erweitert werden. Im Moment werden die einzelnen Funktionen über eine IF Abfrage ausgelöst. IF "Touchbefehl" im Bereich des "Tippen Vorwärts" Buttons" DANN wird entsprechende Funktion ausgeführt (Tippen Vorwärts) Jetzt müsste simpel gesagt, dass ganze mit eine ODER Abfrage erweitert werden, sodass ein Befehl vom Pi (sprich Webserver) oder vom Arduino Touchscreen die jeweiligen Funktionen auslösen können: IF "Touchbefehl-Tippen_Vorwärts" OR "Pi_Webserver_Befehl_Tippen_Vorwärts" DANN führe Funktion Motor Vorwärts aus. Was ich bisher schon erledigt habe: Raspberry Pi und Arduino können erfolgreich miteinander kommunizieren (Verbindungstest) Habe auch mal einen ganz einfachen Webserver (Wird nur eine Textzeile "Hello_World" am Webbrowser ausgegeben) mittels Flask auf dem Pi laufen lassen. Nun bin ich mit der Python Programmierung nicht sehr fit und komme nur sehr schleppend voran. Mir fehlt einfach eine gewisse Basis mit der ich dann weiter vorankommen könnte. Mir ist nicht ganz klar, was ich bei der Kommunikation zwischen Pi und Arduino als "Auslöser" der Arduino-Befehle nutzen kann. Kann ich am Pi quasi eine boolsche Variable definieren, deren Zustand dann der Arduino auslesen kann? Vielen Dank schon mal im Voraus. Mit freundlichen Grüßen Fabian
Das könnte für dich mal ein erster Ansatz sein: https://maker.pro/raspberry-pi/tutorial/how-to-connect-and-interface-raspberry-pi-with-arduino
Schon mal vielen Dank für die Antwort. Der Link hat schon mal etwas helfen können, sodass ich nun ein Stück weiter gekommen bin. Um das Projekt so einfach wie möglich zu halten, habe ich mir jetzt erstmal ein Zwischenziel gesetzt, dass wie folgt aussieht. Arduino lässt sich vom Pi über serielle Schnittstelle (USB) steuern. Dazu hab ich den Code dafür angehängt mit dem Dateinamen Test_1. Kurz gesagt habe ich mit dem Raspberry Pi die interne LED am Arduino ein- bzw. ausschalten können, indem ich auf dem seriellen Bus eine integer Zahl entweder auf '1' oder auf '0' gesetzt habe. Das hat der Arduino wiederum mit serial.read eingelesen und entsprechend die LED auf HIGH oder LOW geschalten. soweit so gut... Nun habe ich mittels Flask einen Webserver auf dem Pi zum Laufen gebracht. Auf der aufgerufenen Webseite habe ich dann einen Link mit dem Namen 'Arduino Lampe einschalten' erstellt, mit diesem sich die LED genauso wie im obigen Fall ein- bzw. ausschalten lassen soll (Arduino-Sketch bleibt gleich). siehe Codedatei Test_2 Nur hier funktioniert etwas nicht. Sobald ich auf den Link klicke, leuchtet die LED am Arduino ganz kurz auf und dann kommt eine Fehlermeldung vom Pi und der Webserver beendet sich. Die Fehlerbeschreibung habe ich auch mal angehängt. Ich hoffe ihr könnt mir weiterhelfen. Mit freundlichen Grüßen Fabian
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.