Liebe Forumsmitglieder, mein Name ist Max, angehender Mathematiker und dies ist mein erster Beitrag hier im Forum. Meine Hochschule stellt mir, als Fachfremden, durchaus Software zum erstellen und "animieren" von Schaltplänen zur Verfügung, jedoch habe ich den Anhang mit mir bekannter Software erstellt. Verzeiht mit bitte Fehler, aber zeig sie mir gerne auf. Meine Grundkenntnisse in ELT beschränken sich auf grundlegendste Rechnungen, etwa Abiniveau. Logische Gatter, Dioden, Widerstände sind mir aber ein Begriff und ich habe bereits unter Anleitung einen elektronischen Würfel auf einer Platine gelötet. Mein Interesse für ELT ist relativ hoch und ich hoffe mir mit eurer Hilfe via learning-by-doing mehr Wissen und Können anzueignen. Dabei ist mir nicht nur wichtig, dass Sachen irgendwie funktionieren, ich möchte auch grob verstehen was passiert und wieso eine Lösung gut oder schlecht ist. Zur Stunde habe ich bereits eine konkrete Frage und zwar möchte ich die Anzahl aktiver Signale zählen und anhand davon eine bestimmte Anzahl an Leuchtmitteln aktiveren, solange die Signale aktiv sind. Im Anhang befindet eine Skizze dazu. Das Problem im Anhang habe ich in der Theorie mit logischen gattern bereits gelöst - aber bestimmt nicht optimal. Allerdings würde ich gerne eine allgemeinere Lösung finden die aktiven Signale zu zählen, insbesondere so, dass die Lösung auf 10 Input Signale anwendbar/erweiterbar ist und analog auch bis 10 gezählt werden kann. Dazu fallt mir nur ein sehr sehr sehr viele Gates zu verwenden - das muss einfacher gehen! Ein Bauteil zum zählen aktiver Signale habe ich nicht gefunden. Daher ist meine Frage zu aller erst wie Ihr das Problem angehen würdet - mit 3 und mit 10, bzw. "n" Inputs und Outputs. Würdet Ihr Euch einer Gatterschlacht unterziehen oder ist sowas mit einem Microcontroller machbar? Ich danke Euch schon mal für die Hilfe! Max
:
Verschoben durch Moderator
Das kommt hauptsächlich auf DEINE Fähigkeiten und Kenntnisse an. Wenn es keine weiteren Anforderungen gibt ist von diskreten Gattern (Kenntnisse in Digitaltechnik und Aufbau von elektronischen Schaltungen notwendig) CPLD/FPGA (zeichnen von Gattern in einem Schaltplan/VHDL/Verilog/...) uC (Kenntnisse in einer Programmiersprache ASM/C/CPP/Phyton/...) viel möglich.
Danke mani für deine Antwort! Ich kann auf jeden Fall C und Python programmieren. Also schätze ich das so ein, dass du mir eher uC empfehlen würdest richtig? Kennst Du, oder ein Anderer, eine ratsame Python Bib? p.s.: Ich habe nur Programmiererfahrung mit Programmen die ohne Schnitstelle nach Außen auf Android oder Windows laufen sollten.
Du kannst Python, möchtest aber für dieses triviale Beispiel eine eigene Lib? Mircopython läuft auf einigen Microcontrollern, Doku ist unter https://docs.micropython.org/en/latest/ zu finden. Edit: so, wie oben gezeichnet, wird es nicht funktionieren: die Dioden sperren in jedem Fall. Stromquelle falschrum gezeichnet?
:
Bearbeitet durch User
Es kann sein, dass ich die Stromquelle falsch gezeichnet habe, ja. Danke. Mir fällt grade auf, dass unter der Schaltung aus noch Unfug gezeichnet ist. Der diente nur meiner eignen Orientierung und hat nichts mit meiner Frage zu tun. Ausgezeichnet, dass das Problem Trivial für dich ist, dann werde ich bestimmt auf eine nicht all zu komplizierte Lösung stoßen.
Maxi W. schrieb: > dass du mir eher uC empfehlen würdest richtig? Es ist eine Möglichkeit. Wenn du dich mit C bereits auskennst, wäre es wahrscheinlich die, mit der du am schnellsten zum Ziel kommst. Mit C oder Cpp hast du auch eine Sprache mit der du im Embedded Bereich viele fertige Plattformen für kleines Geld findest. Arduino ist eine davon. Für den Einstieg empfehle ich definitiv ein FERTIGES Evalboard. Die Dinger sind heute so günstig und funktionieren Out of the Box. Teilweise auch mit Debugger (z.B. von ST, TI oder anderen Herstellern), was ich sehr schätze und für Anfänger auch nicht schlecht finde da man manche Zusammenhänge evtl besser erkennt. Maxi W. schrieb: > Ich kann auf jeden Fall C und Python programmieren. Python geht theoretisch auch. z.B. auf einem ESP oder ähnliches. Habe ich ehrlich gesagt noch nie verwendet. Soll aber gehen. Ich würde C nutzen da man nicht so stark auf eine unterstütze Plattform angewiesen ist. Maxi W. schrieb: > Ich habe nur Programmiererfahrung mit Programmen die ohne Schnitstelle > nach Außen auf Android oder Windows laufen sollten. Wenn du eine Plattform hast die einen Debugger integriert hat und die Oberfläche erst Mal eingerichtet ist wirst du davon nur wenig merken denke ich. Ich persönlich würde dir zu einem STM Board raten. Dann noch die Arduino Bibs dazu damit du nicht so viel mit den Hardware Registern am Anfang arbeiten musst. Entwicklungsumgebung geht Arduino, Visual Studio, Plattform IO, Eclipse und viele mehr. Mit Arduino oder Visual Studio solltest du auch schnell dein erstes Blink Programm hinbekommen denke ich.
Bist du bereit, etwas Geld zu investieren? Für vielleicht 15€ bekommst du ein Steckbrett, eine Handvoll LEDs, Widerstände, kleine Taster, ein paar Meter 0,6mm Schaltdraht und einen Raspberry Pi Pico (für den gibt es Micropython, wenn es C sein darf, geht es noch deutlich billiger) – und dann kannst du direkt lostüfteln, dein Vorhaben oben umzusetzen. Dauert dann bestimmt nicht lange bis zu den ersten Aha-Erlebnissen :) Edit, Ergänzung: ein großer Vorteil für den absoluten Einsteiger bei Micropython ist REPL – man kann quasi live am Programm basteln. Bei C/C++ muss jedes Mal kompiliert und auf den Controller geschrieben werden. Oben genanntes Board lässt sich aber auch problemlos mit C/C++ bedienen.
:
Bearbeitet durch User
Maxi W. schrieb: > Dazu fallt mir nur ein sehr sehr sehr viele Gates zu verwenden - das > muss einfacher gehen! Ein Bauteil zum zählen aktiver Signale habe ich > nicht gefunden. Das hast du korrekt erkannt. Früher gab es für solche Aufgaben mal programmierbare Logik-Array (PAL). Alternativ kann man für solche Dinge auch Eproms zweckentfremden. Da legst du die Signale an die Adress-Eingänge. Im Eprom befindet sich eine von dir erstellte Wahrheitstabelle, die für jede mögliche Eingangs-Kombination festlegt, welche Ausgänge auf HIGH bzw. LOW gehen sollen. Hobby-freundlicher empfinde ich in diesem Fall die Mikrocontroller. > Ich kann auf jeden Fall C und Python programmieren. Na dann ist das das sicher auch für dich eine naheliegende Option. Vielleicht gefällt Dir mein Tutorial, da wird ein kleiner 1€ Mikrocontroller verwendet mit dem du das umsetzen kannst: http://stefanfrings.de/mikrocontroller_buch/index.html Ansonsten wäre hier auch ein Arduino Nano zu empfehlen, wahlweise mit Arduino Framework (C++) oder plain C programmiert. > Kennst Du, oder ein Anderer, eine ratsame Python Bib? Python ist für die klassischen Mikrocontroller zu "fett". Das ist eher die Welt von PC und Raspberry Pi. Ganz neu ist hier der Raspberry Pi Pico. Der ist aber gerade erst auf den Markt gekommen, also wohl noch nicht ganz so Anfängerfreundlich, wie etablierte Mikrocontroller. Alternativ kann man für solche Dinge auch Eproms zweckentfremden. Da legst du die Signale an die Adress-Eingänge. Im Eprom befindet sich eine von dir erstellte Wahrheitstabelle, die für jede mögliche Eingangs-Kombination festlegt, welche Ausgänge auf HIGH bzw. LOW gehen sollen. In deinem Schaltbild sind die Dioden oder die Stromversorgung falsch herum eingezeichnet. Du musst sie auch woanders platzieren, nämlich direkt an die Ausgänge der Logikschaltung. Also brauchst du 6 Dioden.
Stefan ⛄ F. schrieb: > Python ist für die klassischen Mikrocontroller zu "fett". Das ist eher > die Welt von PC und Raspberry Pi. Ganz neu ist hier der Raspberry Pi > Pico. Der ist aber gerade erst auf den Markt gekommen, also wohl noch > nicht ganz so Anfängerfreundlich, wie etablierte Mikrocontroller. Ich fände es gut, wenn du keine Fehlinformationen verbreiten würdest. PC und der Raspberry Pi haben nicht im Ansatz was mit dem Pico zu tun, und sollten daher nicht im gleichen Atemzug genannt werden – wenn du den vergleichen willst, dann mit beispielsweise den ESP32-Boards. Auf denen läuft Micropython ebenfalls. Und was die Einsteigerfreundlichkeit angeht, schlägt der Pico wohl jedes AVR-Board. Nix für ungut, aber vielleicht solltest du deine Vorurteile bzgl. des Pico mal etwas zurückstellen, bis du dich tatsächlich selbst informiert hast?
Jack, ich stimme dir zu, dass der Raspberry Pi nicht mit PC vergleichbar ist. Auch in meinen Augen ist das Ding ein Mikrocontroller. Wobei ich wohl auch hätte erwähnen sollen, dass das dort verwendete MicroPython wie C vorher compiliert wird. Es sind dann also keine klassischen Scripte mehr. Ich habe übrigens keine Vorurteile gegen das Ding. In der kurzen Zeit kann die Dokumentation unmöglich das Niveau von AVR Mikrocontrollern erreicht haben - um nur eine Familie aus der etablierte Konkurrenz zu nennen. Die Diskussionen hier im Forum bestätigen das. Wer trotzdem Bock drauf hat: Bitteschön, warum nicht? Ich habe nichts dagegen, sonst hätte ich ihn nicht gerade empfohlen. Ich habe mir auch den ESP8266 früh angetan, als es nur vorläufige Datenblätter auf Chinesisch gab und die Firmware in Version 0.1.x keine 60 Minuten ohne Absturz durch laufen konnte. Also mache mir hier bitte keine falschen Vorwürfe.
Stefan ⛄ F. schrieb: > Wobei ich wohl auch hätte erwähnen sollen, dass das dort verwendete > MicroPython wie C vorher compiliert wird. Es sind dann also keine > klassischen Scripte mehr. Vielleicht solltest du wirklich mal in die verlinkte Doku schauen? Der Interpreter ist natürlich kompiliertes C/C++, die Scripte selbst werden jedoch nicht explizit compiliert, wie bei C, sondern du schreibst dein Script wie ein ganz normales Pythonscript, speicherst es als ›main.py‹ in dem Dateisystem, das Micropython zur Verfügung stellt, packst ggf. noch deine Libs dazu (gerne auch ebenfalls als Textfiles mit der Endung .py) und ab dafür. Und du kannst quasi live über die serielle Verbindung mit dem Pythoninterpreter auf dem Board interagieren, wie in einer normalen Pythonshell. Du kannst dein Script zusammen mit Micropython in ein Binary „freezen“, aber du musst es eben nicht. Aber ja – sollte keine Grundsatzdiskussion werden. Nur eben, dass der Pico nicht einsteigerfreundlich wäre, wollte ich richtiggestellt wissen. Ich meine: das Ding wurde nicht zuletzt mit Einsteigern als Zielgruppe entwickelt. Du hast Python und C/C++ zur Auswahl, du brauchst keine zusätzliche Hardware, die Doku ist ziemlich gut und es gibt bereits jetzt, zwei Monate nach dem Launch, eine ziemlich große und vor Allem aktive Community. Und was die aus dem Platinchen für 4,1€ rausholt, ist teils ziemlich erstaunlich – soll heißen: auch, wenn man nicht mehr Einsteiger ist, kann man damit viel Spaß haben.
Ok, es sind doch Python Scripte. Ich habe da etwas durcheinander gebracht. Kann es sein, dass das Board gerade überall ausverkauft ist?
Stefan ⛄ F. schrieb: > Kann es sein, dass das Board gerade überall ausverkauft ist? Der Händler meines geringsten Misstrauens hat noch über 4k auf Lager, gibt allerdings nur drei auf einmal ab: https://www.berrybase.de/neu/raspberry-pi-pico?c=2461 (@Moderation: hoffe, der Link ist okay – wenn nicht, bitte einfach löschen)
Jack V. schrieb: > hoffe, der Link ist okay Klar sind links OK. Ich finde auch Werbung OK, sofern vorher danach gefragt wurde. Danke für den Tipp, der hat ja auch viele andere interessante Sachen. Krass finde ich allerdings, dass sie nur 3 Pro Person abgeben, obwohl sie tausende vorrätig haben.
Beitrag #6628188 wurde von einem Moderator gelöscht.
Vielen Dank für euer Feedback! ich werde mir erstmal ein Entwicklerboad zulegen. Ihr habt wesentlich schneller geantwortet als ich dachte :D - ganz goßes Danke von mir! Ich werde mir erstmal die Informationen und Links einverleiben, die Ihr mir hier bereitgestellt habt und melde mich dann ggf. nochmal. Vielen dank für euere Hilfsbereitschaft!
Die Mittel der Wahl (für einen angehenden Mathematiker) sind bei diesem Problem zunächst eine Wahrheitstabelle zu machen. Du siehst damit auch, ob das mit einer reinen kombinatorischen Logik zu lösen ist oder ob du einen Zustandsautomaten benötigst. Danach malt man ein KV-Diagramm und minimiert die Terme. Nach Belieben kann man das dann noch mit Hilfe von De-Morgan auf NAND oder NOR Gatterlogik reduzieren. In diesem Zustand ist das Problem dann einwandfrei definiert. Ob man es in Hardware mit Logik Gattern auf einem Experimentierbrett, mit VHDL in einem CPLD oder mit irgend einer Sprache auf einem Mikrokontroller realisiert, ist dann eine völlig nebensächliche Frage die sich maximal in den Mikrosekunden der Reaktionszeiten auswirkt
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.