Posts by Cruiser

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!

    Vielen Dank für den Link, jetzt kann ich das nachvollziehen. Heißt im Klartext dann quasi, dass ich meinen Pilzkopf für den Sequenzwechsel zwischen GPIO 17 (Pin 11) und GND (PIN 9) hänge und meinen "Ausschalter" zwischen GPIO 23 (Pin 16) und GND (PIN 14) platziere, richtig ? Und das ganze dann komplett ohne externe Wiederstände, da ja kein ne Spannung angelegt wird. Stimmt die Theorie so?

    Ja, das stimmt so. Vergleiche auch dazu noch unter https://www.makeuseof.com/tag/…ton-raspberry-pi-project/ den Punkt "Intermission: Pull Up/Pull Down Resistors"

    Eine kleine andere Frage noch: gibt es die Möglichkeit die GPIOs über ein kleines anderes Script o.ä. mit der Tastatur zu simulieren? Hintergrund ist, dass ich leider noch keine physischen Taster habe, um es zu testen.



    Danke schon Mal du bist echt ne riesen Hilfe :)

    Simulieren habe ich noch nicht gemacht. Lies aber mal dieses Suche GPIO Simulator Modul

    Du kannst aber auch, wie hier Direkte Tastaturabfrage mit Python beschrieben anstatt deiner GPIO Abfrage erst einmal eine Tastaturabfrage machen.

    Nein. Es handelt sich bei exitpin um einen Pull-Up Input, d.h. bei keinem Tastendruck ist der GPIO 1, bei Druck 0. Lies dir mal https://www.elektronik-kompend…/raspberry-pi/2006051.htm durch, da wird das super erklärt.


    Wenn ich das Programm dann in die rc.local packe, müsste es bei Hochfahren des RaPis ja automatisch starten. Könnte ich hier parallel neben diesem Code eine "shutdown.py" in der rc.local einbinden? Sodass der Pi quasi mit der exitpin erst das Programm beendet und dann den Pi runterfährt? Danke schon Mal.

    Du kannst im python Quellcode direkt mit os.system("sudo halt") deinen Pi herunterfahren.

    Sehr gut, dann sind wir auf dem richtigen Weg, denke ich.

    Ich bin sehr gespannt auf die weiteren Schritte und deine Resultate. Finde das Projekt nämlich sehr interessant. Wenn ich mehr Zeit hätte, würde ich auch mal den Code selber umsetzen, da mich gerade die omxplayer Geschichte sehr reizt.

    Da ich die aber leider nicht habe, beschränke ich mich mal auf den Support von dir ;)

    In meinem Beispiel IST doch aber die Voraussetzung, das alles in einem Video gespeichert ist. Die 4 Arrays definieren ja nur die Start und Endzeiten der jeweiligen Videoschnipsel im Gesamtvideo. Ich hoffe, das ist dir bewusst.

    Vielen Dank für deine Mühe, das Hilft mir bestimmt weiter. Was ich nun noch nicht ganz verstehe: woher weiß er denn in dem Script, dass er bei auslösen des Bewegungsmelders nur auf Video 1 und 2 zugreifen darf und nicht auf 0 (startsequenz) ? Bzw. Woher kommt die Info, dass Maxvideo die Startpunkte 1 und 2 definiert und nicht zum Beispiel 0 und 1? Warum greift er hier nicht per Zufall auch auf 0 zu? Deswegen hat mich Maxvideo verwirrt, da es ja eigentlich tatsächlich 3 Sequenzen sind und ich nicht weiß, wie er die Trennung zwischen "startvideo" und "Aktionsvideo" definiert.


    Übrigens will ich wie vorher beschrieben ja jetzt die Komplimente gleich mit dem Countdown verknüpfen (zusammen eine Videosequenz), also ist ein Dritter Zeitarray hinfällig. Ich benötige nur 2. Wie genau definiere ich denn zwei unterschiedliche Zeitarrays, um sicherzugehen, das kein falsches Video gestartet wird ? (Sprich der Button wird gedrückt und die Startsequenzen sollen bei der Zufallsauswahl ausgeschlossen werden. Gleiches gilt dann für die Startsequenz, wenn kein Button bedrückt ist. Hier soll natürlich dann nicht zwischendrin per Zufall ausversehen ein Countdown laufen)


    Danke für alles schon Mal ;)

    Das ist doch einfach zu beantworten:

    Mit dem Code


    Code
     # waehlen wir per Zufall ein Gruselvideo aus
                    selectvideo = randint(1, maxvideos)
                    # und springen zum entsprechenden Startzeitpunkt
                    player.set_position(video_start[selectvideo])

    wird doch zufällig von 1 bis maxvideo (was ja als 2 definiert ist) ein Video ausgewählt. Dieses wird dann mit der set_position() angesprungen und abgespielt.

    Irgendwo weiter im Code steht dann ja der Punkt, wo er auf den Index 0, also sein Startvideo springt.


    Und wie du 2 Arrays definierst? Ich muss jetzt doch erst nochmal die Frage stellen, wie weit du denn programmieren kannst? Hast du da schon Erfahrung?

    Liest sich jetzt (Tschuldigung für die vermeintliche Anschuldigung) nicht nach viel an?

    2 Arrays (Also eigentlich 4) für deine Videos, bitte. Theoretisch könnte man das auch wirklich nur auf 2 Arrays reduzieren, aber das ginge jetzt sicher wieder zu weit, für unsere Verhältnisse 8o

    Code
    bildschirmschoner_start = [ 0,20,72]
    bildschirmschoner_end   = [20,72,85]
    cam_start = [ 100,120,172]
    cam_end   = [120,172,185]

    Bemerke aber, wir reden hier von 3 Videos in EINER Videodatei.

    Korrekt, es sind zusammen 3 Videos. Das was aber maxvideos deklariert, sind nur die Gruselvideosequenzen. Und das sind nur 2. Maxvideos ist ja die Variable, aus der der Code per Zufall eine auswählt. Zum erste Video wird ja fest am Ende jeder Gruselsequenz wieder zurückgesprungen. Das ist dann der Codeteil

    Code
    # wenn angewaehlte Videosequenz vorbei ist
            if player.position() >= video_end[selectvideo]:
                # wieder mit erster Videosequenz beginnen
                selectvideo = 0
                player.set_position(video_start[selectvideo])

    Ich kann dir jetzt nicht einfach so nen funktionierenden Pythoncode aus dem Ärmel schütteln, aber tendenziell bräuchtest du ja 3 Zeitenarrays für deine Bildschirmschoner, Countedowns und für deine Komplimente. Dann wählst du per randint für alle drei Arrays ein Zufallsvideoindex aus.

    Du startest dann mit player.set_position das Bildschrimschoner-Video. Überwachst jetzt mit player.position() ob dieses zuende gespielt wurde (Nachher an dieser Stelle dann noch dabei, ob der Button gedrückt wurde)

    Falls das >Video zuende ist, wird es wieder mit player.set_position() an den Anfang gesetzt und es geht von vorne los.

    Falls der Button gedrückjt wurde, geht es weiter.

    Du startest dann mit player.set_position das Countdown-Video. Überwachst jetzt mit player.position() ob dieses zuende gespielt wurde.

    Jetzt würde der Teil mit Foto machen folgen, den lässt du erstmal aus.

    Danach startest du jetzt mit player.set_position() das zweite Zufallsvideo, welches du wieder mit player.position() überwachst.

    Wenn du hier am Ende bist, geht es wieder ganz vorne los.


    Wenn du dann soweit bist und das in Code gegossen hast, kannst du dich um die Buttonansteuerung und die gphoto-Geschichte kümmern.

    Hoffe das hilft dir erstmal weiter.

    Also die 2 Raspys sind unnötig. Das sollte auch alles mit einem gehen. Und reden wir von unterschiedlichen Codes? Ich sehe nämlich alle Tipps von schlizbäda in dem Code umgesetzt.

    Ich kann dir mal versuchen deine roten Markierungen zu erklären


    # 17 als Sensoreingang

    sensorpin = 17 Hier könnte man statt den Bewegungsmelder einen Button oder Presenter integrieren, richtig? Wäre auch zum Beispiel ein Sprachkommando mit mehreren verschiedenen Stichworten (Cheese, Auslösen, Fertig etc.) technisch möglich? Wäre das arg Kompliziert?


    Der Sensor PIN ist ein Input mit aktiviertem PullUp Widerstand. Da kannst du also auch einen Button dran hängen.

    GPIO.setup(sensorpin, GPIO.IN, pull_up_down=GPIO.PUD_UP)

    Wie willst du jetzt an einen GPIO-Input ein Sprachkommando hängen? Möglich ist natürlich auch eine Sprachsteuerung deines Skriptes, aber mach es doch nicht unnötig kompliziert.


    exitpin=23 Welche Funktion hat der Exitpin? Das erschließt sich mir leider noch nicht und Google spuckt auch nichts aus.

    Was soll Google auch zu einer Python Variable ausspucken? Die Variabel wird weiter unten um Skript abgefragt und beendet das Programm (wie der Name vermuten lässt) An dem PIN kann dann wieder ein beliebiger Input angeschlossen werden.


    maxvideos = 2 Es sind doch 3 Videos? Warum steht der Wert hier auf 2?

    Wo siehst du 3 Videos? Ich lese und sehe immer nur 2.


    selectvideo = 0 # erstes Video ist Video ohne Bewegung Hier soll bereits eine zufällige Startsequenz ausgewählt werden. Die einzelnen Startsequenzen befinden sich zum Beispiel im Bereich 0:00 - 04:00 Min und umfassen jeweils 20 Sekunden. Wie genau legt man hier die Zufallsauswahl einer einzelnen entsprechenden Sequenz fest?

    Dann musst du hier eben schon zufällig deine Startsequenz definieren.


    Zu den weiteren Punkte im Code empfehle ich dir, doch erst einmal klein anzufangen. Bau dir diese große Videodatei und schreibe dafür dann den Quellcode mit dem du das testest. Erst einmal ohne gphoto Einbindung und sogar ohne Button. Nur das Abspielen von zufälligen Schnipseln aus deiner Datei. Wenn du da dann Probleme hast, kannst du doch mit einer genauen Beschreibung deines eigenen Codes hier noch einmal nachfragen.

    Wieso denn jetzt auf einmal 2 Raspberrys? Und einfacher wird das ganze dadurch ja nun mal auch nicht wirklich. Du willst ja jeden Raspberry eine Ausgabe auf dem Monitor machen lassen. Wie willst du das hinbekommen?

    Der nötige Code wurde dir doch hier schon geliefert. Wo besteht jetzt dein weitere Problem? Der Code sah aus meiner Sicht sehr vielversprechend aus für deine Anwendung.

    Da ist ein Pi doch reichlich überdimensioniert.

    Wenn das Lichtsignal in räumlicher Nähe zum PC ist, könntest du auch ein Signal über eine serielle Schnittstelle oder über USB ausgeben und damit was schalten. Z. B. mit einem USB-Relaismodul. Dazu gibts Treiber, DLLs, Testprogramme usw. Wie man es genau ansteuert, kann ich dir nicht sagen aber das müsste schon irgendwie machbar sein.


    Alternativ eine Nachricht übers WLAN an einen ESP8266, der als Webserver arbeitet. Ist preiswerter, stabiler, braucht weniger Energie und reicht völlig für so ne kleine Aufgabe.

    Als ESP8266 kann man dann sogar schon ne fertige Lösung nehmen: Nen Sonoff S20 mit Tasmota flashen. Den kann man direkt mit einen HTTP Aufruf an und ausschalten.

    ddbkva den HAT habe ich selbst erstellt, um die GPIOs aber trotz miniAMP raus zu führen kannst Du z.B. auch so etwas selbst machen (finde es etwas zu teuer als das ich es kaufen würde, ich habe das auf einer Streifenplattine z.B. selbst gelötet), oder so etwas oder so etwas kaufen. Planst Du eh keinen miniAMP dann einfach auf Rasterplatine die paar Widerstände auflöten.

    Cool, gerade wollte ich hier fragen, ob jemand mir seine bauweise schildern kann, um "nach" einem MiniAmp noch GPIO Pins benutzen zu können, da postest du sogar fertige Lösungen. Super.

    Mich würde aber gerne noch deine Bauform interessieren. Wenn ein Raspberry Stiftleisten hätte, könnte man jetzt eine Leiste wie diese (https://shop.pimoroni.de/produ…e-header-2x6-pin-straight In größer, natürlich) auf eine Lochrasterplatine setzen. Hast du jetzt noch eine weitere Leiste, wie die oben verlinkte, auf die Platine gesetzt und jeden der benötigten Pins für den MiniAmp auf diese Leiste gezogen, um dann den MiniAmp auf eben diese zu packen?

    Ich bin dabei mir eine jukebox mit RFID Sensor, wie hier im Forum beschrieben, nachzubauen. Als Verstärker habe ich mir einen PAM8403 mit Lautstärkeregler bestellt gehabt, um diesen einmal auszuprobieren. Das Abspielen von Musik funktioniert auch sehr gut und ich bin mit der Qualität zufrieden - es soll ja "nur" eine Jukebox für die Kleinen werden. Leider bekomme ich aber bei Stille ein komisches periodisches leises Fiepen über die Lautsprecher zu hören, wie im Anhang zu hören ist (Musste ich zippen, da ich keine MP3 hochladen durfte). Wenn ich meine portable Soundbox an den Raspberry anschliesse, kann ich dieses Fiepen nicht hören.
    Da ich momentan noch in der Testphase bin, sind die Kabel alle noch mit Steckkabel und sehr rudimentär verbunden, siehe dazu Bilder im Anhang. Einen Aufbau meiner Schaltung habe ich auch noch angehangen.
    Meine Fragen nun:
    Kennt jemand dieses Fiepproblem des PAM8403 und konnte er es erfolgreich beheben?
    Ist das einfach die Macke des PAM8403 und ist es somit nicht behebbar?
    Liegt es vielleicht an meiner schlechten Verkabelung und würde bei einer korrekten finalen Verkabelung/Verlötung nicht mehr auftreten?
    Bekomme ich mit einem MAX98306 die gleichen Probleme (wäre meine nächste Wahl), oder kann dieser dieses Fiepen auffangen?
    Hat jemand andere Alternative im Preisbereich bis 13 Euro, mit denen es diese Probleme nicht gibt?


    Das der Audio Ausgang des Raspberrys nicht der beste ist, ist mir bewusst. Aber da meine angeschlossene Soundbox ordentlichen Sound aus diesem Ausgang "rasugeholt" hat, reicht mir die Qualität, auch des Geldes wegen.


    Habe ich auch so gemacht. Die Cover auf 5*5 cm verkleinert und dann ausgedruckt und auf die jeweilige RFID Karte geklebt.


    VG KAMPI


    Super, danke für die Rückmeldung. Hast du Klebeetiketten wie diese https://www.amazon.de/dp/B004UTZ0V6/ref=asc_df_B004UTZ0V639922858?smid=A3JWKAKR8XB7XF&tag=wwwcchermade-21&linkCode=df0&creative=22502&creativeASIN=B004UTZ0V6&childASIN=B004UTZ0V6&site-redirect=de (Affiliate-Link) benutzt (in 50x50 in deinem Fall), oder dir selbst was "gebastelt"?


    - Die Scheibe oben wird via RFID nearfield Chips betrieben. Jeder Chip ist einem Tondokument zugeordnet. Idel wäre den Dateinamen auf dem Chip zu speichern.
    - Hier suche ich ein RFID-Gerät und wer hat, bitte einen Link mit erschwinglichen NFC`s die auch funktionieren. Schlüssselanhänger falles, und ob man die Karten zerschnibbeln sollte ??


    Ich bin den umgekehrten Weg gegangen: Die Kartennummer wird (in meinem Fall) einem Album zugeordnet. Der Raspi (3, also WLAN) hat eine Weboberfläche spendiert bekommen, über die ich komfortabel für das Alben die jeweilige Nummer auf der RFID Karte eingeben kann.


    Ich benutze folgende Komponenten
    https://de.aliexpress.com/item…=2114.13010608.0.0.fjxeis
    https://de.aliexpress.com/item…=2114.13010608.0.0.fjxeis


    Ich sehe aber mit RFID ein anderes Problem. Der Reader sendet seine Daten nur, wenn die Karte "wechselt". Wenn also der RFID Reader die Karte 1 von der Drehscheibe liest, spielt er die Datei ab. Nun wechselt der "User" die Drehscheibe auf Karte 2, während Karte 1 noch gespielt wird. Deiner Anforderung nach, soll Karte 1 noch weiter gespielt werden. Wenn nun Karte 1 zuende gespielt hat, bekommst du nicht mit, das die Drehscheibe bei Karte 2 steht. Du könntest dir das nur softwaretechnisch merken. Aber, falls es eine Stellung gibt, wo "nichts" gespielt werden soll, bekommst du sowas ebenfalls nicht mit. Ausser du siehst hierfür ebenfalls eine "leere" RFID Karte vor.
    Hoffe das war einigermassen verständlich.

    bei dem was ihr jetzt wißt, würdemich interessieren, sollte ich gleich eine Distribution nehmen die für die Auasgabe von Medien spezialisiert ist? Oder reicht eine Standart-Version?
    Bisher habe ich nur mit verschiedenen Versionen der Standart-Version gespielt.


    Ich würde mal sagen, eine Standard Version reicht. Es geht hier ja nur um das abspielen ein paar Dateien. Dafür braucht man keine Musik Distribution mit Stream-, Bluetooth-,Spotify-,Google-Music-, usw. Features.



    Vandalismussichere Taster ... bei der C-Apotheke kostet so ein beleuchteter Schatlter nen 10er etwa :no_sad: .... wie war das noch mal mit dem RFID? :denker:


    Es soll doch Vandalismussicher sein? Dünne RFID Chipkarten sind das ja mal so gar nicht und RFID Chips sind klein und verschwinden schnell. Also ich halte die Taster-Lösung hier für die richtige. Ob es unbedingt vandalismussichere Taster sein müssen, mag ich nicht beurteilen. Aber, wenn man Flippertaster nehmen würde: So nen Flipper bedienen auch viele Leute und hauen drauf rum :)


    Ich habe jetzt immer noch nicht verstanden, was daran so 'schlimm' ist dich auf die Suchfunktion hier im Forum zu verweisen ohne das du gleich so abgehst.


    Ich denke es ging nicht um das aufmerksam machen auf die Suchfunktion, sondern über die Sätze



    P.S. Kommt es nur mir so vor, das in der letzten Zeit die Fragen wie 'Ich will da was machen, habe aber keine Ahnung wie - macht mir das mal...' überhand nehmen?


    und



    Dieses Forum bietet zwar Unterstützung auf professionellem Niveau und der Service ist kostenlos. Wir entwickeln aber nicht kostenlos irgendwelche Projekte anderer.


    Und ich kann jedenfalls nicht nachvollziehen, wo ihr da ein "kostenlos entwickeln" und "macht mir das mal..." in dem Beitrag von Grimbart heraus gelesen habt. Aber manchmal liest man ja auch nur das heraus, was man lesen will.


    Zum Thema:
    Das Button gehen, wurde ja schon gesagt. Es gibt folgende Threads (die mir jetzt einfallen), die "deine" Museums Juke Box gebaut haben, sogar noch mit "mehr" drin.
    http://www.forum-raspberrypi.d…4kids-jukebox-fuer-kinder
    http://www.forum-raspberrypi.d…yer?highlight=rfid+reader
    Da kannst dich nochmal durchlesen.


    Wenn du dir sicher bist, ob du nun Buttons (z.B. http://www.ebay.de/sch/i.html?…kw=arcade+button&_sacat=0) oder nen Tastenfeld oder nen Tochscreen nimmst, wäre als nächstes die Frage, wie du den Ton aus dem Raspberry herausbekommen willst. Auch da gibt es ausreichend Möglichkeiten.

    Ich versuche für einen RDM6300 RFID Reader momentan schon stundenlang eine Verbindung mit meinem Pi3 herzustellen.
    Ein simples pyton Skript, was wie folgt anfängt



    meldet mir aber nach Ausführung aber nur


    Code
    Traceback (most recent call last):
     File "rfid.py", line 19, in <module>
       UART.open()
     File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 271, in open
       raise SerialException("Port is already open.")
    serial.serialutil.SerialException: Port is already open.


    Was ich zum Ändern des UART gemacht habe:


    [font="monospace, Courier"]sudo raspi-config[/font]
    [font="monospace, Courier"][font="monospace, Courier"]Serial auf enabled setzen[/font][/font]


    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]sudo nano /boot/cmdline.txt[/font][/font][/font]
    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]console=serial0,115200 entfernt[/font][/font][/font][/font]


    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]sudo apt-get update
    sudo apt-get upgrade[/font]
    [/font]
    [/font]
    [/font]
    [/font]

    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]sudo apt-get install rpi-update
    [/font]
    [/font]
    [/font]
    [/font]
    [/font]
    [/font]

    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]sudo rpi-update
    sudo reboot[/font]
    [/font]
    [/font]
    [/font]
    [/font]
    [/font]


    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]sudo nano /boot/config.txt[/font][/font][/font][/font][/font][/font][/font]
    [font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"][font="monospace, Courier"]dtoverlay=pi3-miniuart-bt
    enable_uart=1
    force_turbo=1[/font]
    [/font]
    [/font]
    [/font]
    [/font]
    [/font]
    [/font]


    Wer blockiert mir da denn nun aber noch den ttyAMA0 und hindert mich am Auslesen meiner RFID Daten?
    Jemand noch Ideen, was ich vergessen, oder falsch eingestellt habe?


    Ist denn auf einmal keiner mehr da der mir Infos geben kann? :(


    Schreib doch einfach mal, zwischen welchen beiden Produkten du schwankst?
    Wenn es nur CUL oder COC ist, dann sei dir gesagt: Beide können, was du willst - Homematic Geräte empfangen und ansprechen und kurzzeitig in den 433 Bereich springen um dort Befehle abzugeben (Vorsicht, in dieser Zeit ist kein Empfang im 868 Bereich möglich) Bei COC bräcuhtest du für den Raspi eben nur nen neues Gehäuse. CUL kannst du direkt so anklemmen.
    Ausserdem ist das WIKI von FHEM doch schon eine gute Informationsquelle
    https://wiki.fhem.de/wiki/CUL
    https://wiki.fhem.de/wiki/COC
    Wenn du nur Homematic machen wolltest, wäre auch noch
    https://wiki.fhem.de/wiki/HM-LGW-O-TW-W-EU_Funk-LAN_Gateway
    anzusprechen.

    Wenn dieser Stick erst mal auf dem Markt ist, sollte das Performance-Problem der Entschlüsselung ja behoben sein, weil diese auf dem Stick stattfindet. Sehe ich das richtig?
    Mit diesem Stick (Hier mal ein Bericht) sollten es doch dann gehen. Bitte korrigiert mich, wenn ich mich irre :)


    Mit meinem gefährlichem Halbwissen würde ich sagen: Der Stick entschlüsselt doch nur das verschlüsselte h.265 (HEVC) Signal. Quasi einmal h.265 (HEVC) vom Sender gezippt und vom Stick wieder entzippt. Heraus kommt dann ein h.265 (HEVC) Signal, womit man wieder beim alten Problem ist.