Posts by AliceDeh

    Quote

    Wenn du dir die Beschaltung anschaust, wirst du vielleicht sehen, dass die einzelnen internen Leuchtdioden eine gemeinsame Anode besitzen. Damit wir eine LED zum Leuchten bringen, müssen wir sie mit einem LOW-Pegel, also quasi Masse ansteuern. Ganz zu Anfang bin ich selbst in diese Fall getappt und habe die RGB-LED genau verkehrt herum verkabelt bzw. angesteuert, also gemeinsame Kathode und die Ansteuerung über einen HIGH-Pegel, wie ich das bisher gewohnt war. Das ist das Problem mit den liebgewonnenen Gewohnheiten. Irgendwann erwischt es einen: Man glaubt zu wissen, was Sache ist, und es geht schief. Sehen wir uns zunächst die Schaltung an.


    Der Autor meinte es sollte so funktionieren.


    Was genau muss ich im Code ändern?


    Ich hatte versucht die GPIO's als Eingänge zu setzen, aber dann waren alle anderen Argumente falsch.


    Die Anleitung ist aus einem seriösen Buch. Ich frag mich warum es nicht funktioniert :s



    Das ist der neue Code. Aber klappt noch nicht.

    Guten Tag,


    ich versuche gerade meine RGB LED mit folgendem Skript anzusteuern:



    Meine Schaltung auf dem Board ist folgenden:


    [Blocked Image: http://d15.imgup.net/schaltung_e24d.jpg]


    Es tut sich gar nichts :D Die LED muckt kein bisschen^^


    Der Compiler von Python meckert nicht, aber irgendwo anders muss der Fehler liegen.


    Wer kann mir helfen?


    Gruß


    Du programmierst in C, willst aber, dass der Python-Interpreter das ausführt.


    Lies den Text nochmal sorry mein Fehler Kumpel :)
    [hr]
    PS: Habe mit Geany die .c File kompiliert, aber kann kein fähiges Programm wegen der Fehlermeldung erstellen.


    Ja mist eventuell kann ja ein Moderator verschieben.


    Kannst du dir die Fehler erklären? Weshalb kennt er die Begriffe nicht?


    Meine Quelle ist das Buch "Die elektronische Welt des RP entdecken" und der Code steht da so drinne.


    Anhand der Fehlermeldung erkenne ich, dass er einige Wörter nicht kennt.
    Wie mache ich nun weiter?


    Gruß
    [hr]
    Problem gelöst:


    Ich musst Geany noch die WiringPi Library bekannt machen :D

    Hallo Dudes,


    ich arbeite derzeit an meinem LED-Lauflicht und treffe dabei auf folgende Probleme:


    "Was auf den ersten Blick recht mühsam anmutet, ist die Programmierung der 10 GPIO-Pins als Ausgänge. Du könntest jetzt natürlich hingehen, und für jede einzelne LED eine eigene Variable definieren und sie dann über die pinMode-Funktion entsprechend programmieren, also z.B. wie folgt:"


    Code
    #define LED1 0
    #define LED2 1
    #define LED3 2
    ...
    pinMode(LED1, OUTPUT);
    pinMode(LED2, OUTPUT);
    pinMode(LED3, OUTPUT);
    usw...


    "Das ist eine recht umständliche und aufwendige Vorgehensweise. Deshalb machen wir das über eine for-Schleife, die die einzelnen Werte von 0 bis 9 anläuft und die GPIO-Pins allesamt als Ausgänge programmiert. Auf die gleiche Weise können wir dann auch recht einfach die LEDs ansteuern."



    Wenn ich die Datei mit dem Befehl "cc -o prog led_lauflicht.c" compilieren möchte, dann bekomme ich folgende Fehlermeldung angezeigt:



    Jemand eine Ahnnung was da falsch läuft?


    Gruß

    Danke dir für den Link. Sehr gute Informationen.


    Doch welcher der beiden Ports sind Input und Output? weißt du es?


    cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp={rtsp://:8554/,mux=ts}' :demux=h264


    PS: Wenn ich den Output auf HTTP stellen, kann ich dann über den Web-Browser statts dem VLC Player auf dem iPad den Livestream schauen?

    Grüße,



    Das ist sehr sehr clever und möchte ich deshalb hervorheben, da es anderen sicher von Nutzen sein kann.



    Wenn ich alles richtig verstanden habe, dann weiß ich jetzt, dass meine "Daten" die vom Kondensator kommen - welche wiederum beeinflusst werden vom Photowiderstand - verfälscht sind, weil das Pi den "HIGH-Pegel" bzw. "LOW-Pegel" nicht korrekt verarbeitet/ausliest/verwertet !?


    Sehr interessant doch bin ich immer noch auf Kriegsbeil mit "LOW" und "HIGH". Noch ist mir da nicht alles klar. :wallbash:


    Aber ich denke doch den Grundgedanken verstanden zu haben den du mir vermittelst.


    Was machen wir denn aber nun, damit der Digital-Eingang meines Raspberrys die "LOW" und "HIGH" Zuständen korrekt ausliest/verarbeitet/verwertet?


    Gruß

    Hallo Freunde der Sonne :heart:


    Guddes Wetter heute!!! Was gibt es da schöneres als in seiner Kammer zu sitzen und am Raspberry zu schrauben?
    GENAU!! Skripte schreiben! :cool:


    Spaß bei Seite, nach einer netten Runde im Garten möchte ich einen neuen Thread starten um mein Videostreaming zu optimieren. Natürlich mit eurer Hilfe ;)


    Ich fand es eine nette Idee meinem Vater einen Vogelnistkasten mit integrierter Kamera zu schenken.
    Natürlich mit Live-Stream direkt aus dem Vogelhaus mit der "NoIR - Kamera".
    (NoIR = Kein Infrarotfilter, d.h. die Kamera macht super Bilder bei Dunkelheit.)


    Ich möchte den Prozess meines Streaming optimieren, ich bin selber Anfänger und benötige deswegen eure Hilfe.:bravo2:
    Auch meine Vorgehensweise werde ich erläutern um somit ein kleines Tutorial für andere Forenmember schaffen.


    Der Ablauf meiner Arbeitsschritte


    Schritt 1
    Kamera anschließen und über den Befehl raspi-config die Kamera aktivieren (enable).

    Schritt 2

    Ich kenne bisher nur eine Methode zum Streamen - VLC Player.
    Daher war mein zweiter Schritt die Installation des VLC Players auf dem Raspberry unter Raspbian mit:

    Quote

    sudo apt-get install vlc


    Schritt 3
    Nun komme ich schon zum Streaming - für Neulinge hier: Jaja, so einfach und schnell geht das mit dem Raspberry!!! :)


    Um das Streaming zu starten tippe ich folgenden Befehl in die Konsole:

    Quote

    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264


    Die LED der Kamera fängt an Rot zu leuchten.


    Schritt 4
    Ich erhebe meinen Körper und gehe runter ins Wohnzimmer zum iPad, starte den VLC Player für das iPad und verbinde mich mit einem Netzwerkstream.
    Wenn ich aufgefordert werde die URL für den Stream einzugeben, gebe ich ein:

    Quote

    vlc rtsp://raspberrypi.local:8554/


    Und ZACK! Ich sehe das Livebild der Kamera.
    --------------------------------------------------------------------------


    So der Stream funktioniert im Heimwerk.
    Jetzt komme ich zur eigentlichen Problematik dieses Threads:


    Problem 1
    Ja, der ein oder andere wird sich sofort aufregen und sagen "Weshalb nimmst du den VLC?"
    Ich habe vor ein paar Tagen mit dem Projekt angefangen und habe nach dieser Anleitung (hier klicken) gearbeitet, da dieses Tutorial sofort bei mir ohne irgendeine Portweiterleitung am Router funktionierte.


    Bitte verfasst doch einen netten Text, wenn ihr Tipps für die Nutzung besserer Programme zum streamen habt. :danke_ATDE:

    Problematik 2

    Ich möchte die Übertragung des Streams optimieren.
    Der Code:

    Quote

    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264


    Enthält auch Elemente die ich mir nicht erklären kann, aber er funktioniert, dass ist wichtig!!
    Doch ich möchte den Code mit euch aufschlüsseln. Mögen wir beginnen:


    raspivid
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    Startet die Videoaufnahme der Kamera.


    -o
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --output : Output filename <filename> (to write to stdout, use '-o -')


    -
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    ??? Was macht dieser Parameter "-"? Ich finde dazu keinen Dokumentationen im Internet. :wallbash:


    -t
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --timeout : Time (in ms) to capture for. If not specified, set to 5s. Zero to disable


    0
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --timeout = 0 ms


    -n
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --nopreview : Do not display a preview window
    ??? Kann ich leider auch nicht interpretieren und bitte wäre daher sehr erfreut über einen netten Beitrag. :thumbs1:


    -vf
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --vflip : Set vertical flip


    -hf
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --hflip : Set horizontal flip


    -w 1280 -h 720
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --width : Set image width <size>. Default 1920
    --height : Set image height <size>. Default 1080


    -fps 25
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    -framerate : Specify the frames per second to record
    Hier ein Wiki-Link, falls jemand nicht weiß was "FPS" sind. :-)


    -g 100
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100
    --intra : Specify the intra refresh period (key frame rate/GoP size)
    ??? Lecko mio!! Keine Ahnung was dieser Parameter macht :@ Hat jeman Ahnung? :s


    |
    raspivid -o - -t 0 -n -vf -hf -w 1280 -h 720 -fps 25 -g 100 | cvlc -vvv stream:///dev/stdin --sout '#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264[/quote]
    Trennt einen vom anderen Befehl in der Linux-Konsole.


    cvlc
    ??? Im Internet finde ich nur Dokumentation die auf "vlc" und nicht "cvlc" basieren. Kann da jemand helfen?


    -vvv
    "Verbose verbose verbose". Verbose output (debug infos can be displayed by selecting "Debug logging" interface under View->Add Interface menu)
    ??? Kann ich selber jetzt nichts mit anfangen. :no_sad:


    stream:///dev/stdin
    ??? Meines Wissens ist "/" der Root-Ordner unter Linux und "dev" irgendein Geräte-Ordner ..^^


    --sout
    ??? Schlag mich tot. :X

    '#rtp{sdp=rtsp://:8554/,mux=ts}' :demux=h264
    ??? Hierzu kann ich auch nur sagen, dass es super funktioniert bei mir, wenn ich den Stream abrufe, aber mehr kann ich auch nicht sagen :blush: Über das Real-Time Streaming Protocol kann man hier mehr nachlesen.


    ------------------------------------------------------------------------------
    Es gibt hier viele Passagen wo ich (und auch sicher andere^^) keine Ahnung haben was manche dieser Parameter verursachen. Teilt euer Wissen ruhig :-)))


    Hier die Quelle von den Kommandos zu "raspivid"


    Auch wenn ihr Verbesserungsvorschläge für den obrigen Code habt, dann immer her damit!!
    Ich würde den Befehl auch später gerne in ein Python- oder Icon-Skript einbinden und dann damit den 24/7 Streaming-Dienst zu gewehrleisten.


    :helpnew::helpnew::helpnew::helpnew::helpnew::helpnew::helpnew:


    Gruß

    Erik Bartmann: Die elektronische Welt mit dem Raspberry Pi entdecken


    Lässt sich sehr sehr schön lesen. Ich lese es bei Safari Books online und es begeistert mich sehr.


    Kann ich nur weiter empfehlen dieses Buch.

    Es sind 220 Ohm.


    U = R * I


    I = U / R I = 3.3V / 220 I = 0,015A = 15mA ?


    Ich glaube habe auf jeden Fall einen Denkfehler, denn das Raspberry ist noch nicht kaputt :'D


    Desweiteren würde ich gerne noch einige Verständnisfragen zu deinem Code klären :)
    Ich dokumentiere immer mein Denken als Anfänger, da wenn jemand mal diesen Thread liest eventuell auch noch diese "Denkfehler" macht. :)


    Analyse des Skriptes:


    Code
    link GPIO
    
    
    $define a_pin 18
    $define b_pin 23


    a_pin = gpio pin nr. 18
    b_pin = gpio pin nr. 23


    Alles verstanden.


    Code
    procedure discharge()
        x := GPIO(a_pin)
        GPIO(b_pin, 0)
        delay(2000)
    end


    Erste Frage als Anfänger: Weshalb kommt die Entladung (dischage) vor der Aufladung(charge) ?
    Zweite Frage: Du weißt der Variable "x" den GPIO(a_pin) zu, aber Variable "x" wird nirgends weiter angewand?!
    "Delay" ist klar - Wiederholung auf 2000ms :)


    Code
    procedure charge_time()
        x := GPIO(b_pin)
        count := 0
        GPIO(a_pin, 1)
        while not (GPIO(b_pin)) do count +:= 1    # oder: while GPIO(b_pin) = 0 do count +:= 1
        return count
    end


    1.: Warum wird wieder "x" definiert?
    2.: GPIO(a_pin,1) - Steht die "1" für "ein" bzw die "0" für aus?
    3.: Die While-Schleife ist klar für mich.


    Code
    procedure analog_read()
        discharge()
        return charge_time()
    end


    1.: Wieder zuerst Entaldung(discharge), statts Aufladung(charge) ?


    Code
    procedure main()
        repeat
        {   write(analog_read())
            delay(1000)
        }
    end


    Diese Prozedur verstehe ich auch.


    Bitte verstehe dies nicht als Kritik an deinem Post :D Es sind nur Fragen die mir nicht ganz klar sind :)
    Das Skript funktioniert einwandfrei richtig genial Andreas!!!


    Doch würde ich auch gerne den kompletten Inhalt verstehen.


    Schönes Wetter heute :) Ich geh erstmal in Garten. Ich wünsche euch und vorallem dir Andreas ein angenehmes Wochenende!!


    Ich freue mich darauf nachher mit euch wieder zu Tippen!!


    Gruß Kevin

    :heart: :heart: :heart:


    Die Programmiersprache ist echt Klasse!! Wirklich sehr geeignet für Einsteiger.


    Eine kruze Anmerkung:
    Wenn der Photoresistor, wie der Name schon sagt, selber ein Widerstand. Wozu benötige ich dann zusätzlich noch zum Kondensaor die beiden anderen Widerstände in der Schaltung?


    PS: Ich feier das Skript :) Das ist so einfach geschrieben *_*

    Hey Andreas kannst du mir eigentlich so 1-2 Bücher empfehlen, die mir nochmal die rudimentären Begriffe der Elektrotechnik erklären?


    Habe z.B. gerade einen Photoresistor vor mir, Kondensatoren und Widerstände. Aber ich habe jetzt keine Ahnung wie ich es schalten sollte.


    Ich möchte Wissen besitzen, dass ich selbst auf solche Lösungen komme.


    Gruß

    Grüße,


    ich bin im Besitz eines Photoresitors und Widerständen.


    Ich besitze aber nur 100uF, 10uF und 100nF Kondensatoren.


    Ich würde gern ein paar Links oder Vorschläge für eine Schaltung von euch erhalten wollen, sofern ihr ein paar gute Tipps habt, dann nehme ich sie gerne an.


    Ich besitze kein Wissen darüber wie man einen Photoresistor in die Schaltung einbringt.
    Desweiteren auch nicht wie ich die Daten in Raspian erfasse. Ich freue mich über Unterstüzung.


    Ich habe diese Schaltung nachgebaut:


    [/img]


    Ich benutze dazu folgendes Skript:


    Ich führe aus mit: sudo python pot_step.py


    11
    11
    11
    11
    9
    13
    13
    13
    4
    12
    12
    12



    Ich benutze 2x 1k Widerstände und statts dem 220nF Kondensator wie auf der Zeichnung einen 100nF Kondensator.


    Wie soll ich die Daten nun interpretieren?
    Es ist ein schwankender Wert trotz des gleichen Lichtes (Glühbirne ist an und Draußen ist es dunkel).


    Was ist der Unterschied zwischen den 220 und 100nF? Kommen dadurch die Schwankungen?


    Gruß

    Andreas:


    Cool!


    Eine sehr gute Vorgehensweise.
    Ich würde zwar gerne drauf los stecken, aber möchte nichts zerstören.


    Ich danke dir für deine Antwort. Sehr produktiv!!!


    @root


    Danke auch dir für die Richtigstellung!!^^
    Ich werde mir auf jeden Fall deinen Thread durchlesen. Gerade mal überblättert .. Vermeidung von Antenneneffekte und Übersprechen nehme ich gerne Ratschläge an! :) Danke.


    Ich hänge derzeit an dem Icon-Tutorial von Andreas was ich heute angefangen habe zu lesen.


    ---------------------------------------------------------
    Zwischenwort:
    Ich bin ja Auszubildender Fachinformatiker für SI mit Zst. Qualifikation und Elektrotechnik ist bei uns in der Schule und im Betrieb nicht so das Thema, aber meine Klassenkameraden und mein Ausbilder wundern sich schon weshalb ich schon mein erstes Projekt fertig habe und mehr oder weniger schon das ein oder andere Wissen besitze!!^^


    Das habe ich größtenteils euch zu verdanken, denn ihr habt mir viele Verständnisfragen beantwortet und ich weiß es sehr zu schätzen, wenn ihr Kommentare in meinem Threads lasst. Vielen Dank dafür!


    Ich werde in den nächsten 2 1/2 Jahren noch eine Menge Threads hier erstellen / diskutieren.
    Netzwerke sind mein Beruf und Elektrotechnik + Botanik sind meine Hobbys. Ich möchte beides verbinden.


    Weiter so Jungs ;)

    Ich fasse nochmal zusammen:


    Wenn ich mein Raspberry nicht zerstören will, dann sollte ich ein Voltmeter parallel in die Schaltung setzen und ein Amperemeter in Reihenschaltung in der Schaltung um den Strom und die Spannung messen zu können.


    Ist es sinnvoll vorher theoretisch die Schaltung mit deren Spannungen und Ströme auf einem Blatt Papier zu berechnen oder einfach die Werte in der Praxis vertrauen?


    Ich hatte ja gefragt: "Wie hoch ist der Strom den mein DS18B20 Sensor zieht und welchen Widerstand ich dafür einsetze."
    Die Antwort war: "Das ist hier nicht relevant. Es wird einfach ein 4,7K Widerstand vom Hersteller empfohlen."


    Ich kann mir aber vorstellen, dass es schon Bauteile wo ich selbst den Strom und die Spannung mit dem dazugehörogen Widerstand selber berechnen muss, oder?


    Gruß


    Für alle anderen: Hier klicken um das Icon-Tutorial anzuschauen! Es gibt dort eine verdammte Menge nützliches Wissen!


    Absoluter Wahnsinn Andreas!

    Hallo Lomo,


    ich habe mir das gleiche Modell der Kamera wie du bestellt und möchte auch einen Nistkasten mit integrierter Kamera bauen.


    Quote

    Habe für die Kiddie´s eine Nistkasten mit Video-Überwachung (Infrarot-Kameramodul Pi NoIR & IR LED) und Lichtschranke TCRT500 gebaut. Live-Stream habe ich, mit Anleitung, auch hinbekommen.


    Welcher Anleitung bist du bei diesem Projekt gefolgt?


    Ich möchte als ersten Schritt die Kamera und den Live-Stream zum laufen bekommen.
    Ich wäre über eine Verlinkung erfreut :)


    Sieht das ganze bei dir so aus?
    [hr]
    So nochmal mit Bild...


    Hallo,


    also ich habe mein Sensor direkt auf das Breadboard gesteckt.
    Ich benutze den DS18B20 (wasserfest) der einen integrierten AD-Wandler besitzt.


    Ist das blaue "Etwas" ein AD Wandler?


    Gruß