Posts by Verrain

    Ich bin verwirrt zwecks Verbraucher- und Erzeugerpfeilsystem.

    Angenommen ich habe eine Stromkreis aus Spannungsquelle U_0 einen Schalter zum ein und ausschalten, einem Widerstand R und eine Spule L mit dem Widerstand R_L in Reihe geschaltet durch den Der Strom I fließt.

    Zur Anwendung der Kirchhoffschen Regeln hätte ich beim Einschalten gesagt:
     0 = -U_0 + U_R + U_L + U_{R_L}

    bzw.

    U_0 = I * R + L * dI/dt + I*R_L}

    Die Spannungsquelle U_0 ist ein Erzeuger und deswegen den anderen Spannungen entgegengerichtet. Für die Spule gilt U_L = L * dI/dt

    Zur Anwendung der Kirchhoffschen Regeln hätte ich beim Ausschalten gesagt (Variante A):

     0 = U_R + U_L + U_{R_L}

    bzw.

     0 = I * R - L * dI/dt + I*R_L}

    Die Spannungsquelle U_0 ist abgeschaltet und taucht nicht mehr auf.Jedoch ist die Spule jetzt ein Erzeuger und deswegen den anderen Spannungen entgegengerichtet. Für die Spule gilt deswegen U_L = -L * dI/d.

    Aber dieses Verständnis ist scheinbar falsch, oder? Müsste es so richtig sein:
    Ausschalten (Variante B):

     0 = U_R - U_L + U_{R_L}

    bzw.

     0 = I * R + L * dI/dt + I*R_L}

    Ist das so in Variante B richtig oder in Variante A? Oder gilt gar eine 3. Variante:

    Ausschalten (Variante C):

     0 = U_R + U_L + U_{R_L}

    bzw.

     0 = I * R + L * dI/dt + I*R_L}

    Wobei weiterhin gilt U_L = L * dI/dt (aber was ist dann der Unterschied zum Einschalten???)

    Bitte helft mir ^^

    Viele Grüße
    Verrain

    Wofür soll R2 sein??

    Der verfälscht doch nur die Ergebnisse ??

    Nein tut er nicht. Natürlich muss die Differentialgleichung dann neu gelöst werden. Bzw. vor allem der Anfangswert I_0 bzw. U_0 ändert sich. Dann stimmt alles. Das ist notwendig, weil ich keine negativen Spannung mit dem internen ADC am Arduino messen kann. Deswegen der Spannungsteiler, damit ich von 5V auf 2.5V schalte und die Spannungsunterschreitung messen kann.

    Hallo,

    Ich möchte gern das Auschaltverhalten einer Spule mit einem Arduino Uno messen (leider hat der Chef keine Raspberries gekauft :/). Der Uno kann nur 5 Volt oder 0 Volt liefern, hat einen integrierten Analog-Digital-Wandler, der aber keine negativen Spannung messen kann (für alles kleiner 0 wird 0 angezeigt). Beim Auschalten der Spule von 5V auf 0V kommt es ja aber gerade zu negativen Spannungen.

    Mein Gedanke war jetzt die Schaltung im Anhang, in der ich von 5 Volt auf 2.5V schalte. Somit kann ich die Spannungsunterschreitung der 2.5V messen und somit das Auschaltverhalten meiner Spule. Das Problem ist, dass der SPDT-Schalter den ich verwende zwischen den Schaltposition kurz kontaktlos ist, so dass die Spannung beim Umschalten kurzzeitig auf 0 fällt. Welche Alternativen hätte ich?

    Gibt es Schalter, die dieses Problem nicht haben?

    Hätte ich das Problem mit einem digitalen Schalter nicht?

    Gibt es ein "besseres" Schaltbild, eine bessere Lösung um die Spannung beim Ausschalten einer Spule (über die Spule) zu messen?

    Vielleicht sollte ich auch einfach einen Gleichrichter hinter die Spule packen. Somit kann ich die Werte messen und mit einem Minus versehen?


    Hallo Verrain,

    Kleiner Denkanstoß: Der Player muß den Stream vom Raspberry Pi "abholen". Der Stream wird nich an einen bestimmten Clienten gesendet.

    Verdammt, dass ist ärgerlich, dann muss ich wohl doch noch eine VPN-Verbindung legen, da der Raspberry später in unterschiedlichen Netzwerken unterwegs sein wird.

    Heißt das, ich muss im angehängten Code, die Zeile
    , file:"rtmp://" + window.location.hostname + "/flvplayback/flv:myStream.flv"

    in:
    , file:"rtmp://<aktuelle IP samt Port des Pi> ändern?

    Aber wie sage ich ihm, dass er den Stream abholen soll?


    Hallo,

    Ich möchte gerne einen Webstream / Livestream vom Raspberry Pi an einen Webserver senden, dieser stellt einen Player bereit, damit User aus dem Internet sich das ganze anschauen können.

    Dabei habe ich mich an folgender Anleitung langgehangelt:
    https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=45368

    Kurzfassung:
    Ich verwende den jwplayer und habe auf meinem Webserver die im Artikel angegebene .html page als index.html gesetzt.

    Ich nutze auf dem Raspberry Pi den Befehl:
    raspivid -t -1 -w 960 -h 540 -fps 25 -b 500000 -vf -o - | ffmpeg -i - -vcodec copy -an -f flv -metadata streamName=myStream tcp://0.0.0.0:6666

    Damit funktionert startet er den Stream (aber sendet ihn halt an sich selbst).

    Wenn ich hinten die IP des Webservers eingebe, kommt eine Fehlermeldung und der Stream kann nicht gestartet werden.
    Wohlgemerkt, befindet sich der Webserver im selben Netzwerk, ich hab ihn also an 192.168.2.102 geschickt, ohne einen Port anzugeben:

    Dies erzeugte:
    [tcp @ 0x21a2df0] Port missing in uri
    tcp://192.168.2.101: Invalid argument

    Dann habe ich einen Port eingegeben, dies erzeugte:
    av_interleaved_write_frame(): Broken pipe
    [flv @ 0x249bfd0] Failed to update header with correct duration.
    [flv @ 0x249bfd0] Failed to update header with correct filesize.
    Error writing trailer of tcp://192.168.2.101:81: Broken pipeframe= 52 fps=0.0 q=-1.0 Lsize=
    112kB time=00:00:02.04 bitrate= 448.8kbits/s speed=38.1x
    video:110kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.18962
    4%
    Conversion failed!


    Kann mir jemand helfen?

    Ahja, ich hatte mich schon gewundert, warum die modprobe bei mir nicht funktioniert.

    Die Zahlen aus /dev/hwrng/ als seed für die random funktion zu nutzen ist sicherlich einfach nur die manuelle Variante dessen, was die rng-tools machen.

    Also ich habe jetzt mal ein bisschen mit Python rumgespielt. Öffnet man einen stream mit:
    stream = open("dev/hwrng" , 'r')

    so spuckt read(n) n aneinandergekettete unsigned char (also ein char bestehend aus 8 Bit) aus:
    a = stream.read(1)
    print a

    Wenn ich diese in einen Integer umwandle ergibt das bei 8 Bit eine Zahl zwischen 0 und 2^8 - 1 sprich zwischen 0 und 255:
    b = ord(a)
    print b

    nicht vergessen:
    stream.close()

    Ein paar Anmerkungen:
    • Vorsichtig! Nicht einfach Modulo (z.B. 10) verwenden, da ihr dann geringfügig die Gleichverteilung zerstört. (Auf Grund dessen, dass bei 255 dann 0, 1, 2, 3, 4, 5 genau 25 Mal existiert und 6, 7, 8, 9 allerdings nur 24 Mal). Dann nur einen echten Teiler von 256 verwenden (also 2, 4, 8, 16, 32, 64, 128)

    • Hätte man gerne einen größeren Bereich, kann man z.B. 2 mal 8-Bit "ziehen" und sie zu 16-Bit (oder was gewünscht) zusammenfügen (dafür vorher aber auch in bits konvertieren und diese dann einfach einander hängen)


    Servus,

    Du meinst aber jetzt nicht /dev/random bzw. /dev/urandom (-> click <-), oder? Die sind Standard seit es Unix/Linux gibt und haben nix mit Hardware zu tun.

    Ich hab' da einen Kumpel, der hat sich eine ganze Weile ziemlich intensiv mit Kryptographie auseinandergesetzt und hat einen ziemlichen Aufwand in die Erzeugung von Zufallszahlen investiert. Das ist wohl ein Thema, über das man eine Doktorarbeit verfassen könnte.
    Seine Lösung waren damals Zufallszahlen aus Daten der Soundkarte bzw. den Mauszeiger-Bewegungen zu gewinnen.

    Dass der Raspi einen Hardware-Zufallszahlen-Generator haben soll, ist mir ebenfalls neu ...

    cu,
    -ds-

    Hey Dreamshader!

    Das mit der Entropie aus Mauszeigerbewegungen kenn ich von der Verschlüsselung meines SSH private key. Ansonsten kann ich noch http://random.irb.hr/ empfehlen, da kannst du dir erzeugte Zufallszahlen (mit Hilfe eines Quantenexperiments erzeugt) on mass vom Server laden. Die habe ich bisher stets genutzt, wenn ich echte Zufallszahlen benötigt habe.

    Wie man dem Link von Manul entnehmen kann ist der erforderliche Stream:
    /dev/hwrng
    Automatisch zusammengefügt:

    Das ist Unsinn. Sie sind in soweit für die Kryptographie zu gebrauchen, dass du ohne eigene Entropie hinzuzugeben einen Schlüssel für die Verschlüsselung erzeugen kannst, den du natürlich getrennt von dem verschlüsselten Text nutzt.

    Jep, die Randomfunktion habe ich ja gerade nicht gesucht ;)

    Soweit ich das jetzt verstanden habe, werden die Zufallszahlen direkt in einen Stream generiert, den man im Programm öffnen muss, um darauf zu zugreifen.
    Ich werde bald mal ein kleines Testprogramm schreiben und den Code hier hochladen.

    Warum das nicht bereits längst in eine Bibliothek für den Pi integriert wurde ist mir ein Rätsel. Dann muss man sich eben seine eigene schreiben...

    Der Unterschied zwischen Pseudozufall und Hardwarezufall ist, dass Pseudo durch einen Algotithmus erzeugt wird (der oft als Startwert die aktuelle Systemzeit nimmt), während der Hardwarezufall durch eine physikalische Messung erzeugt wird (zum Beispiel durch die Messung von gleichverteilten Stromschwankungen).

    Also ich konnte noch immer unter Jessie nicht das Tastaturlayout in X mit der Raspi-Config ändern. Auch nach Neustart war es wieder das alte. Dazu muss ich aber gestehen, dass ich das erst nach ein paar Systemänderungen versucht habe (unter anderem der Änderung des Namens, der Ordner und der Rechte des Standardnutzers Pi).

    Seit dem konnt ich auch nicht mehr das beschriebene Konfigurationstool unter X verwenden, aber zumindest habe ich unter preferences --> Tastatur das Layout dauerhaft ändern können.

    Wie nutze ich den Hardwarezufallsgenerator der im Raspberry eingebaut ist?

    Gibt es da eine extra Bibliothek, die ich importieren muss? Wenn ja, wie lautet deren Name und der entsprechende Befehl um eine Zufallszahl zwischen 1 und 100 zu erzeugen?

    Wenn ich google finde ich immer nur die Random Pseudozufallsfunktion.

    Die besten Grüße!
    Verrain

    Hallo,

    Ich möchte gern, dass der noip-dienst (DynDNS) beim Booten automatisch gestartet wird. Dafür habe ich die Anleitung am Ende dieses Beitrags befolgt:
    http://www.raspberrypi-tutorials.de/software/dyndn…einrichten.html

    Ich habe also wie dort steht:

    Code
    crontab -e


    in die Konsole eingegeben und dor am Ende:

    Code
    @reboot cd /home/pi/noip && sudo noip2


    eingefügt.

    Leider startet der Dienst aber nicht beim booten. Was habe ich falsch gemacht oder welche Alternativen gibt es?

    Beste Grüße
    Verrain


    Einen Grund, warum es C sein muss sehe ich da jetzt - bei beiden Problemen - immer noch nicht.

    Wenn du eine GUI vorraussetzen kannst, und ein Maskottchen baust (also so etwas wie Clippy?!?) - dann wuerde ich da nicht auf ein Terminalfenster setzen, das eh droege aussieht. Sondern gleich eine eigene GUI aufmachen, zB in GTK. Damit hast du auch dein Problem nicht mehr. Denn in einem GTK-Text-Field oder was auch immer es da so alles gibt den Text auszutauschen ist vorgesehen. Daneben kannst du auch noch niedliche Bueroklammer-Bildchen malen oder welche Gestalt da gewuenscht ist.

    Nein, kein Softwaremaskottchen :D. Eher so etwas wie der Hitchbot. Ich scheue mich nur davor, so etwas Roboter zu nennen, weil es sich ja nicht selbstständig bewegt :P.


    Damit die Frage immer noch ganz unten steht:
    chvt und fgconsole begreife ich noch nicht... fgconsole gibt bei mir überall(!) eine 1 aus. Wenn ich chvt 1 oder chvt 2 eingebe passiert nichts.

    Kannst mir jemand erläutern wie das funktionert?

    @deets:

    Ja, das mit dem Zerpflücken ist mit auch bewusst. Da werde ich mich dran setzen müssen, auch wenn es stressig ist und python, dass so viel schöner und einfacher kann. Aber immerhin habe ich ja dann eine Funktion, die ich immer wieder verwenden kann, denn ich werde wohl noch öfters Tabellen ausgeben.
    Dieser Thread hat allerdings nichts damit zu tun.

    An dieser Stelle mag ich nur eine executable aufrufen (mit Doppelklich von der GUI) und dabei ein weiteres Terminal öffnen in dem ich dem Benutzer Anweisungen hineinschreibe, die im ersten Terminal keinen Platz finden (aufgrund durchgängiger Datenausgabe). Ich bau gerade eine Art raspberrygestütztes Maskottchen, dass letztendlich im Rahmen eines Projekts durch viele Hände und Ortschaften geht. Da muss am Ende alles an der Bedienung "idiotensicher" sein :D. Deswegen der ganze Aufwand ^^.

    Deswegen nochmal die Frage bevor es untergeht:

    3) chvt und fgconsole begreife ich noch nicht... fgconsole gibt bei mir überall(!) eine 1 aus. Wenn ich chvt 1 oder chvt 2 eingebe passiert nichts.

    Kannst du mir zu 3) erläutern, wie das funktionieren soll?
    Automatisch zusammengefügt:
    Achja, dass C für Stringlisten die schlechteste Sprache ist, ist mir auch bewusst. Vielleicht sattel ich da auch nochmal um. Andererseits ist das ja wie gesagt etwas, dass nur einmal richtig geschrieben werden muss und dann immer wieder verwendet werden kann. Vielleicht mach ich mir da auch mal die Mühe, wenn die Zeit da ist :)


    Zu A): "ein neues Terminal öffnen" ... wo? Unter LXDE? -> lxterminal ausführen.
    Zu B): dann wähl die tty Session aus ;) => Google Suche nach: C++ Debian tty session select

    Ich blicke es noch nicht ganz. Das habe ich rausgefunden:

    1) In ein Terminal außerhalb der eigenen Sitzung zu schreiben ohne das Zusatzprogramm screen nicht möglich.
    2) Bin ich direkt auf dem Pi, kann ich mit Konsolenbefehl >/dev/pts/N (wobei N für die entsprechende Konsole steht) auf einer anderen Konsole ausgeben.
    3) chvt und fgconsole begreife ich noch nicht... fgconsole gibt bei mir überall(!) eine 1 aus. Wenn ich chvt 1 oder chvt 2 eingebe passiert nichts.

    Kannst du mir zu 3) erläutern, wie das funktionieren soll?