Beiträge von DEMOA

    Hallo zusammen,

    nach einem Jahr experimentieren möchte ich nun auch mal einen Zwischenstand über mein(e) Projekt(e) liefern.

    Angefangen hat alles mit der Idee, RGB-Stripes mit dem Pi zu steuern, da die normalen RGB-Controller immer mit meinem Fernseher interferiert haben. Also Pi bestellt, gefühlt viel zu lange gewartet und dann endlich das erste mal einen Microcontroller gestartet. Aus dem Netz habe ich mir einen Schaltplan für RGB Steuerung geladen und das ganze eifrig auf dem Breadboard zusammen gesteckt. Und siehe da, nichts passierte. Das war schon richtungsweisend für die gesamte nachfolgende Zeit als Pi-Bastler.

    Nachdem mir gefühlt 20 MosFETs durchgebrannt sind (Stück 1€ bei Conrad :wallbash: ), habe ich über dieses Forum Rat gesucht und den entscheidenden Hinweis bekommen. Wer hätte ahnen können das 100kOhm Widerstände bei 5V Spannung irgendwas ausmachen könnten.. :rolleyes:

    Darauf aufbauend habe ich dann für 3 Stripes Platinen gelötet und diese über lange Kabel wild in meiner Wohnung verteilt.

    Als nächstes galt es das ganze irgendwie zu steuern. Über Terminal schön und gut, aber es muss drahtlos, am besten tastenlos sein. Wozu hat man denn diese Smartphones.
    Nach sehr sehr langen Nachforschungen und Herumexperimentieren habe ich letztlich einen php Webserver auf dem Pi zum laufen bekommen, mit dem ich die Stripes über eine Website mit Farbrad gut steuern konnte.

    GUI.png

    Den Code hatte ich hier hochgeladen, falls jemand Interesse daran hat.

    Da die einzelnen Platinen ab und an Wackelkontakte hatten, habe ich mich im Platinendesign probiert und eine in Auftrag gegeben. Bis zu 6 Stripes können damit gesteuert werden, die Spannungsversorgung erfolgt direkt an der Platine und nicht direkt an jedem Stripe.

    IMG_4917.jpg
    Bei dem Anblick werden sicher dem ein oder anderem die Haare zu Berge stehen. Fehlende Zugentlastungen an den ausgehenden Kabeln sollten später noch zum Problem werden.

    Beim Pi handelt es sich übrigens um einen Raspberry Pi Zero der sehr zuverlässig läuft, hin und wieder aber etwas langsam ist. Insbesondere der Webserver lief mir nicht flüssig genug. Als bekennender Apple jünger hatte ich die Website natürlich schon WebApp fähig optimiert, aber eine native Lösung bietet natürlich viel bessere Möglichkeiten. Da ich nebenbei in der Programmierung experimentiere habe ich mir eine Entwicklerlizenz geholt und damit eifrig experimentiert.


    f75e58-1495222055.png

    Technisch gesehen stellt die App nur das FrontEnd dar, dass an bestimmten Punkten Befehle an den Php Pi server sendet. Das ganze lässt sich aber viel besser konfigurieren und die Bedienung ist um Welten besser.

    Wie das Bild schon vermuten lässt habe ich mein Setup um "Schalter" erweitert. Ein simpler 433 MHz Sender steuert auf Befehl meine Funksteckdosen. Das ganze läuft ebenfalls über den Php Server, der die Befehle von meinem Handy und Tablet entgegen nimmt. Das funktioniert sogar besser als die mitgelieferten Fernbedienungen, eigentlich nicht wirklich verwunderlich.

    Mit einer Weckerfunktion kann ich mich morgens von einem simulierten Sonnenaufgang wecken lassen, aber schöner wäre doch die echte Sonne. Lange hatte ich mit der Automatisierung meiner Rollos geliebäugelt, aber es gibt so gut wie nichts auf dem Markt. Rolladenmotoren für aussen sind viel zu groß und die wenigen vorhandenen Lösungen sind mit über 100€ absolut überteuert. Die kann man dann ja auch bloß mit ner Fernbedienung steuern :s

    Tatsächlich lassen sich Modellbau-Servos sehr leicht zum Getriebemotor umbauen, die ausreichend Drehmoment bieten und zudem mit 5€ sehr preiswert. Gesteuert wird über PWM (vom Pi) und etwa 6V Spannung. Über kurze Kabel direkt am Pi funktioniert das ganze auch ohne externe Spannungsversorgung, ab 3 Meter Kabel kommt es beim Einschalten der Servos jedoch zu Spannungsspitzen, die die Servos nur noch zittern lassen. Das war verdammt frustrierend und ich habe behelfsmäßig Batteriepacks an die Servos angeschlossen. Big Loser! So Sad!

    Aber zurück zum eigentlich Zweck, irgendwie muss ja noch ein Rollo an den Motor. Die Kenntnisse aus meinem Hauptstudium angewandt habe ich ein paar CAD Teile entworfen und diese anschließend bei 3DHubs drucken lassen. Das ganze ging schnell und war verhältnismäßig preiswert, für dreifache Ausführung habe ich etwa 35€ bezahlt.
    rollo.jpg

    Das ganze funktioniert inzwischen auch relativ gut, manchmal hängt der Pi etwas, da ich quasi immer drei Befehle unmittelbar nacheinander sende (ich habe 3 Rollos), aber sonst läuft alles wie geplant. Die Geräuschentwicklung ist leider recht hoch, für mich aber verkraftbar. Endlich kann ich mein Rollo per App steuern!

    6cb3c9-1495222388.jpg

    Die Spannungsversorgung habe ich inzwischen wie folgt gelöst: eine 12V Spannungsquelle speist alle drei Motoren, diese sind jeweils mit einem 1uF Kondensator parallelgeschaltet und bekommen ihre 6V über einen Spannungswandler. 12V direkt über Kabel funktionieren wegen den o.g. Spannungsspitzen leider nicht.

    Soweit ein Rücklickblick über meine Projekte. Zurzeit gehe ich mit einem Arduino ESP8266 fremd, dadurch hoffe ich die ganzen Kabel für die LED Stripes loszuwerden. Bisher klappt alles ganz gut...


    Bei Rückfragen stehe ich gerne zur Verfügung.
    Da ich wie gesagt eine Entwicklerlizenz für Apple besitze kann ich bei entsprechendem Interesse eine ähnliche App wie die jetzt von mir verwendete programmieren, die dann individuell von euch auf euren Anwendungsfall angepasst werden kann. Ich hätte sowas sehr gerne gehabt aber gefunden habe ich bisher leider nichts.

    Hallo zusammen,
    ich habe mir aus einem Conrad Servo einen Getriebemotor gebastelt durch fixieren des Potis. Das funktioniert bereits alles sehr gut und zuverlässig und lässt sich über PWM gut steuern. Leider funktioniert da so ganze nur mit kurzen Kabeln. Im Betrieb steht der Pi etwa 5 Meter vom Servo entfernt.

    Ich habe jetzt behelfsmäßig 4 AA Batterien als Stromversorgung direkt neben den Servo platziert und die Masse mit dem Pi verbunden. Das PWM Signal geht durch ein 5 Meter Kabel vom Pi zum Servo, dabei gibt es keine Probleme.

    Leider sieht die Batterie Version nicht schön aus und ein häufiges wechseln wäre notwendig, ich würde den Servo lieber über ein weiter entferntes Netzteil ansteuern. Mit 5v zuckt der Servo allerdings nicht einmal, lediglich leichtes klicken ist zu hören.

    Wo liegt mein Fehler? Kann ich einfach eine größere Spannung an einem Netzteil anlegen um den Spannungsabfall der Zuleitung zu kompensieren? Ich kann mir kaum vorstellen das die paar Meter Kabel so einen Einfluss haben können..

    Danke erstmal für eure Hilfe, inzwischen habe ich Widerstände verbaut, damit läuft das ganze jetzt auch endlich stabil.

    Die Steuerung der Stripes erfolgt über einen kleinen Server auf dem Pi, anbei ein Foto des GUI. Das ganze ist für Touchscreen optimiert und funktioniert ohne das nervige Neuladen der Website, wie es in anderen ähnlichen Beispielen der Fall ist. Wen jemand Interesse am Code hat kann er sich gerne bei mir melden :)


    GUI.png

    Nabend zusammen,

    direkt vorab: Ich habe bisher nie mit Servern, PHP HTML und co zu tun gehabt, daher entschuldigt meine (ggf. falsche) Ausdrucksweise. Dies ist mein erstes Projekt und das derzeitige Ergebnis ist in erster Linie try and error und das wilde kopieren von Beispiecode aus dem Netz.

    Ich steuere mehrere RGB-LED-Stripes über meinen Raspberry Pi Zero an. Dafür habe ich einen Server auf dem Pi laufen. Eine PHP Datei bietet die Oberfläche und sendet vier Parameter an eine zweite PHP-Datei, die per Shellexecute die Pins steuert. Dies erfolgt mittels PIGPIO.

    Grundsätzlich funktioniert alles schon wunderbar für den Normalbetrieb, allerdings plane ich in Zukunft Farbwechselprogramme mit Taktvorgabe zu implementieren und dafür muss die Schaltung schnell genug funktionieren. Wenn ich schnell hintereinander zwei Farben wähle dauert es teilweise bis zu einer Sekunde bis das bei den Pins angekommen ist, was für meinen Anwendungsfall viel zu langsam ist. Jetzt stellt sich für mich die Frage, weshalb ist die Steuerung so träge?

    Der normale Pin-Steuer-Befehl wird sofort ausgeführt, daher vermute ich die Verzögerung irgendwo bei dem (zweiten) PHP-Teil.


    Schalter (zweiter)-PHP Code:

    [code=php]<?php
    $l=$_GET['l'];
    $r=$_GET['r'];
    $g=$_GET['g'];
    $b=$_GET['b'];

    if($l !="" AND $r != "" AND $g != "" AND $b != "")
    {
    if ($l = "1") {
           
    $execute = shell_exec("pigs p 27 $r");
    $execute = shell_exec("pigs p 17 $g");
    $execute = shell_exec("pigs p 22 $b");
    } else if ($l = "2") {

    $execute = shell_exec("pigs p 19 $r");
    $execute = shell_exec("pigs p 13 $g");
    $execute = shell_exec("pigs p 26 $b");
    }
    }
    ?>
    [/php]


    Auszug des "Aufruf-Skripts" aus der ersten PHP-Datei (hier fehlen ein paar Klammern wegen des Rauskopierens)

    [code=php]var url1 = "schalter.php?l=";
    var url3 = url1+L+"&r="+R+"&g="+G+"&b="+B;
    http_request = false;

    if (document.getElementById("myonoffswitch").checked ) {
    } else url3 = url1 + L +"&r=0&g=0&b=0";
       
    if (Number.isInteger(R+G+B)) {

    if (window.XMLHttpRequest) {
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/xml');
    }
    } else if (window.ActiveXObject) {
    try {
    http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
    try {
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {}
    }
    }
    http_request.open('GET', url3, true);
    http_request.send(null);


    }[/php]

    Ich habe jetzt nicht ganz verstanden, was tatsächlich auf dem PI passiert. Wird jetzt mit jedem neuem "Aufruf-Request", also für jede neue Farbe, die zweite PHP-Datei neuaufgerufen? Das würde ja mit zunehmender Anzahl an Requests den Pi immer mehr auslasten. Oder bleibt durchgehend eine Datei "geöffnet" und wie eine Prozedur einfach immer wieder aufgerufen? Ich kann ja mit mehreren Computern gleichzeitig auf den Pi zugreifen, deshalb verstehe ich nicht genau wie das mit einer Datei funktioniert.

    Die Farbauswahl erfolgt mittels Colorpicker-Wheel, bei jedem touch-in/onklick- und move-event wird ein "Request" gesendet, was beim gedrückthalten und Farbeauswählen schnell zu hunderten Requests führt, was den Pi sofort stark überlastet. Gibt es hierfür eine Möglichkeit am Pi (möglichst in der zweiten PHP-Datei), nur alle X Millisekunden einen Request zu akzeptieren und den Rest einfach zu ignorieren?

    Ich hoffe ich habe mein Problem etwas verständlich ausgedrückt, wie gesagt kenne ich mich leider noch nicht so gut aus. :blush:

    Danke, das klingt plausibel. Schaltung und Bauteile sind exakt wie angegeben.
    Damit ich es richtig verstehe, die Schaltuhg so lassen und einen Widerstand (10-100kOhm) zwischen Gate und Source setzen oder wie ist das mit auf Masse bringen gemeint?

    Hallo zusammen,

    ich habe heute meinen ersten Raspberry Pi, die Zero Version, geschickt bekommen. Geplant ist die Ansteuerung eines RGB-LED Bands über eine Webanwendung. Entsprechende Anleitung und Bauplan habe ich dieser Seite entnommen:
    http://popoklopsi.github.io/RaspberryPi-LedStrip/#!/

    Im Vorfeld habe ich mir die beschriebenen Mosfets im 10er Pack gekauft. Nach einigem basteln hat das ganze dann einigermaßen funktioniert, allerdings schienen bereits 2 Mosfets nicht mehr richtig zu funktionieren, bei 0V an Pin haben die LEDs leicht geleuchtet. Auswechseln des Mosfets hat geholfen.

    Nun habe ich vorhin aus Frust den Pi durch abziehen des Stromkabels ausgeschaltet, daraufhin haben alle LEDs auf voller Helligkeit geleuchtet. Mosfets nachgemessen und wie befürchtet alle drei durchgebrannt (kein Widerstand zwischen Drain und Source).

    Die Schaltung ist sonst korrekt, zuvor hat alles gut funktioniert. Ich habe nochmal mit dem Spannungsmessgerät die Ausgänge gemessen und beim Abziehen des Stromkabels am Pi einen leichten Impuls festgestellt.

    Ist es normal, dass die Teile so schnell abrauchen? Gibt es eine Möglichkeit, den Pi sanfter auszuschalten (herunterfahren über Menü ist bekannt, aber später nicht mehr praktikabel).
    Hier hat jemand den Mosfet etwas anders angeschlossen über einen Widerstand, würde so etwas helfen oder kennt ihr andere Methoden?
    http://newtextiles.media.mit.edu/?p=535

    Auch wenn die Mosfets nur 30ct das Stück kosten ist es ja keine Dauerlösung andauernd neue einzubauen.

    Viele Grüße