Planungshilfe für ein "Schüler"-Projekt

  • Guten Tag,

    ich bin letzte Woche von einer Schülergemeinschaft angesprochen worden. Es geht um das leidliche Thema "Widerstände" im Physikunterricht.

    Im Prinzip geht es um die Erweiterung eines Ohm-Meters.
    Momentan bin ich auf der Suche nach einigen Umsetzungsideen.
    Dieses "High-Tech" Ohm-Meter soll einen Widerstand messen können, diesen ermittelten Wert auf einem Display anzeigen können, und zudem die Widerstandsfarbcodierung mittels RGB LEDs ( oder ähnlichem ) anzeigen.

    Jetzt habe ich mich schon einmal zumindest in der theoretischen Betrachtung mit den Widerstands-E-Reihen beschäftigt, und bin zum Ergebnis gekommen, dass es je nach Meßwert verschiedene Lösungen bezüglich des Farb-Codes auf Grund der Toleranzklassen geben könnte.

    Wie würdet ihr zum ersten einen Widerstand mit einem Controller-Board gleich welcher Ausführung jetzt umsetzen ? Ob es jetzt ein großes PI, ein Pi Pico oder ein Pi Pico W oder gar eine ESP Board wird ist bis jetzt noch vollkommen ungeklärt, und wäre mir auch im Prinzip egal.
    Welche Art von Display würdet ihr verwenden wollen, da erst einmal nur der Widerstandswert angezeigt werden soll ? Ein Mini TFT Color-Display wäre ggf auch denkbar.


    Würdet ihr einen Vorwahlschalter für die Toleranzklasse verwenden, um anhand des Meßwertes den Farbcode richtig darzustellen, oder würdet ihr hier lieber anhand der gespeicherten E-Reihen und den möglichen Toleranzfeldern mehrere dieser Farbcodes als Array Wert mathematisch bestimmen, um diese dann falls es mehrere Möglichkeiten gibt, diese dann als Abfolge mit Verweilzeit, oder dann via Taster zum Umschalten darstellen ?


    Wie steuert man am besten, einfachsten und vor allem mit so wenig wie möglich GPIO-Pins zu belegen eine solche Anzeige an ? Immerhin werden fünf dieser RGB Anzeigen / LEDs benötigt.

    Wie bestimmt man am besten die Helligkeitswerte zur Farbmischung ( g.g.f. für PWM ) für diese RGB Anzeigeeinheiten ?


    Zum Schluß noch die Frage der Stromversorgung. Akku- oder Batteriebetrieb ? Auto-Power-Off oder einen richtigen Hauptschalter verwenden ? Welche Einspeisespannung ?

    Welche Programmiersprache würdet ihr nutzen, wenn man wie ich bisher nur oder hauptsächlich in µPython programmiert habt ?

    Fragen über Fragen ;) Ich bin jetzt erst einmal in der Planungsphase, und somit für jede Idee, Hinweis und Vorschlag dankbar.

    :danke_ATDE:

    es grüßt euer
    Willy

  • Oder ein Nextion-Display. Die sind etwas teurer, brauchen aber nur einen seriellen Anschluss und belasten den Prozessor nicht.

    Da es Touchdisplays sind, kannst du auch gleich die Eingabe darüber machen. Das vereinfacht den gesamten Aufbau. Du brauchst eigentlich nureinen µC, das seriell angeschlossene Display und die Anschlüsse für den zu messenden Widerstand. Keine Knöpfe, keine LEDs und du kannst das Ergebnis sogar hübsch grafisch als Widerstand mit farbigen Streifen darstellen. Das kleinste und einfachste Nextion (2,4") kostet 23 $ und braucht im Betrieb 90 mA, taugt also auch für Akku-/Batteriebetrieb.

    Die Arbeit würde ich einen ESP32 machen lassen. Ein Pi ist für sowas nicht das richtige Mittel - braucht lange Bootzeit, ist komplex (Betriebssystem, Treiber, Software, ...) braucht mehr Strom usw. Außerdem hat er keinen AD-Wandler. Einen µC kannst du einfach ein/ausschalten und der ist sofort da, ohne booten, braucht keine Treiber, keine Updates, kein BS, keine SD-Karte...

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

    Edited 2 times, last by Gnom (October 18, 2022 at 6:59 AM).

  • Wie steuert man am besten, einfachsten und vor allem mit so wenig wie möglich GPIO-Pins zu belegen eine solche Anzeige an ? Immerhin werden fünf dieser RGB Anzeigen / LEDs benötigt.

    Wenn es dir darum geht Pins zu sparen dann nutze z.b APA102 oder WS2812 adressierbare LEDs aka DotStart oder NeoPixel. Die belegen nur ein bis zwei Daten Pins plus 5Volt und GND. Diese werden in den ganzen Ambilight Projekten benutzt. Ansprechen kannst du diese LEDs z.B in Python.

    Gruß

    Steinardo

  • Guten Tag,

    Danke llutz.

    Leider so muss ich sagen, fehlt dazu auch der entsprechende vollständige Schaltplan.
    Also habe ich mir nun diesen Code herunter geladen hatte und diesen für ein Arduino Uno3 mit der Arduino IDE übersetzen lasse wollte, stoße ich schon an die Grenzen der verfügbaren Bibliotheken.
    Nachdem ich Stück für Stück jede Bibliothek für den ADS1015 ADC Installiert, probiert und wieder deinstalliert habe, scheitert das Projekt obwohl der Code laut dieser Webseite erst im Mai dieses Jahres veröffentlicht wurde rein an der Programmumsetzung. Diese Adafruit_ADS1015 Bibliothek die dort verwendet wird, gibt es so nicht. Der Vorgang scheitert immer wieder schon an dem Punkt, dass der Import aus Zeile 5 des Programmcode zum Abbruch führt.

    Es bringt mich so kein Stück weiter. Die Grundidee zur Umsetzung der Widerstandsmessung ist vom theoretischen Teil soweit ok, mehr aber auch nicht.

    es grüßt euer
    Willy

  • Der Code kompiliert hier problemlos, sofern man #include <Adafruit_ADS1X15.h> statt #include <Adafruit_ADS1015.h> installiert/nutzt

    (Bibliotheksbeschreibungen lesen hilft).

    Den Schaltplan könnte man sicher mit Hilfe des Codes und der benutzten Komponenten rekonstruieren oder einfach den Autor danach fragen.

    Du suchst also keine Planungshilfe, sondern ein copy&paste-Projekt.

    Sorry dass ich dir kein fertig lauffähiges Gerät frei Haus geschickt habe.

    //Nachtrag 7.9.22:

    Die Projektseite wurde aktualisiert, Beschaltung der Komponenten (Schaltplanersatz) wird gezeigt. Ein Instructables-Artikel ist in der Review.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Edited once, last by llutz (November 7, 2022 at 1:06 PM).

  • Hallo Willy,

    mal einen Tip von mir: Die Betreuung von Schülerprojekten ist so ziemlich das Undankbarste, was man sich vorstellen kann.

    Eines der beiden Schülerprojekte, die ich mal betreut habe, passt hier sehr gut hin. Damals ging es um die Auswertung der Farbringe photographierter Widerstände. :bravo2:Suche mal nach "RMesser" in diesem Forum.

    Parallel dazu habe ich das Programm (aus Eigeninteresse für mich) entwickelt und jeweils auf die Probleme hingewiesen, auf die ich bei der ganzen Angelegenheit gestoßen bin.

    Das Programm enthält einen Programmteil zum Erlernen von Farben. Dabei habe ich festgestellt, dass der RGB-Farbraum vollkommen ungeeignet war, um die Frage, beispielsweise wieviel BLAU darf GRÜN haben, um noch als GRÜN oder schon als BLAU zu gelten, beantworten zu können. Die einzelnen Widerstandshersteller bzw. Batches des Farbpigments bzw. der Compoundierungen fallen da doch recht unterschiedlich aus.

    Auch die Unterscheidung von BRAUN und SCHWARZ war alles andere als trivial, weil beides sehr dunkel ist.

    Daraufhin habe ich mich mit dem HSV-Farbraum beschäftigt und als sinnvoll für das Projekt betrachtet.

    Richtig spannend war dann die Lösung der beiden einzigen Farbringe mit reflektierenden Pigmentpartikeln (SILBER und GOLD). Da musste so richtig Hirngrütze destilliert werden.

    Und als wenn das nicht schon gereicht hätte, stellte sich noch ein Fehler in der Programmierung des HSV-Farbraums der verwendetet Bibliothek heraus. Das habe ich dann auch noch komplett neu programmiert, bis es passte.

    Ich habe - dachte ich - im Dialog mit der Schülergruppe das Projekt geplant, den Ablauf der Software definiert und auf die Probleme hingewiesen.

    Die Entwicklung hat mich zwei Tage gekostet. Die Betreuung ca. 2 oder 3 Wochen.

    Die Schülergruppe zeigte sich vollkommen desinteressiert, hatte keinerlei Eigeninitiative gezeigt, um sich überhaupt mit irgendetwas zu beschäftigen was zur Lösung der Aufgabenstellung hätte führen können.

    - Konstante Aufnahmequalität (optimal und konstant ausgeleuchtete Photobox)

    - Mechanik zur Positionierung des Widerstandes vor die Kameralinse (Linearachsenantrieb)

    - Farbräume und deren Eignung für das Projekt (zuerst RGB, dann HSV)

    - Farben lernen, Farben differenzieren (Kernstück und zeitlich gesehen der Hauptanteil der Anwendungssoftware)

    - Behandlung reflektierender Farbpigmente (SILBER, GOLD)

    - Beschäftigung mit irgendeiner Programmiersprache (zuerst waren alle Mittel (Programmiersprache, Verwendung von Bibliotheken oder ohne) erlaubt, irgendwie rückten die erst 2 Wochen vor Abgabeschluss heraus, welche Programmiersprache erlaubt sei und welche Bibliotheken zu verwenden sein sollen - da war mein Programm in Icon schon längst abgeschlossen)

    Na ja, nachdem die Schülergruppe immer fordernder wurde und sich täglich in Desinteresse getoppt hatte, habe ich den Code für mich behalten.


    Zu Deinem Fragen:

    Meiner Meinung nach verbietet sich die Verwendung von RGB-LEDs. Du brauchst 6 von denen, um auch die Widerstände mit 6 Farbringen darstellen zu können. Ein RGB-LED hat drei Eingänge für R, G- und B-Anteil. Jeder sollte über PWM ansteuerbar sein. Das heißt, wenn Du diesen Gedanken weiter gehen möchtest, sollte die Hardware mindestens 18 PWM-Ausgänge haben. Was mag da wohl übrig bleiben? Wenn überhaupt fällt mir nur der Arduino MEGA 2560 ein. Dann musst Du einen gewissen Aufwand treiben, um die PWM-Sätze je LED zu herauszufinden, bis jedes RGB-LED jede erforderliche Farbe in einem identischen Farbeindruck erzeugt.

    Alternativ würde auch ein programmierbarer Widerstand gehen. Das stellt weniger Forderungen an die Menge der PWM-fähigen GPIO-Ausgänge. Aber der gewisse Aufwand, konstante Farbeindrücke für jede Farbe zu erzeugen, bleibt.

    An Deiner Stelle würde ich diesen Ansatz gleich wieder verwerfen, sondern, wie die Kollegen schon empfohlen haben, ein LCD-Touch-Screen verwenden. Da kannst Du Dich mit der Benutzerführung zur Bedienung und im Umfang der Darstellung der Ergebnisse (Zahlenwert, bunte Farbringe) so richtig austoben.


    Was mich ein wenig wundert... Von der Themenstellung her sollte das was für den Physik-Leistungskurs sein. Aus meiner Erfahrung brauchen die keine externe Unterstützung. Die sollten so pfiffig sein, das von der Elektronik und Programmierung hinzubekommen. Zumindest war das zu meiner Zeit so (Ende der 70er, Anfang der 80er Jahre).

    Wenn es sich um eine Ausbildung oder Studium handelt: Hier stellt sich immer die Frage, wieviel Input darfst oder möchtest Du geben, damit die Umsetzung inkl. Planung noch erkennbar durch die Schülergruppe erfolgte? Sicherlich sollte es nicht darum gehen, welche Schülergruppe hat den besten Mentor "gekauft", um die Bestnote zu erhalten.


    Beste Grüße - ob ich Dir Spaß wünschen soll :conf:

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited 3 times, last by Andreas (November 6, 2022 at 2:31 PM).

  • Andreas Was die Anzahl der Pins angeht reicht ein Arduino UNO 3 offensichtlich aus. Das Stichwort NeoPixel fiel ja bereits und die Dinger verwendet das Projekt ja auch.

    “Unfortunately forty years of programming experience has taught me that there's an essentially infinite supply of mistakes to make … your mistakes just get smarter most of the time.” — Steve Holden

  • Guten Abend,

    ich habe mich nun wieder einmal um so mehr mit den einzelnen Punkten beschäftigen können.
    Dazu vielen Dank an Andreas und llutz, obwohl ich deine Unterstellung nicht so ganz teilen kann.

    Wie Andreas schon so richtig festgestellt hat, sind die beiden Farben Silber und Gold mit keinem System, egal ob TFT Display , WS-NEOPIXEL wie auch mit einer RGB-LED darstellbar.
    Für ein "angedachtes System" was auch aus der Ferne ( Klassenraumgröße ) gesehen werden soll ist die Display-Variante gleich mal hinfällig geworden. Viel zu klein, und nur wirklich erkennbar wenn man höchstens 1 1/2 Meter entfernt steht. Jetzt ist mir noch ein Waveshare 11,9" Widescreen in die Hände gefallen. Für die reine Messwertanzeige vollkommen okay. Jedoch dann das Problem, weil dieses Display nur einen HDMI Anschluss hat, wie steuert man dieses an, wenn man gerade kein großes RasPi dafür übrig oder zur Verfügung hat ?

    Neopixel wie auch RGB LEDs könnte man fast sagen vergiss es, wenn es um sehr dunkle Farbtöne geht, besonders Braun und Schwarz. Jedoch wenn man einen Matten Schirm hätte, der die nicht für die Farbringe genutzten Flächen ganz leicht oder schwach Hintergrund beleuchtet. Ist zwar eine tüchtige mechanische Bastelei, aber zumindest eine Lösung. NeoPixel hier das Problem der Stromversorgung die man bei dieser Menge auf die Größe bezogen einsetzen müsste. In Sachen GPIO reduzierter Ansteuerbarkeit natürlich ungeschlagen.
    Jedoch auch bei den RGB LEDs würde ich das trotz der Einwände von Andreas nicht als das "große" Problem sehen, wenn man auf einen LED-Treiber wie den I2C ansteuerbaren PCA9685 setzt. Mit zwei solchen Chips lassen sich immerhin 10 RGB LEDs mit ausreichend PWM Kanälen ansteuern, und könnte gleichzeitig auch noch die Hintergrundbeleuchtung dimmen.

    Zudem wäre diese Variante wie auch die NeoPixel Version von einem µController zu bewältigen, ohne das man auf ein großes RasPI zurückgreifen müsst. Dabei aber wieder die Frage, wie stellt man das Meßergebnis in einer Größe dar, damit dieses auch aus 2 bis 3 oder mehr Metern Entfernung noch lesbar ist ?

    Jetzt noch der Punkt, wie messe ich den Widerstand möglichst genau ein, und wie gehe ich mit den Toleranzklassen um. Dazu habe ich mir mal eine Tabelle angefertigt, in der die möglichen Überschneidungen schon bei 5 % Toleranz, erst recht bei den 10% offensichtlich werden.

    Noch ein Wort an Andreas: Deine Vorstellungen, dass müsste die heutige Generation selber hinbekommen - vergiss es. Die bekommen noch nicht einmal eine Verdrahtung mit einem Spannungsteiler zur U/I Kennlinienerfassung für eine einfache Diode trotz vorliegenden Schaltbildes hin, ohne einen Kurzschluss zu machen. Es geht auch nicht um den besten Mentor, oder sonstiges, es geht einfach, weil ich über eine Bekannte und Mitglied des Elternrates angesprochen wurde, zwischen den Fronten. Die Unterrichtsausfälle besonders in den naturwissenschaftlichen Fächern in den vergangenen C-Jahren zeigen nun ihre Folgen. Wenn in der 9.Klasse an einem Gymnasium die Schüler noch nicht einmal wissen, wie man in einem einfachen Stromkreis mit einem Schalter, einem Widerstand und einer Glühbirne ( Reihenschaltung ) die Spannung und den Strom misst ...
    Da geht es sicherlich nicht um Mentoren oder Bestnoten, da geht es einfach um die kleinen Dinge.

    Wenn wie über den Elternrat zu erfahren von der Schule finanzielle Mittel bereit gestellt werden sollen, muss das so aufgebaut / aufgezogen werden, dass dieses "Projekt" auch noch für nachfolgende Generationen unterrichtsbegleitend genutzt werden kann.

    es grüßt euer
    Willy

  • Also, nur mal am Rande: Du fragst nach Ideen/Empfehlungen und hinterher kommen deine Einschränkungen. Dass das Teil aus mehreren Metern Entfernung im Klassenraum aus der letzten Reihe noch ablesbar sein soll, davon war bisher nicht die Rede (du sagtest Mini-TFT-Display). Wenn du einen Großformatbilschirm brauchst, dann stellt sich andererseits die Frage nach einem möglichen Akku/Batteriebetrieb nicht. Und zum Budgt sagst du auch nichts Greifbares. Du mäkelst an jedem Vorschlag rum und weißt doch ohnehin alles besser - warum fragst du dann überhaupt? Man bekommt schono ein wenig den Einndruck, dass du gar keinen Bock auf die Sache hast. Und wenn die Schüler doch alle so scheiße sind und das Ganze ohnehin nur unausgegorenes Wunschdenken des nörgelnden Eltenbeirates ist, dann zieh dich doch aus der Nummer zurück.

    Wenn das Ding vorne auf dem Pult stehen soll, dann nimm einen Pi, einen anständigen 24" Bidschirm, steck das Ganze in die Steckdose und fertig ist der Lack! Wenns mobil sein soll, nimm einen µC und ein passendes, sparsames Display und dann gehst du halt mit dem Gerät mal durch die Sitzreihen, wenn man den kleinen Bildschirm des kompakten Gerätes auf die Entfernung nicht im Detail ablesen kann.

    Und natürlich kann man gold/silber auf nem (halbwegs ordentlichen) TFT darstellen. Neopixel oder RGBs sind insofern doch gar nicht praktisch, weil du damit viellicht die Farbringe darstellen kannst (gold und silber allerdings wohl kaum), aber für die Anzeige eines Messwertes sind die ja ungeeignet - da brauchst du dann doch zusätzlich ein LCD oder ein kleines TFT/Oled oder Was-auch-immer-Display.
    Was der Vorteil des PCA9685 gegenüber Neopixel sein soll, ist mir nicht verständlich. Und auch beim Stromverbrauch der LEDs sehe ich jetzt nicht so das Problem - die kann man auch mit relativ kleinen Strömen betreiben - bei voller Leistung bekommt man ohnehin Augenkrebs.

    Wenn ein 11,9" Waveshare ausreicht, dann tut es viellicht auch ein 10,1" Nextion. Das lässt sich mit einem µC ansteuern und notfalls auch noch mit Akku betreiben. Zumindest sollte man mal drüber nachdenken.

    Was die Toleranzen angeht, kannst du ja nur auswerten, zu welchem Standardwiderstand verschiedene E-Reihen) die Abweichung am geringsten ist. Ansonsten bleibt dir nur, alle möglichen Varianten mit Abweichung anzuzeigen - ggf. nacheinander. Dann kann der Anwender immer noch die Farbringe auf dem Widerstand mit den verschiedenen Lösungen vergleichen und schauen, was er da wirklich hat.

    Die meisten Fragen, die du in deinem Eingangspost stellst, kann dir niemand beantworten - außer du selbst. Vielleicht solltest du das mal zuerst machen.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Wobei man mit ein bisschen Kreativität auch Gold und Silber als Gelb und Grau mit zusätzlichen kleinen, hellen, weissen LEDs die ein animiertes ”Glitzern” repräsentieren, versuchen könnte.

    “Unfortunately forty years of programming experience has taught me that there's an essentially infinite supply of mistakes to make … your mistakes just get smarter most of the time.” — Steve Holden

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!