Hallo ihr Lieben,
ich bin neu hier und wollte euch einerseits mal mein Projekt vorstellen, andererseits auch um ein paar Tips fragen.
Während Covid habe ich mir ein kleines Kettenfahrwerk geholt (20x25cm, Motoren waren mit dabei) und ich wollte das Ganze zum fahren bewegen. Der Plan dazu sieht eine App als Bluetoothfernsteuerung vor.
Kurzerhand später ein Raspberry Pi 3b+ geholt und angefangen alles zu verdrahten und aufzusetzen.
Auf Wunsch kann ich auch gerne mal ein Video hochladen zum ansehen
Aktueller Stand ist, dass ich die Ketten per PC ansteuern kann und vorgegebene Bewegungen abfahren kann. App ist soweit auch bereit.
Meine Fragen:
1. Wie schaffe ich es, einen Loop nach folgendem Schema zu erstellen:
"Wenn die App aktiv ist, überwache die Bluetoothsignale dauerhaft, sobald ein Signal geschaltet wird, führe die dazugehörige Aktion (siehe Bedingungen unten) durch. Wenn die App geschlossen wird (dafür hat sie einen eigenen Button den ich per Bluetooth als Signal geben kann), beende den Loop."
2. Hat jemand Ahnung wie ich eine Bluetoothverbindung zwischen dem Raspberry Pi und einer App (erstellt mit MIT App Inventor) herstelle? Habe zwar ein paar Hinweise gefunden, aber nichts wirklich passendes speziell für dieses Projekt. Und das was passend war, da war leider einer der Downloadlinks nicht mehr aktiv
Grundkonzept sieht wie folgt aus (das ist nur eine Notiz für mich, kein fertiges und Python gerechtes Programm)
Bluetooth Eingänge
bluetooth_vor =
bluetooth_vor_links =
bluetooth_links_drehen =
bluetooth_rück_links =
bluetooth_rück =
bluetooth_rück_rechts =
bluetooth_rechts_drehen =
bluetooth_vor_rechts =
Welcher Zustand soll entstehen, wenn ein Programmabschnitt ein Ergebnis hat?
vor = LEFT_9V_PIN.High, RIGHT_9V_PIN.High, LEFT_FORWARD.High, RIGHT_FORWARD.high
vor_links = LEFT_6V_PIN.High, RIGHT_9V_PIN.High, LEFT_FORWARD.High, RIGHT_FORWARD.high
drehen_links = LEFT_6V_PIN.High, RIGHT_6V_PIN.High, LEFT_BACKWARD.High, RIGHT_FORWARD.high
rück_links = LEFT_6V_PIN.High, RIGHT_9V_PIN.High, LEFT_BACKWARD.High, RIGHT_BACKWARD.high
rück = LEFT_9V_PIN.High, RIGHT_9V_PIN.High, LEFT_BACKWARD.High, RIGHT_BACKWARD.high
rück_rechts = LEFT_9V_PIN.High, RIGHT_6V_PIN.High, LEFT_BACKWARD.High, RIGHT_BACKWARD.high
rechts = LEFT_6V_PIN.High, RIGHT_6V_PIN.High, LEFT_FORWARD.High, RIGHT_BACKWARD.high
vor_rechts = LEFT_9V_PIN.High, RIGHT_6V_PIN.High, LEFT_FORWARD.High, RIGHT_FORWARD.high
Bedingungen (diese sollen so lang überwacht werden, solang die App geöffnet ist) Jede Bedingung ist durch die and not´s gegeneinander verriegelt. Heisst wenn eine Aktion an ist, kann die Andere nicht stattfinden zum Schutz der Komponenten
#vor
if bluetooth_vor and not bluetooth_vor_links and not bluetooth_links_drehen and not bluetooth_rück_links and not bluetooth_rück and not bluetooth_rück_rechts and not bluetooth_rechts_drehen and not bluetooth_vor_rechts
vor
else: GPIO.cleanup()
#vor_links
if not bluetooth_vor and bluetooth_vor_links and not bluetooth_links_drehen and not bluetooth_rück_links and not bluetooth_rück and not bluetooth_rück_rechts and not bluetooth_rechts_drehen and not bluetooth_vor_rechts
vor_links
else: GPIO.cleanup()
#drehen_links
if not bluetooth_vor and not bluetooth_vor_links and bluetooth_links_drehen and not bluetooth_rück_links and not bluetooth_rück and not bluetooth_rück_rechts and not bluetooth_rechts_drehen and not bluetooth_vor_rechts
drehen_links
else: GPIO.cleanup()
#rück_links
if not bluetooth_vor and not bluetooth_vor_links and not bluetooth_links_drehen and bluetooth_rück_links and not bluetooth_rück and not bluetooth_rück_rechts and not bluetooth_rechts_drehen and not bluetooth_vor_rechts
rück_links
else: GPIO.cleanup()
#rück
if not bluetooth_vor and not bluetooth_vor_links and not bluetooth_links_drehen and not bluetooth_rück_links and bluetooth_rück and not bluetooth_rück_rechts and not bluetooth_rechts_drehen and not bluetooth_vor_rechts
rück
else: GPIO.cleanup()
#rechts_rück
if not bluetooth_vor and not bluetooth_vor_links and not bluetooth_links_drehen and not bluetooth_rück_links and not bluetooth_rück and bluetooth_rück_rechts and not bluetooth_rechts_drehen and not bluetooth_vor_rechts
rechts_rück
else: GPIO.cleanup()
#rechts_drehen
if not bluetooth_vor and not bluetooth_vor_links and not bluetooth_links_drehen and not bluetooth_rück_links and not bluetooth_rück and not bluetooth_rück_rechts and bluetooth_rechts_drehen and not bluetooth_vor_rechts
rechts_drehen
else: GPIO.cleanup()
#rechts_vor
if not bluetooth_vor and not bluetooth_vor_links and not bluetooth_links_drehen and not bluetooth_rück_links and not bluetooth_rück and not bluetooth_rück_rechts and not bluetooth_rechts_drehen and bluetooth_vor_rechts
rechts_vor
else: GPIO.cleanup()
Freue mich schon auf regen Austausch