Ich glaub es ist genau das, nachdem ich gefragt hatte. Ich baue das später mal ein.
Danke!
Ich glaub es ist genau das, nachdem ich gefragt hatte. Ich baue das später mal ein.
Danke!
Wie sage ich es in Python ? (Einsteigerfragen)? Schau mal ob du hier fündig wirst!
Hallo,
habe hier wohl einen Anfängerfehler. Auf einem RPi B3 mit MotioneyeOS habe ich folgendes Skript laufen:
#! /usr/bin/python
import time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)
time.sleep(2)
GPIO.output(18, GPIO.LOW)
Demnach könnte eine LED auf Pin 18 eingeschaltet und nach 2 sec. ausgeschaltet werden. Soweit funktioniert das auch.
Verwende ich einen Zero, geht nichts. Was muss ich für den Zero ändern?
Vielen Dank!
(statt einer LED könnten bei Betreten der Wohnung durch die Kamera-Erkennung auch div. Funksteckdosen
eingeschaltet werden)
Für den Zero musst du am Script nichts ändern. Wenn’s nicht geht: welches OS? Gleich konfiguriert? Hardware Fehler?
Ich ergänze mal: Selbe Rechte? Beide ausführbar? Selber Befehl zum starten?
//Edit: Und erstmal willkommen im Forum!
Hallo Linus,
Danke! für die schnelle Antwort.
Auf beiden RPi's läuft MotioneyeOS ohne weiteres Betriebssystem. Über den Browser erfolgt der Zugriff auf die Parameter und über Putty habe ich das Script eingestellt. Beide Systeme sind identisch. Allerdings gibt es für den RPi B3 und für den Zero 2 unterschiedliche OS von Motioneye.
Hardwarefehler wäre bitter. Die 3,3 V und 5 V Ausgänge sind aber ansprechbar.
Hallo Hyle,
Danke für den Willkommensgruß.
Selbe Rechte, beide ausführbar? Soweit ich das begreife, ja. In MotioneyeOS kann über die grafische Oberfläche ein eigenes Script ausgeführt werden. Dazu ist ein Eintrag in
"Run an command" erforderlich. In meinem Fall
/data/LED.py
Wird eine Bewegung detektiert startet das Skript, zumindest auf dem RPi B3.
Wird eine Bewegung detektiert startet das Skript, zumindest auf dem RPi B3.
Log Dich doch mal per ssh ein und probiere, das Skript manuell zu starten, evt. gibt’s ja eine Fehlermeldung.
Grüße,STF
Bei der Gelegenheit kannst Du uns gleich noch die Ausgabe von ls -l /data/LED.py zeigen.
Wird gemacht. Brauche noch eine kleine Nachhilfe:
manuell starten heißt in Putty das Script aufrufen und welchen Befehl muss ich dann starten?
Melde mich morgen Abend wieder, muss noch etwas für morgen vorbereiten. Danke schon mal !!
Hallo hyle, hallo STF,
Vielen Dank für die Hilfe, ihr habt mich in die richtige Richtung gelenkt. Es fehlten die Zugriffsrechte, warum auch immer.
Manuell gestartet erhielt ich folgende Mitteilung:
./LED.py
-sh: ./LED.py: Permission denied
und
mit ls -l erhielt ich folgenden Eintrag:
Ls –l /data/LED.py
-rw------- 1 root root 180 Jan 1 00:06 /data/LED.py
mit:
chmod + x
habe ich dann Zugriffsrechte erhalten. Super, meine Funksteckdose kann ich nun per Bewegung schalten.
Eine Frage hätte ich noch; wenn ich im Verzeichnis /data/ ein Script schreiben möchte, öffne ich das Verzeichnis
mit sudo nano oder nur mit nano. Lag hier mein Fehler?.....bin halt noch Anfänger.
Daran siehst Du dass der Benutzer root Schreib-und Leserechte hat. Somit musst Du sudo benutzen da Du als User pi die Schreibrechte nicht hast.
Lag hier mein Fehler?
Meines Erachtens nicht. Ausführbar musst Du die Dateien trotzdem machen.
OK, bin ich ein Stück weiter -DANKE!
Hallo, ich habe folgende Herausforderung:
Wie bekomme ich den Wert eines 1-Wire Temperatursensors in eine Variable?
Folgendes habe ich versucht. Das folgende Script verwende ich um den Temperaturwert anzuzeigen:
Das gibt mir die Temperatur in 1/1000 Grad an.
Diesen Wert möchte ich jetzt gern in einer Variable haben. Also habe ich das Script erweitert:
poem = open("/sys/bus/w1/devices/28-000008879b36/w1_slave").read()
temperatur = print(poem[69:74])
print(temperatur)
Da bekomme ich aber in Zeile 2 die Temperatur und in Zeile 3 ein "None"
Zitat
Wie bekomme ich die Ausgabe von "print(poem[69:74])" in die Variable "temperatur"?
Danke
Guten Abend werte Community,
ich habe seit einigen Monaten mehrere Raspberry Pis für spielereien, Kodi, Google Home, Smarthome usw.
Heute kam aber mein Sensor Set an und ich habe mich das erste mal mit GPIO Gedöns befasst.
Habe grundlegende Python Kenntnisse und war überrascht wie simpel man hier teilweise Sachen basteln kann.
Mein Projekt ab Morgen wird ein Roboter sein der sich selbst balanciert und eine Art mobiler Google Home wird der in der Wohung rum fährt.
Ich glaube das ist gar nicht so schwer, nur kann ich im Moment nur simple Abläufe in Python programmieren, ich scheitere aber daran mehrere Abläufe gleichzeitig laufenzulassen.
z.B. Der Roboter muss fahren, gleichzeitig 4 Ultraschallsensoren auslesen und dementsprechend lenken usw.
Wie stelle ich das an?
Sobald ich time.sleep aktiv habe steht das Script ja komplett und es wir auch nichts anderes mehr gemacht.
Ich hoffe ihr versteht was ich meine
Grüße aus BW
Hallo,
KSCNeon: grundsätzlich stellt sich die Frage, ob das _wirklich_ parallel laufen muss (dann brauchst du Multiprocessing) oder ob "quasi-parallel" (= sequentiell, aber jeder kommt oft genug daran = kooperatives Multitasking) nicht reicht.
Bei "echter" Parallelität hast du ja immer noch das Problem, dass du irgendwie irgendwo die "gleichzeitig" eintreffenden Sensordaten verarbeiten musst, und das passiert in der Regel sequentiell. Abgesehen davon kann die Kommunikation zwischen verschiedenen Prozessen eine nicht-triviale Angelegenheit in der Umsetzung sein.
Da das ganz Thema aber ein wenig komplexer ist empfiehlt es sich, dafür einen eigenen Thread zu Starten.
Gruß, noisefloor
Hallo Leute,
ich habe aktuell einen kleinen Roboter gebaut.
Dieser besteht aus 2 Motoren, fährt rechts und links indem eben ein Motor anhält und der andere weiter dreht.
Das ganze habe ich noch mit 2 Infrarot Sensoren kombiniert die ein Signal geben sobald Sie ein Objekt erkennen.
Ein Sensor rechts, der andere links.
Das ganze tut an sich, aber ich bin mir sicher mein Code ist absolut schlecht
Wenn ein Sensor ein Objekt erkennt biegt der Roboter zwar nach rechts oder links ab,
jedoch stottert das ziemlich. Habe statt der Motoren mal LEDs angeschlossen und tatsächlich flackern diese.
Das heißt das Stottern wird definitiv von meinem Code verursacht weshalb ich hier gerne einfach nochmal paar Tipps hätte.
Hatte Python mal in der Schule aber nur simples Mathe, listen und Strings. Also paar Grundlagen sind schon da aber das reicht nicht.
Zudem hätte ich gerne gewusst wie ich 2 Signale auswerten kann. Damit meine ich, wenn Sensor 1 und Sensor 2 ein Signal geben soll das und das passieren. Ich kann in "GPIO.input()" ja nur einen Input definieren.
GPIOzero werde ich mir gleich mal anschauen
import RPi.GPIO as GPIO
import time
from l293d import L293D #Script für die Motorsteuerung mit einem L293D Transistor
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(4, GPIO.IN) # Infrarot Sensor rinks
GPIO.setup(5, GPIO.IN) # Infrarot Sensor rechts
l = L293D(17,27,23,24)
while True:
if GPIO.input(5)==True:
l.forward() #Beide Motoren drehen sich
if GPIO.input(4)==True:
l.forward()
if GPIO.input(5)==False:
l.forwardLeft() #Motor links bleibt stehen, rechts dreht sich weiter
if GPIO.input(4)==False:
l.forwardRight() #Motor rechts bleibt stehen, links dreht sich weiter
Alles anzeigen
Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!