Arduino - Programmierung

  • Seite 8 von 10
17.07.2023 00:31
avatar  Montre
#106
avatar

Heute Abend habe ich einen Pi1 neu aufgesetzt, aber die Webseite des Autors der wiringPi-Lib war veraltet, so dass ich keine Lib auf dem Pi1 installieren konnte.
Dann einen Pi3 neu aufgesetzt, für den es eine passende Lib gab. Ich musste noch ein IOT-Paket im Visual Studio installieren und dann konnte ich von Windows aus per SSH den Pi verbinden und das mitgelieferte Test-Programm Blink debuggen. Als nächstes werde ich den Pico und ein paar Chips zum Erfahrung sammeln bestellen.


 Antworten

 Beitrag melden
17.07.2023 00:40
#107
avatar

Berichte gerne einmal. Ich würde dir zum Anfang zu einem Set raten wie diesem hier https://www.berrybase.de/raspberry-pi-pico-full-starter-kit

Bedenke nur, dass du beim Pico die Stiftleisten selber anlöten musst. Das ist nicht so schwer, aber als erste Lötübung eher schwierig :) Es gibt auch Picos mit Stiftleisten, aber dann zahlst du dafür, dass es jemand gemacht hat einen Aufpreis.


 Antworten

 Beitrag melden
17.07.2023 00:45
avatar  Montre
#108
avatar

Ich habe schon einige Sachen von einer früheren Bestellung (Breadboard, Widerstände, LEDs, div. Kabel). Ich werde einen Pico H kaufen.


 Antworten

 Beitrag melden
17.07.2023 01:48
#109
avatar

Das ist ein gutes Angebot.


 Antworten

 Beitrag melden
17.07.2023 06:19
#110
So

Zitat von Christian_Hofmann im Beitrag #107
Es gibt auch Picos mit Stiftleisten, aber dann zahlst du dafür, dass es jemand gemacht hat einen Aufpreis.

Was völlig ok ist, wenn mir für Dinge Übung oder Zeit fehlen. So funktioniert die Welt: man kauft sich mit Geld die Zeit anderer.


 Antworten

 Beitrag melden
20.07.2023 18:39 (zuletzt bearbeitet: 20.07.2023 18:40)
avatar  Montre
#111
avatar

Im US-Forum ist ein User leidgeprüft und schreibt, das er naiv gewesen sei, zu glauben, dass eine 23 EUR-Arduino-Lösung eine 230 EUR-Hardware von Midi-Boutique ersetzen könnte.

Seine Hardware hwce2x von einem anderen Projekt funktioniert und die will er sich jetzt nochmal kaufen. Möglicherweise gibt es Probleme mit der Stromversorgung.


 Antworten

 Beitrag melden
20.07.2023 19:00
#112
avatar

Zitat von Montre im Beitrag #111
dass eine 23 EUR-Arduino-Lösung eine 230 EUR-Hardware von Midi-Boutique ersetzen könnte.


Das Problem wird dann wohl auf der Seite des Nutzers liegen. Die 230 Euro Hardware wird unterm Strich ähnliche Hardware nutzen, die den Hersteller wohl weniger als 23 Euro kostet. Controller, Speicher und etwas Hühnerfutter. Der hohe Preis kommt primär zustande, weil sich das jemand hingesetzt hat und eine funktionierende Software geschrieben hat.

Wenn man einmal schaut was Profis mit dem Arduino umsetzen, dann wirkt das Anfragen eines Schalter wie ein schlechter Scherz und wenn jemand mit dem Arduino ganze Produktionslinien steuert und überwacht, dann wird eigentlich klar, dass der User wohl das Problem sein muss...


 Antworten

 Beitrag melden
20.07.2023 19:54
avatar  Montre
#113
avatar

Die Software kommt von Iarason2. Der weiß allerdings nicht, dass es Schleifenkonstrukte gibt. Da schreibt er hunderte von Zeilen unnötigen Code...


 Antworten

 Beitrag melden
20.07.2023 20:16
#114
avatar

Oha, ich habe mir den Code mal angesehen... Hätte ich damals in der Ausbildung so etwas abgeliefert, dann hätte mein Dozent den Code ausgedruckt und mich damit erschlagen...

Wer so was schreibt, der hat sich dafür qualifiziert eine fertigte Lösung zu kaufen. So ein Konstrukt ist in keinster Art und weiße mehr wartbar oder zu Debuggen... Aber durchaus eine gute Leistung zum Abfragen einer 8x8 Matrix rund 5.000 Zeilen Code zu brauchen. Setzen Note 6- und ein Eintrag auf der Sperrliste für alle Programmieraufgaben


 Antworten

 Beitrag melden
20.07.2023 21:00
#115
So

Auf der Suche nach einem Arduino Code für 8x8 Matrix Scan im MIDI-Umfeld bin ich aber auch an dem Code vorbeigekommen. Genau den habe ich für meinen Matrix-Code auch als Grundlage genommen, jedoch teilweise stark verkürzt (durch zwei For-Schleifen) und hätte ihn sogar noch weiter verkürzen können. Ich hatte auch vergleichbare Probleme. Die Ursachen waren sowohl technischer, als auf Software-Natur.

Das technische Problem war eine ähnliche Steckerlösung, wie sie auch der Kollege verwendet: Flachbandkabel mit aufgecrimptem 2-reihigen Stecker. Ich hatte alles verlötet und angesteckt, probiere es mit dem Due aus und werde beim ersten Test fast verrückt, weil ich nicht nur "Ghosting" habe (also wilde Töne, wie er auch beschreibt), sondern die Tastenzuordnung zu den Tönen völlig verquer durcheinander geraten war. Nach einiger Suche stellte ich fest, dass bei einem der Flachbandkabel ein Stecker falschherum gecrimpt war. Dadurch war die Pinbelegung spiegelverkehrt.

Das "Ghosting" hing tatsächlich mit Prellen zusammen. Entprellzeiten hier und da im Mikrosekundenbereich brachten da schon deutliche Besserung. Zum Schluss gab noch der Hinweis von Christian mit den 300 µs Delay vor (oder nach?) dem Flush-Befehl den Ausschlag.

Ich würde also dagegen halten und sagen: ein 25€ Arduino Due kann sehr wohl die 250€ MIDI Hardware ersetzen. Man muss nur genügend eigene Zeit, Recherche und Sparring in Foren investieren. Kann oder will man das nicht, kauft man sich halt für einen höheren Preis nicht nur Hardware, sondern auch die Zeit von anderen.


 Antworten

 Beitrag melden
20.07.2023 22:22
#116
avatar

Zitat von Brassmann im Beitrag #115
ein 25€ Arduino Due kann sehr wohl die 250€ MIDI Hardware ersetzen.

Ist zwar nicht das Thema, aber was alles geht zeigt ja https://openbionics.com/dach/ Prothesen mit einem Arduino. Hier weiterführend https://github.com/Open-Bionics und hier https://www.wevolver.com/specs/open-bion...thetic-research

Die Grenze ist eigentlich nur die Fähigkeit der Anwender.


 Antworten

 Beitrag melden
22.07.2023 18:51 (zuletzt bearbeitet: 22.07.2023 18:53)
avatar  Montre
#117
avatar

Zitat von Christian_Hofmann im Beitrag #114
Oha, ich habe mir den Code mal angesehen... Hätte ich damals in der Ausbildung so etwas abgeliefert, dann hätte mein Dozent den Code ausgedruckt und mich damit erschlagen...

Wer so was schreibt, der hat sich dafür qualifiziert eine fertigte Lösung zu kaufen. So ein Konstrukt ist in keinster Art und weiße mehr wartbar oder zu Debuggen... Aber durchaus eine gute Leistung zum Abfragen einer 8x8 Matrix rund 5.000 Zeilen Code zu brauchen. Setzen Note 6- und ein Eintrag auf der Sperrliste für alle Programmieraufgaben


Ich habe spaßeshalber seine Abfrage-Logik inkl. Pins u.a. refaktoriert - ein kleines RaspPi-Programm in C.
Man kann mindestens 4/5tel bis 5/6 des Larason-Codes bei gleichbleibender Funktionalität entsorgen.

Mein Code:
11 Zeilen: void readKeys(int pin, int key, byte kb[8][8], byte pins[8])
26 Zeilen: void readAllKeys()
19 Zeilen: void writeKeys(int& note, int noteOn, int noteOff, int key, byte kb[8][8], byte kbLast[8][8])
18 Zeilen: void writeAllKeys()
---
74 Zeilen inkl Leerzeilen (ohne Logging-Zeilen)
Im Release ein 18 KB Binärfile für den RaspPi.

Wenn sich jemand für eine platzsparende Code-Variante interessiert, dann kann ich das hier gerne posten.

Was mir aufgefallen ist:
- im Code sind keine Pausen/Sleeps enthalten
- die lastXXX-Arrays werden nicht initialisiert. Das ist unsauber und kann potentiell zu Fehlern führen.
- die MidiCodes für 5 Manuale gehen von 36-96. Der Code fragt aber bis 99 ab.
- Die Indicies [5] bis [7] von keysA/B/C/D (= 97, 98, 99) sind zu hinterfragen:
-- keysA[7][7] = 99 wird ausgewertet aber nie initialisiert
-- keysB[7][7] = 99 wird von Pin 36 gelesen. Was soll das sein?
-- keysC[7][7] = 99 wird von Pin 39 gelesen. Was soll das sein?
-- keysD[7][7] = 99 wird von Pin A12 gelesen. Was soll das sein?


 Antworten

 Beitrag melden
22.07.2023 18:56
#118
avatar

Zitat von Montre im Beitrag #117
-- keysB[7][7] = 99 wird von Pin 36 gelesen. Was soll das sein?
-- keysC[7][7] = 99 wird von Pin 39 gelesen. Was soll das sein?
-- keysD[7][7] = 99 wird von Pin A12 gelesen. Was soll das sein?

Na, wenn solche Dinge nicht die Ursachen dafür sind, dass etwas nicht funktioniert wie es soll. Ich frage mich wie viele Tage er an dem Code gesessen hat. Das wird doch nur eine STRG-V und Zahlen anpassen Orgie gewesen sein... Nicht unwahrscheinlich, dass dort irgendwo sich Zahlendreher eingeschlichen haben. Aber selbst wenn, man wird sie nicht finden können. Eigentlich ist so ein Programm für einen erfahrenen Programmiere eine Sache die schneller beendet ist, als die Tasse Kaffee leer ist.


 Antworten

 Beitrag melden
22.07.2023 20:12 (zuletzt bearbeitet: 22.07.2023 20:13)
avatar  Montre
#119
avatar

Das schlimme ist, das andere Anfänger den Code weiter verwenden und dann verzweifeln, wenn was nicht funktioniert. Naja, ich habe das mal im US-Forum gepostet. Den Code könnte man weiter vereinfachen, wenn da diese wilde Verkabelung nicht wäre (er hat sich die Sache schwerer als nötig gemacht). Für Note OnOff verwendet er für jedes Manual andere Midi-Codes, was auch nicht gerade so sinnvoll ist (das kostete mich zwei zusätzliche Parameter).
Kann man auf dem Arduino auch C++-Konstrukte verwenden (nicht nur C)? Dann könnte man den Code ggf. noch verständlicher verpacken.


 Antworten

 Beitrag melden
22.07.2023 21:35
#120
So

Was sind für dich C++ Konstrukte?

Hilft dir das hier weiter? https://www.arduino.cc/reference/de/


 Antworten

 Beitrag melden
Bereits Mitglied?
Jetzt anmelden!
Mitglied werden?
Jetzt registrieren!