Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 07.11.2024 07:49:08

Hoi,

ein Bekannter ist mit einem Bastelprojekt auf mich zugekommen, fuer das er Hilfe braucht ... nun brauche ich dafuer aber wiederum selbst Hilfe. ;-)

Das Ziel: Er will eine Musikspielstation haben. Per Knopfdruck soll ein Musikstueck gespielt werden. Als Hardwaretaster soll ein Aufputz-Lichtschaltertaster zum Einsatz kommen. Die Musik soll von einem Computer gespielt werden.

Mein Problem: Wie bekomme ich das Tastersignal von der Hardware zur Anwendungsebene im Computer. Sobald ich es dort per Programmaufruf oder Dateilesen abfragen kann, kann ich den Rest selber scripten.

Ansatz 1: Ich habe hier noch einen Cubietruck rumliegen. Im Moment bin ich mir nicht sicher, ob das darauf mal installierte Cubian noch laeuft, sonst muesste ich neu ein Betriebssystem auf eine MicroSD-Karte spielen. (Vor zehn Jahren war das recht viel Rumprobiererei, aber heutzutage ist das vielleicht einfacher.) Dieser hat GPIO-Pins, was eigentlich das sein sollte, was ich haben will. Wisst ihr, ob die direkt ins Dateisystem abgebildet sind? Kann ich die direkt ueber ein virtuelles Dateisystem auslesen? Dieser Ansatz waere IMO der Beste, wenn ich das System selbst wieder zum Laufen bekomme.

Ansatz 2: Falls das mit GPIO schwierig ist oder auch falls der Cubietruck nicht laeuft, habe ich mir ueberlegt, dass ich das Tastersignal auch an den Mausklicktaster einer alten Maus anloeten koennte. Dann wuerde ich im Betriebssystem einfach mit irgendeinem Tool auf das Druecken der Maustaste reagieren. Dafuer koennte ich dann auch irgendeinen anderen Computer verwenden. Klingt das nach einer brauchbaren Idee?

Mein Wunsch: Bei so Hardware-Lowlevel-Zeug kenne ich mich nicht so gut aus, darum wuerde es mir helfen, wenn ihr ein paar Meinungen und Erfahrungen zu meinen Ueberlegungen abgeben koenntet. Hilfe, um den Cubietruck wieder zum Laufen zu bekommen, waere definitiv willkommen. Ist Cubian noch aktuell oder installiert man dort heutzutage etwas anderes? (Ich wuerde gerne die vorhandene Hardware nutzen und will keinen Raspi oder so kaufen.) Generelles Verstaendnis fuer den Zugriff aus dem Betriebssystem auf GPIO waere super. Ich muss mich dem ganzen Thema vor allem mal annaehern und Wissen aufbauen. Die Umsetzung an sich kann eigentlich nicht so schwierig sein. Und wenn ich die Tasterinformation mal auf der Anwendungsebene bzw. im Dateisystem habe, ist das Scripting wieder in meiner eigenen Domaene -- ab da machts dann Spass. ;-)
Use ed once in a while!

Benutzeravatar
TRex
Moderator
Beiträge: 8325
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von TRex » 07.11.2024 07:53:46

Meillo hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 07:49:08
Kann ich die direkt ueber ein virtuelles Dateisystem auslesen? Dieser Ansatz waere IMO der Beste, wenn ich das System selbst wieder zum Laufen bekomme.
Zumindest bei Raspberry ist das so, und ich glaube, dass das ein generisches Linux-Feature ist.

Edit: https://developer.technexion.com/docs/u ... inux-shell
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 07.11.2024 08:09:20

Das waere klasse, wenn das ein generelles Interface waere.

Was ich noch nicht recht verstehe ist, was ein Signal am GPIO-Pin bedeutet. Ich moechte ja wissen, ob zwei Pins verbunden sind. Muss ich dann einen Pin mit Spannung ueber den Taster an einen Lesepin verbinden und beim Lesepin dann schauen, ob dort auch eine Spannung reinkommt?

An meiner unbeholfenen Beschreibung merkt ihr, dass ich von diesem Hardwarezeug nicht so viel verstehe. :lol:


Bei Cubian scheint sich seit 2014 nichts mehr getan zu haben. Nun gut, ein Betriebssystem von damals wuerde mir nichts ausmachen. (Mein Debian ist ja mindestens auch so alt. 8) )
Use ed once in a while!

Benutzeravatar
TRex
Moderator
Beiträge: 8325
Registriert: 23.11.2006 12:23:54
Wohnort: KA

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von TRex » 07.11.2024 08:21:49

Üblicherweise würdest du Spannung von 3.3V nehmen und dann einen der gpio auf Input konfigurieren. Und von dem liest du dann das Signal (1 oder 0).
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von MSfree » 07.11.2024 08:26:42

Ich würde das nicht mit einem Großkaliber wie einem Cubietruck lösen. Ein Microcontroller tut es auch.

Du könntest z.B. einen Waveshare RP2040 One nehmen. Die GPIOs kann man recht einfach mittels Circuitpython einlesen. Circuitpython kann unter anderem am USB-Anschluß HID-Devices emulieren, so daß man den Tastendruck über GPIO in eine USB-Keyboard-Reaktion umsetzen könnte. Im Grunde kann man damit eine ganze Reihe von Tastaturanschlägen übermitteln. Ich habe z.B. einen RP2040 One so programmiert, daß der die lange Passphrase zum Entsperren eines LUKS-Containers überträgt, sobald man einen Taster betätigt, der einen GPIO-Pin auf Masse schaltet.

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von hikaru » 07.11.2024 09:15:30

Cubian ist tot (was aber egal wäre, wenn deine Instanz noch läuft und das Gerät offline ist). Der Cubietruck sollte mit Mainline-Debian laufen. [1]
Im Wesentlichen ist das ja die gleiche Plattform wie mein Cubieboard 2. Dort hatte ich 2016 Stretch installiert, was noch etwas umständlich war. @scheich hatte dann etwas später noch eine einfachere Anleitung gepostet. [2]
Wie der aktuelle Stand ist weiß ich nicht. Das Stretch-System hatte ich noch bis Buster oder Bullseye hochgezogen und das Gerät dann mangels Bedarf eingemottet.


[1] https://wiki.debian.org/InstallingDebianOn/Allwinner
[2] viewtopic.php?f=12&t=162959#p1127172

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 07.11.2024 09:17:30

MSfree hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 08:26:42
Ich würde das nicht mit einem Großkaliber wie einem Cubietruck lösen. Ein Microcontroller tut es auch.
Aber wie spielt der Microcontroller dann die Musik? Da habe ich doch kein GNU/Linux mit dem ich dann die Anwendungssoftware scripten kann.

Das Hauptproblem ist mein Wissen. Von einem GNU/Linux-System verstehe ich etwas, von Microcontrollern nicht, darum wuerde ich die lowlevel-Ebene moeglichst schnell ueberwinden wollen, um in der mir bekannten Umgebung anzukommen.

Aber falls du oder sonstjemand das fuer mich mit einem Microcontroller umsetzen und mir fertig zukommen lassen will, waere ich natuerlich auch nicht abgeneigt. ;-)

Letztlich soll per Knopfdruck ein zufaelliges Musikstueck aus einem Verzeichnis mit MP3-Dateien gespielt werden.

MSfree hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 08:26:42
Du könntest z.B. einen Waveshare RP2040 One nehmen. Die GPIOs kann man recht einfach mittels Circuitpython einlesen. Circuitpython kann unter anderem am USB-Anschluß HID-Devices emulieren, so daß man den Tastendruck über GPIO in eine USB-Keyboard-Reaktion umsetzen könnte.
GPIO in Keyboard-Signale umzusetzen hoert sich auch nicht schlecht an.

Entscheidend ist fuer mich, dass ich mal auf die Anwendungsebene komme. Ob ich das Signal dann als Mausklick, als Tastendruck, per Programmaufruf oder in einer Datei stehend bekomme, ist mir egal. Mit all dem kann ich dann weiterarbeiten. Meine Herausforderung ist es, auf diese Ebene zu kommen.
Use ed once in a while!

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 07.11.2024 09:19:34

hikaru hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:15:30
Im Wesentlichen ist das ja die gleiche Plattform wie mein Cubieboard 2. Dort hatte ich 2016 Stretch installiert, was noch etwas umständlich war. @scheich hatte dann etwas später noch eine einfachere Anleitung gepostet. [2]

[2] viewtopic.php?f=12&t=162959#p1127172
Cool, danke! Das hoert sich hilfreich an.
Use ed once in a while!

chrbr
Beiträge: 624
Registriert: 29.10.2022 15:53:26

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von chrbr » 07.11.2024 09:43:17

Meiner Meinung nach besteht das Hauptproblem darin, nichts kaputt zu machen. Wie weit sollen der Schalter und der Rechner mit den GPIOs voneinander entfernt sein? Wenn sie praktisch zusammen liegen, dann kann man die Hardware einfach halten. Beim Raspberry kann man über die Shell den Zustand der GPIOs auslesen.

Wenn Schalter und Rechner weiter entfernt sind, dann ist die Methde mit der Maus nicht schlecht. Im Zweifelsfall geht nur die Maus kaputt.

Die Idee kann man noch weiter spinnen. Ausprobiert habe ich das noch nicht, aber man könnte einen Billigst-Switch über ein Ethernet-Kabel mit dem Rechner verbinden. Hat der Billigst-Switch Spannung, dann sollte man das IMHO am Link Signal der Ethernet-Schnittstelle ablesen können. Das wäre mit Kanonen auf Spatzen geschossen und vielleicht auch langsam. Dafür wäre das hardwareseitig eine sehr robuste Lösung.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von MSfree » 07.11.2024 09:44:02

Meillo hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:17:30
Aber wie spielt der Microcontroller dann die Musik?
Der würde nichts abspielen, sondern nur als Reaktion auf das Kurschließen eines GPIO-Pins gegen Masse eine Sequenz von Tastaturanschlägen über ein emuliertes USB-Keyboard übermitteln. Der eigentlich Rechner müßte dann halt auf die Keyboardsequenz reagieren.

Vieleicht hatte ich dich auch nicht ganz richtig verstanden. Willst du den Cubie auch als Rechner zum Abspielen der Musik verwenden oder soll der nur als Vermittler zwischen einem Rechner und dem Taster dienen?

Wenn der Cubie nur Vermittler spielen soll, finde ich den "etwas" überdimensioniert, daher ja die Idee mit dem µC. Den µC bräuchte man nur in einen USB-Port eines Rechners zu stecken, der reicht als Stromversorgung, würde den µC dann sofort booten und aktivieren.
Aber falls du oder sonstjemand das fuer mich mit einem Microcontroller umsetzen und mir fertig zukommen lassen will, waere ich natuerlich auch nicht abgeneigt. ;-)
Das Pythonprogramm, das ich zum eingeben der Passphrase zum Entsperren eines LUKS-Containers geschrieben habe, würde sich anbieten. Das wartet auf einen GPIO-Pin und sendet dann eine Zeichenkette kodiert als Tastaturanschläge zum USB-Port des Rechners. Was der Rechner dann mit den Tastenanschlägen macht, liegt ganz in deiner Hand.
Letztlich soll per Knopfdruck ein zufaelliges Musikstueck aus einem Verzeichnis mit MP3-Dateien gespielt werden.
Man könnte hier z.B. den String "runrandommusic.sh<Enter>" übertragen. Deine Rechner würde dann einfach das Skript "runrandommusic.sh" ausführen.

Man kann natürlich auf den µC verzeichten und die Musik mit direkt mit dem Cubie abspielen. Die GPIO-Pins kann man z.B. mit der C-Bibliothek "WringPI" oder auch mit Python abfragen. Dazu müßte man nur ein Programm schreiben, das in einer Endlosschleife auf GPIO-Events wartet und dann eine beliebige Aktion ausführt. Code-Beispiele findet man dazu reichlich im Internet.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 07.11.2024 09:55:19

chrbr hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:43:17
Meiner Meinung nach besteht das Hauptproblem darin, nichts kaputt zu machen. Wie weit sollen der Schalter und der Rechner mit den GPIOs voneinander entfernt sein? Wenn sie praktisch zusammen liegen, dann kann man die Hardware einfach halten. Beim Raspberry kann man über die Shell den Zustand der GPIOs auslesen.

Wenn Schalter und Rechner weiter entfernt sind, dann ist die Methde mit der Maus nicht schlecht. Im Zweifelsfall geht nur die Maus kaputt.
Wie meinst du das mit dem Kaputtgehen? Was koennten da denn aus welchen Gruenden kaputt gehen? (Auf diesen Gedanken waere ich gar nich gekommen.)

Der Abstand werden wohl 3-5 Meter sein, maximal 10m.
chrbr hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:43:17
Die Idee kann man noch weiter spinnen. Ausprobiert habe ich das noch nicht, aber man könnte einen Billigst-Switch über ein Ethernet-Kabel mit dem Rechner verbinden. Hat der Billigst-Switch Spannung, dann sollte man das IMHO am Link Signal der Ethernet-Schnittstelle ablesen können. Das wäre mit Kanonen auf Spatzen geschossen und vielleicht auch langsam. Dafür wäre das hardwareseitig eine sehr robuste Lösung.
Eine abgefahrene Idee. :-D

MSfree hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:44:02
Vieleicht hatte ich dich auch nicht ganz richtig verstanden. Willst du den Cubie auch als Rechner zum Abspielen der Musik verwenden oder soll der nur als Vermittler zwischen einem Rechner und dem Taster dienen?
Er soll schon auch gleich die Musik abspielen. Ich wuerde also gerne das Tastersignal direkt an dem Computer auslesen, der die Musik spielt. Im besten Fall waere das der Cubietruck, weil der sowohl klein und stromsparend als auch schon genug ``richtiger'' Computer ist.

Als reiner Vermittler waere er natuerlich zu fett, da stimme ich dir zu.

Wenn die GPIO-Pins direkt ins Dateisystem gemappt sind, waere mir das am liebsten, aber wenn nicht, dann waere so eine GPIO-Bibliothek wohl der richtige Ansatz (wenn ich mich fuer GPIO entscheide).
Use ed once in a while!

chrbr
Beiträge: 624
Registriert: 29.10.2022 15:53:26

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von chrbr » 07.11.2024 10:08:20

Meillo hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:55:19
Wie meinst du das mit dem Kaputtgehen? Was koennten da denn aus welchen Gruenden kaputt gehen? (Auf diesen Gedanken waere ich gar nich gekommen.)

Der Abstand werden wohl 3-5 Meter sein, maximal 10m.
Die GPIO Ports sind relativ empfindlich gegenüber Überspannungen. Die können entstehen, wenn man statisch aufgeladen ist und dann nahe an eine Leitung kommt, die zu einem GPIO führt. Bei einer langen Anschlussleitung sollte man auf jeden Fall Schutzdioden in Richtung 3.3V und Masse vorsehen und die Leitung über einen Widerstand und Kondensator nach Masse anschließen. Noch besser wäre ein Optokoppler.

Als Beispiel geht es in https://www.mikrocontroller.net/topic/427877 um einen Analog-Eingang. Da ist es etwas schwieriger, weil man das Signal nicht verfälschen will. Bei Dir geht es ja nur um an oder aus. Jedenfalls sollte die Diskussion einen ersten Eindruck geben.

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von hikaru » 07.11.2024 10:20:12

Als Eingabegerät könnte man auch ein USB-Numpad verwenden. [1] Die gibt es sowohl kabelgebunden als auch per Funk und man könnte über ein Dutzend verschiedene Musiktitel auf die Tasten legen.

[1] https://geizhals.de/?cat=hweinnump&xf=18565_PC

chrbr
Beiträge: 624
Registriert: 29.10.2022 15:53:26

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von chrbr » 07.11.2024 10:23:37

Jetzt habe ich eine noch beknacktere Idee. Eine Bluetooth-Maus kostet ja auch recht wenig. Damit könnte man das sogar drahtlose relalisieren. Die Reichweite müsste man testen. Als Nachteil hätte man den Batteriebetrieb. Der riesen Vorteil ist der, dass man keine sonstige Hardware brauch. Von der Platzierung der Komponenten her wäre man damit sogar in Grenzen relativ flexibel. Der WAF ist auch sehr hoch - falls das eine Rolle spielen sollte :-).

EDIT hikaru war schneller, die Idee ist aber noch besser.

Benutzeravatar
MSfree
Beiträge: 11605
Registriert: 25.09.2007 19:59:30

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von MSfree » 07.11.2024 10:36:55

Meillo hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 09:55:19
Wenn die GPIO-Pins direkt ins Dateisystem gemappt sind, waere mir das am liebsten, aber wenn nicht, dann waere so eine GPIO-Bibliothek wohl der richtige Ansatz (wenn ich mich fuer GPIO entscheide).
Ich habe bei meinen Experimenten immer dieses WiringPI verwendet. Damit kann man auf GPIO eventbasiert reagieren. Sonst müßte man die GPIO-Pins pollen, was sehr ineffizient ist und die CPU stark auslastet.
chrbr hat geschrieben: ↑ zum Beitrag ↑
07.11.2024 10:08:20
Die GPIO Ports sind relativ empfindlich gegenüber Überspannungen. Die können entstehen, wenn man statisch aufgeladen ist und dann nahe an eine Leitung kommt, die zu einem GPIO führt.
Ich wäre da nicht so ängstlich. Bei isoliertem Klingeldraht wirst du durch statische Aufladung keine so großen Spannungen induzieren können, daß der Port flöten geht. Ein Taster speist ja auch keine Spannung ein, der dient ja nur, um den Stromkreis zu schließen.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 02.12.2024 08:09:15

Ein Update:

Nun habe ich bei einer alten Maus ein Kabel an die Kontakte des Tasters fuer die mittlere Maustaste geloetet. Das hat gut funktioniert. Ueber einen Klingeldraht habe ich dort einen externen Taster angeschlossen und kann damit am Computer die mittlere Maustaste ausloesen. :-)

Die Entkopplung der externen Hardware von der Computerplatine ueber die Maus gefaellt mir zunehmend.


Das Stromversorgungskabel fuer den Cubietruck habe ich inzwischen auch wieder gefunden. ;-)

Das Cubian, das ich damals auf einer MicroSD-Karte darauf laufen hatte, ist wegen Kartenfehlern irgendwann kaputt gegangen. Ich bin mir nicht sicher, ob ich das auf die Schnelle auf einer neuen Karte wieder zum Laufen bekomme. Auf dem NAND-Speicher ist aber auch noch das urspruengliche System drauf, das ich nie verwendet habe. Ich denke, ich werde es mal damit versuchen.

Viel brauche ich ja nicht:
- Bei Mausklick ein Script aufrufen
- Im Script eine Musikdatei abspielen

Ich halte euch weiter auf dem Laufenden.
Use ed once in a while!

Benutzeravatar
hikaru
Moderator
Beiträge: 13911
Registriert: 09.04.2008 12:48:59

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von hikaru » 02.12.2024 09:09:23

Inspiriert durch diesen Thread habe ich nach @scheich's (aktualisierter) Anleitung versucht, Bookworm auf mein Cubieboard 2 zu bringen. Allerdings war die so erstellte µSD-Karte nicht bootfähig.

Colttt
Beiträge: 3012
Registriert: 16.10.2008 23:25:34
Wohnort: Brandenburg
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Colttt » 02.12.2024 10:20:10

Also ich würde ein Shelly 1 (nutze ich bei mir vermehrt im Haus) nehmen, den Taster da anschliessen und dann sagen wenn jemand den drückt dann mache "webhook" oder, wenn 2mal raufdrücken dann mach nächstes lied usw.. dann musst du nur dafür sorgen das da nen webserver läuft und wenn da jemand ankommt mit dem und den Befehl dieses oder jenes passiert
Debian-Nutzer :D

ZABBIX Certified Specialist

Benutzeravatar
king-crash
Beiträge: 740
Registriert: 08.08.2006 12:07:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von king-crash » 02.12.2024 10:48:15

Mit einem Seriell-USB Wandler sollte sich das auch recht einfach und sehr kostengünstig lösen lassen. Sobald ein Pegelwechsel von High auf Low am RX Pin stattfindet wird ein Byte empfangen. Das muss dann nur Softwareseitig etwas entprellt werden.

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 02.12.2024 13:12:00

So Smarthome-Zeug ist mir zu kompliziert. ;-) Ich will nur Technik einsetzen, die ich auch verstehe. Im besten Fall will ich mir auch nichts kaufen muessen, sondern komme mit dem Zeug aus, das ich schon habe. Aber fuer andere Personen, die diesen Thread vielleicht mal finden, ist der Hinweis wertvoll, darum danke.

Den Hardwareschalter habe ich mit der Maus nun geloest. Ich finde diese Umsetzung sehr gut, weil sie alles Lowlevel-Zeug wegabstrahiert und an beliebigen Computern ohne Spezialsoftware genutzt werden kann. Die kann ich also auch zukuenftig mal fuer irgendwelche Projekte nutzen. Ich muss einfach nur diese modifizierte Maus am USB einstecken und kann dann das Signal der mittleren Maustaste beliebig nutzen. Bequemer geht's kaum.

Nun habe ich den Cubietruck mal angeschlossen. Die alte MicroSD-Karte funktioniert, wie vermutet, nicht mehr. (Ich kann sie an einem anderen Rechner zwar mounten und draufschauen, aber recht schnell kommen allerhand Lesefehler.) 2017 hatte ich davon mal mit dd ein Image gezogen (das wohl vollstaendig zu sein scheint), das dann aber nicht auf eine neue gleich grosse Karte drauf gepasst hat (wegen ein paar Megabytes). Irgendwas hat dann aber beim Resize oder mit dem Image selbst oder mit dem Booten doch nicht geklappt, wodurch ich es dann gelassen habe. Genau weiss ich es leider nicht mehr . Diese neue MicroSD-Karte habe ich bisher noch nicht gefunden. Ich denke, ich werde mir nun nochmal einen neu, groessere Karte kaufen und erneut versuchen, das Image dort wieder aufzuspielen.

Auf dem verloeteten NAND-Speicher ist ein Android installiert, das dort schon immer drauf war. Das kann ich zwar booten, aber ich schaffe es nicht, da irgendwie ein Terminal zu oeffnen ... damit ist das System natuerlich voellig unbrauchbar. :-D Selbst wenn ich ein Terminal hinbekommen wuerde, werde ich darauf sicherlich nicht normal arbeiten koennen. Ich muss ja z.B. auch Software installieren und kompilieren koennen ...

Falls es mit dem Aufspielen des alten Images auf eine neue Karte nicht klappen sollte, dann wuerde ich nach irgendeiner Anleitung nochmal versuchen, ein neues System aufzusetzen. Das alte Image wuerde halt schon alles beinhalten, was ich brauche. Das waere am besten und darum mein erster Ansatz. Aber, mal sehen ...
Use ed once in a while!

Benutzeravatar
GregorS
Beiträge: 3144
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von GregorS » 02.12.2024 13:38:36

Meillo hat geschrieben: ↑ zum Beitrag ↑
02.12.2024 13:12:00
So Smarthome-Zeug ist mir zu kompliziert. ;-) ... Aber, mal sehen ...
Ich habe jetzt nicht alles gelesen, aber wenn es darum geht, einen allerbilligst-selbstbau-MP3-Player zu bauen, dann guck mal nach einem „DF-Player Mini“. Das ist ein lächerlich kleines Platinchen, dessen größtes Bauteil ein Mikro-SD-Karten-Schacht ist.
Auf der SD-Karte liegen IIRC beliebige MP3-Dateien, die mit simplen Tasten-Drücken abgespielt werden. Es stehen div. Wiederhol- und Zufalls-Modi sowie Tasten-Anschlüsse für Steuertasten zur Verfügung.
Das Platinchen ist kleiner als eine Zwei-Euro-Münze und benötigt wenig Energie. Auf einem Steckbrett ist damit in 10 Minuten ein MP3-Player aufgebaut.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 02.12.2024 14:08:19

GregorS hat geschrieben: ↑ zum Beitrag ↑
02.12.2024 13:38:36
Ich habe jetzt nicht alles gelesen, aber wenn es darum geht, einen allerbilligst-selbstbau-MP3-Player zu bauen, dann guck mal nach einem „DF-Player Mini“. Das ist ein lächerlich kleines Platinchen, dessen größtes Bauteil ein Mikro-SD-Karten-Schacht ist.
Auf der SD-Karte liegen IIRC beliebige MP3-Dateien, die mit simplen Tasten-Drücken abgespielt werden. Es stehen div. Wiederhol- und Zufalls-Modi sowie Tasten-Anschlüsse für Steuertasten zur Verfügung.
Das Platinchen ist kleiner als eine Zwei-Euro-Münze und benötigt wenig Energie. Auf einem Steckbrett ist damit in 10 Minuten ein MP3-Player aufgebaut.
Vielleicht haettest du doch meinen ersten Post lesen sollen, um zu verstehen, was ich suche. ;-)

Ein MP3-Player waere insofern ein Ansatz, wenn der so wenig integriert waere, dass ich da Kabel an die Knoepfe loeten koennte. In der Praxis wird der aber nicht funktionieren, denn das Geraet darf nicht automatisch ausschalten, sondern muss tagelang am Stueck laufen. Es soll auf Knopfdruck genau ein zufaelliges Lied spielen, oder alternativ an jedem Tag der Installation das jeweils fuer diesen Tag ausgewaehlte Lied. Sowas laesst sich einfach in der Shell programmieren aber kaum mit einem fertigen MP3-Player umsetzen. Daher ueberzeugt es mich weiterhin, einen ganz normalen Computer zu verwenden.

Die Hardwarefrage bzgl. des Tasters ist schon geloest. Nun will ich den Cubietruck zum Laufen bekommen. Falls das nicht geht, koennte ich auch einfach einen x-beliebigen Desktop-Rechner hinstellen ... der braucht halt mehr Strom, ist groesser und den will ich nicht ausser Haus stehen haben. ... ein paar Tage zum Rumprobieren habe ich aber noch Zeit, bis es laufen muss.
Use ed once in a while!

Benutzeravatar
GregorS
Beiträge: 3144
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von GregorS » 02.12.2024 14:26:03

Meillo hat geschrieben: ↑ zum Beitrag ↑
02.12.2024 14:08:19
Vielleicht haettest du doch meinen ersten Post lesen sollen, um zu verstehen, was ich suche. ;-)
... Nun will ich den Cubietruck zum Laufen bekommen.
Ja, Dir scheint's direkt (und nur) um das Cubiedingsda zu gehen.
Mir geht's bei meinem Vorschlag um ein Ding, mit dem die Funktionalität mit geschickter Konfiguration mit simpelsten Mitteln umsetzbar sein dürfte. Vielleicht beschreibst Du mal, was konkret am Ende dastehen sollte. Soweit ich es bislang verstehe, ist dafür nichts nötig, das irgendeine Art von Betriebssystem* benötigt.
Hier noch ein Link zum Ding: https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

*zumindest kein BS im herkömmlichen Sinne
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
Meillo
Moderator
Beiträge: 9241
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von Meillo » 02.12.2024 14:45:29

GregorS hat geschrieben: ↑ zum Beitrag ↑
02.12.2024 14:26:03
Mir geht's bei meinem Vorschlag um ein Ding, mit dem die Funktionalität mit geschickter Konfiguration mit simpelsten Mitteln umsetzbar sein dürfte. Vielleicht beschreibst Du mal, was konkret am Ende dastehen sollte.
Gerne:

Es geht um eine Musikabspielstation. Als einzige Eingabe gibt es einen grossen Aufputztaster, wie man in als Lichtschalter kennt. Zur Ausgabe werden Computerboxen verwendet. Auf der Hardwareseite ist also die Herausforderung, den Tastendruck ins System zu bekommen. Mit der modifizierten Maus habe ich das bereits loesen koennen.

Das System soll verschiedene Anwendungsfaelle abdecken koennen. Ihnen allen gemeinsam ist, dass beim Tastendruck eine MP3-Datei gestartet werden soll. Wenn sie vorbei ist, wartet das System wieder bis zum naechsten Tastendruck.

Die Anwendungsfaelle unterscheiden sich in der Frage, wann welches Lied gespielt wird. Diese Regeln sind bereits angedacht:

1) Es wird ein zufaelliges aus einer verfuegbaren Menge an Liedern gespielt.
2) Es wird an jedem Tag eine bestimmte, diesem Tag zugeordnete Datei gespielt.
3) An jedem Tag kommt eine weitere Datei zum Set dazu, es wird dann eine zufaellige der bisher verfuegbaren Dateien gespielt. (Ggf. waere es auch sinnvoll, zu 50% die tagesaktuelle Datei zu spielen und zu 50% eine zufaellig von den Vortagen. Oder zu 90% die tagesaktuelle und zu 10% eine zufaellige, um fuer Aha-Erlebnisse zu sorgen und zu motivieren, es weitere Male zu probieren.)

Die Flexibilitaet, das Verfahren, frei zu gestalten und anpassen zu koennen, haette ich gerne. Es waere einfach cool, hierbei nicht eingeschraenkt zu sein. Mit den ersten beiden Verfahren koennte ich aber auch auskommen.
Use ed once in a while!

Benutzeravatar
GregorS
Beiträge: 3144
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Hardwaretaster einlesen -- GPIO? Cubietruck? Maushack?

Beitrag von GregorS » 02.12.2024 15:16:44

Meillo hat geschrieben: ↑ zum Beitrag ↑
02.12.2024 14:45:29
GregorS hat geschrieben: ↑ zum Beitrag ↑
02.12.2024 14:26:03
Mir geht's bei meinem Vorschlag um ein Ding, mit dem die Funktionalität mit geschickter Konfiguration mit simpelsten Mitteln umsetzbar sein dürfte. Vielleicht beschreibst Du mal, was konkret am Ende dastehen sollte.
... Das System soll verschiedene Anwendungsfaelle abdecken koennen. Ihnen allen gemeinsam ist, dass beim Tastendruck eine MP3-Datei gestartet werden soll. Wenn sie vorbei ist, wartet das System wieder bis zum naechsten Tastendruck.

Die Anwendungsfaelle unterscheiden sich in der Frage, wann welches Lied gespielt wird. Diese Regeln sind bereits angedacht:

1) Es wird ein zufaelliges aus einer verfuegbaren Menge an Liedern gespielt.
2) Es wird an jedem Tag eine bestimmte, diesem Tag zugeordnete Datei gespielt.
3) An jedem Tag kommt eine weitere Datei zum Set dazu, es wird dann eine zufaellige der bisher verfuegbaren Dateien gespielt. (Ggf. waere es auch sinnvoll, zu 50% die tagesaktuelle Datei zu spielen und zu 50% eine zufaellig von den Vortagen. Oder zu 90% die tagesaktuelle und zu 10% eine zufaellige, um fuer Aha-Erlebnisse zu sorgen und zu motivieren, es weitere Male zu probieren.)
Für die ersten beiden Fälle dürfte der DF-Player locker genügen.
Die Flexibilitaet, das Verfahren, frei zu gestalten und anpassen zu koennen, haette ich gerne.
Das ist der Punkt, an dem etwas frei Programmierbares mit cron oder ähnlichem oder gar eine vollkommen frei programmierbare Umgebung (Skripting-Möglichkeiten und Pipapo) glücklich machen würde – z.B. weil man es schnell und unkompliziert anpassen/ändern kann.
Je nachdem, wie genau man die Bedingungen formulieren kann, kann man das aber vielleicht auch mit „schmutzigen Tricks“ umsetzen – damit meine ich z.B. das Aufblasen eines 1-Minuten-Stücks auf 1 Stunde, indem man einfach 59 Minuten Stille hinzufügt.
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Antworten