Beiträge von petit_miner

    Hallo Zusammen,

    ich möchte gerne abhängig vom Zustand eines GPIOs eine Aufnahme per FFMPEG starten und dann beim High werden des GPIOs wieder stoppen. Soweit so gut, aber es scheitert leider an der If Abfrage vom Zustand des GPIOs. Es gibt da anscheinend mehrere Möglichkeiten für eine funktionierende Syntax aber ich blicke das jetzt nach mehreren Versuchen leider nicht mehr. Aktuell sieht der Code wie folgt aus:

    Momentan bekomme ich dies als Fehlermeldung:

    sh: 0: unknown operand

    sh: /sys/class/gpio/gpio68/value: unknown operand

    while

    Hätte hier irgendwer noch eine Idee?

    Guten Abend zusammen,
    Ich versuche momentan einen MCP23017 Port Expander zum laufen zu bringen, das Setzen und Lesen der Register funktioniert tadellos.
    Ich lese das Register GPIOA aus und erhalte einen Hex Wert zurück. Dieser Hex Wert beschreibt welcher Port High oder Low ist. Das Register GPIOA ist für die GPIO Bank A zuständig und besitzt 8 Ports.
    Wenn alle Pins High sind erhalte ich 0xFF zurück, bzw: 255.
    Ich zerbreche mir momentan den Kopf darüber wie ich die einzelnen Ports separieren kann, so dass ich jeden Port einzeln verarbeiten kann, z.B: in If Schleifen.
    Hat jemand eine Idee? :)

    Hallo,
    Ich habe hier einen Lichee PI Zero vor mir liegen und wollte jetzt Code der den MCP23017 (Port Expander) über I2C ansteuert vom Raspi auf den Lichee PI porten.
    Ich verwende Python mit der smbus Lib.
    Der I2C Bus ist als Gerätedatei (/dev/I2C0) auf dem Lichee PI vorhanden, also müsste nach meinem Verständnis nichts am Code verändert werden, oder? :s
    Ich habe mir die Freiheit genommen hier im Forum zu fragen, da das Lichee PI Forum noch sehr leer ist.
    Vielen Dank im voraus :)

    Ich habe jetzt im video-stream-screen.sh den absoluten Pfad zur video-stream.sh eingetragen.
    Trotzdem funktioniert es nicht.
    Es kann aber nicht sein das der Screen unter einem anderen Benutzer angelegt wird?
    Wie finde ich die absoluten Pfade zu Raspivid und ähnlichem heraus?
    Ich hatte nicht in Erinnerung das der Autostart so kompliziert ist :s

    Ich habe den Eintrag in Crontab nach dir angepasst:
    Und siehe da doch irgendwelche Fehlermeldungen in dem .txt Dokument :lol:
    Das ganze lässt sich auch auf der Konsole reproduzieren.

    Code
    Video stream started
    To view the stream console output use the following command:
    video-stream-screen.sh: Zeile 5: Dateiende beim Suchen nach `"' erreicht.
    video-stream-screen.sh: Zeile 7: Syntax Fehler: Unerwartetes Dateiende.


    Manchmal ist es einfach nur eine Kleinigkeit, ich könnte mich jetzt über mich selber ärgern :lol:
    Jetzt gibt es zwar keine Fehlermeldung mehr aber trotzdem startet das Script nicht.

    Hallo,
    ich habe momentan Probleme ein Script in den Crontab erfolgreich einzutragen.
    Es will einfach beim Hochfahren nicht starten!
    crontab -e :

    Code
    @reboot sleep 60 && bash /home/pi/video-stream-screen.sh > /home/pi/test.txt 2>&1

    /home/pi/video-stream-screen.sh :

    Bash
    #!/bin/bash
    screen -dmS VideoStream ./video-stream.sh
    echo "Video stream started"
    echo "To view the stream console output use the following command:"
    echo "screen -r VideoStream
    exit 0

    /home/pi/video-stream.sh :

    Bash
    #!/bin/bash
    
    
    raspivid -t 0 -w 960 -h 540 -fps 25 -b 500000 -o - | ffmpeg -i - -vcodec copy -an -f flv -metadata streamName=myStream tcp://0.0.0.0:6666

    Beide Dateien sind mit chmod +x ausführbar gemacht worden.

    sudo grep CRON /var/log/syslog :

    Code
    May 30 12:48:18 camerapie cron[399]: (CRON) INFO (pidfile fd = 3)
    May 30 12:48:18 camerapie cron[399]: (CRON) INFO (Running @reboot jobs)
    May 30 12:48:18 camerapie CRON[506]: (pi) CMD (sleep 60 && bash /home/pi/video-stream-screen.sh > /home/pi/test.txt 2>&1)

    Wenn ich bash /home/pi/video-stream-screen.sh in der Konsole eingebe funktioniert alles so wie es soll.
    In der .txt Datei findet sich nach dem Start auch leider nichts.
    Ich könnte mir vorstellen das irgendwas mit der Berechtigung nicht stimmt, aber momentan weis ich nicht weiter.
    Vielen Dank im voraus :)

    bigbangnow
    Bist du dir sicher das du die gefährliche Operation an dem China CAN Bus Board korrekt durchgeführst hast?
    Dazu kommt noch das laut Datenblatt des MCP2515 dieser eine maximale Eingangspannung an einem PIN von VCC + 1v besitzt.
    Also in diesem Fall 5V vom CAN Transceiver auf den Eingangsport des MCP2515. Das sind 0,7V zuviel.
    Die maximale Eingangsspannung an einem Pin des MCP2515 bei 3,3V beträgt also 4,3V.
    Das das überhaupt bei dem funktioniert? :s :-/
    Zitiert aus dem Datenblatt des MCP2515:

    Zitat


    Absolute Maximum Ratings:
    All inputs and outputs with respection to GND....................-0.6V to VCC +1.0V


    Alles was darüber ist sorgt auf kurz oder lang für einen Defekt des Chips.
    Könnte dies Jemand der Ahnung hat nochmals bestätigen?

    Zitat

    #24 SPI0.CE0 --- CS <= GPIO12 / Fehler


    Welchen Pin verwendest du jetzt für CE0?
    Der Interrupt Pin und der SPI CE0 Pin müssen getrennt sein.
    Ein aktuelles Raspbian wird natürlich für das Tutorial benötigt :lol:;)
    Funktioniert es jetzt bei dir?

    nhafez
    Meine Glaskugel ist leider defekt :(
    Um dir helfen zu können bräuchte ich ein paar Infos.
    z.B: Verwendetes CAN Board? Kernel Version? was hast du in die /boot/config.txt eingetragen?
    usw.
    Automatisch zusammengefügt:
    Nochmal auf die DT Overlays zurück zu kommen....
    Es muss

    Code
    dtparam=spi=on
    dtoverlay=mcp2515-can0,oscillator=16000000,interrupt=25


    Heißen!
    Die auf Github können sich nicht entscheiden, mal so mal so. :lol:
    Die Anleitung habe ich bereits angepasst. ;)
    Der Fehler ist bei mir auch reproduzierbar.
    Ich schaue mal morgen ob bei mir das Versenden und Empfangen von Nachrichten funktioniert.


    Und USB2UART gibts in China unter einem Euro.


    Klar weiß ich das :lol:;)
    Bei meinem Projekt ist es aber von Nöten alles ordentlich auf eine Platine zu packen.

    Nun aber zu den Testergebnissen:
    Im Kernel befindet sich kein "Realtime" Patch.
    Zudem läuft auf dem PI keine Anwendung, also IDLE'et er die ganze Zeit.
    Senden funktioniert überraschend gut, selbst bei der maximalen Geschwindigkeit von 19200.
    Hierbei ist jede 6-7 Nachricht "Müll"

    Empfangen ist wesentlich schlechter, selbst bei der minimalsten Geschwindigkeit von 1200
    ist jede 4-5 Nachricht "Müll".

    Im Fazit ist es ein tolles Feature, vor allem weil man im laufenden Betrieb die TX und RX Leitungen auf andere GPIO Pins verlegen kann,
    aber der Verlust von gesendeten Daten ist natürlich der größte Nachteil.

    Für mein Projekt werde ich wohl die SPI Schnittstelle des PIs verwenden müssen.

    Ein schönes Wochenende noch :D

    Steht eigentlich irgendwo welche Dateien man ins Forum hochladen darf und welche nicht?
    Ich kann nämlich die .ko Datei nicht hochladen, um sie hochladen zu können muss ich sie erstmal in ein ZIP Archiv packen.

    Hallo zusammen,
    aufgrund eines laufenden Projektes bin ich über die Möglichkeit gestolpert 2 beliebige GPIO Pins als UART Schnittstelle zu benutzen, wie bei einem AVR.
    Wie das ganze funktioniert möchte ich euch kurz vorstellen:
    Der Quellcode findet sich hier.
    Ganz kurz zusammengefasst fügt man ein Kernel Modul in den laufenden Kernel ein und übergibt gleichzeitig die Parameter, wie z.B: die zu verwendeten GPIO Pins und die Baudrate.
    Nach dem Laden des Moduls findet man die Schnittstelle unter /sys/class/softuart/softuart/
    Die Soft UART Schnittstelle verhält sich genauso wie eine gewöhnliche Schnittstelle.
    Da sie aber "emuliert" ist bringt sie einige Nachteile mit sich, diese wären z.B:
    Dass der Buffer auf 256 bytes limitiert ist,
    Da Linux kein Realtime OS ist können Daten "verschwinden".
    Die Geschwindigkeit ist auf maximal 19200 und auf minimal 1200 bytes limitiert.
    In den nächsten Tagen werde ich mal testen wie zuverlässig diese Soft UART Schnittstelle trotz der vielen Nachteile funktioniert.
    Für Interessierte findet sich im Anhang das Kernel Modul.
    softuart-4.4.24+.zip

    Laut Datenblatt hat es doch Ethernet aber wahrscheinlich benötigt man noch eine Art "Transceiver".
    Schnittstellen des ESP32 laut Datenblatt:

    Kommt die versendete Nachricht an den anderen Busteilnehmern an?
    Wenn nicht dann wird es wahrscheinlich daran liegen das der TJA1050 nur ab 4.75V läuft.
    Wie ich das im letzten Thread verstanden habe betreibst du die CAN Bus Platine jetzt mit 3.3V.
    Also musst du die CAN Bus Platine doch mit 5V betreiben und diesmal aber auch einen Level Shifter benutzen um den PI vor den 5V auf dem SPI Bus zu schützen.