Arduino - Programmierung

  • Seite 4 von 10
05.07.2023 22:56
#46
So

Zitat von Montre im Beitrag #44
Aber die werden mir doch nicht Pins anbieten, die ich nicht abfragen kann (?). Das Handbuch dazu wäre ganz hilfreich.
Der 2560 ist schon ziemlich leistungsfähig, wenn ich mir das in der Tabelle hier so anschaue.

Du hast beim Mega 54 digitale I/O Pins plus 16 analoge Pins, die du auch als digitale verwenden kannst. Mehr Pins als beim Mega geht wirklich nicht.

Datenblatt und alle weiteren Infos:
https://docs.arduino.cc/hardware/mega-2560


 Antworten

 Beitrag melden
05.07.2023 23:01
avatar  Montre
#47
avatar

Die beschrifteten Pins finde ich ziemlich cool.


 Antworten

 Beitrag melden
05.07.2023 23:01
#48
So

Wie Christian schon sagte, kannst du alle Spalten aktiv setzen und dann die einzelnen Manuale abfragen. Dadurch hättest du 8x8 mal 4. Eine der "8" wäre aber für jedes Manual gleich, sodass du 4x8 Pins brauchst plus 1x8. Das wäre die Standardkonfiguration der Fatar-Manuale. Danach wären immernoch ca. 20 Pins übrig, um eine weitere Matrix für Registerschalter o.ä. abzufragen.


 Antworten

 Beitrag melden
05.07.2023 23:04
avatar  Montre
#49
avatar

Ihr seid da schon fit im Thema, bei mir fängt da schon das Hirn an zu rattern .


 Antworten

 Beitrag melden
05.07.2023 23:06
#50
So

Ich mach dir morgen ne Zeichnung ;-)

Gute Nacht.


 Antworten

 Beitrag melden
05.07.2023 23:10
#51
avatar

Um anzufangen würde ich dir raten z.B ein altes Keyboard zu nehmen oder bei den Kleinanzeigen für ein paar Euro zu kaufen und die Matrix von dort einmal nutzbar zu machen. Oder alternativ eine Tastatur, diese ist auch nur eine Matrix und liegt bestimmt ungebraucht bei dir im Schrank :) So was ist überschaubar und du kannst nichts kaputt machen. Gleich ein Verbund abzufragen ist nämlich eine Herausforderung und selbst ich hätte da Respekt vor der Aufgabe.

Im Prinzip kann man aber nicht viel falsch machen. Die Arduinos sind eigentlich gut geschützt, dass schlimmste was du anrichten könntest wäre ein Kurzschluss mit den Pins die Spannung haben. Gefährlich wird es vor allem wenn du mit Strömen anfängst, die nicht vom Arduino selber stammen.


 Antworten

 Beitrag melden
05.07.2023 23:14
#52
So

Das mit dem probieren ist eine gute Idee. Die M Audio Keystation 61 haben die gleiche Matrix Schaltung wie Fatar. Da kannst du gut mit üben. Gibt es günstig bei Kleinanzeigen. Wenn du es auseinander nimmst hast du das, was ich auch hier im Thread gepostet habe. Da kannst du einen Arduino anstecken und loslegen. Da geht nichts kaputt.


 Antworten

 Beitrag melden
05.07.2023 23:26
#53
avatar

Das ist eine gute Idee. Im ersten Schritt die Matrix zum laufen bekommen und im zweiten Schritt für das Bienchen unter der Arbeit dann die Anschlagdynamik umsetzen... Ja das ist eine harte Nuss :)


 Antworten

 Beitrag melden
05.07.2023 23:32 (zuletzt bearbeitet: 06.07.2023 00:07)
avatar  Montre
#54
avatar

Hier gibt es ein preislich attraktives Modell: https://www.roboter-bausatz.de/p/mega-2560-r3-board
Da ist direkt der Treiber zum Downloaden.

Ich könnte aber für den Test der Dioden-Matrix auch einen RaspPi 3 B+ nehmen, den ich hier noch rumliegen habe.

Ich möchte mit einem Testaufbau starten. Ich muss mir noch ein paar Hall-Sensoren mit Magneten besorgen und Dioden für die Matrix.
Von AZ hatte ich vor längerer Zeit schon ein Breadboard, Widerstände (Resistor-Kit) und ein LED-Kit gekauft.

Ich will mir dann ein Hilfsmittel bauen, womit ich dann mehrere Hall-Sensoren gleichzeitig ansprechen kann, was dann einen Tastendruck (oder mehrere) simuliert.

Wenn man ein Ethernetshield verwendet, wie hier angeboten wird, reduziert das die Anzahl der I/O-Pins? Oder bietet mir das Ethernetshield Ersatzpins an? Hier steht "Erweitert den Arduino über 10-Pin Buchsenleiste". Hört sich so an, als wenn ich dafür 6 I/O-Pins (8-13) opfern müsste (das ist die 10-Pin-Leiste).


 Antworten

 Beitrag melden
06.07.2023 00:50
#55
avatar

Zitat von Montre im Beitrag #54
Hier gibt es ein preislich attraktives Modell

Sei mit so etwas vorsichtig. Diese Nachbauten sind oft nicht zu 100% kompatibel und selbst wenn augenscheinlich alles funktioniert, dann ist immer die Frage wie zuverlässig es auf Dauer läuft. Wegen 10 Euro würde ich jetzt nicht dieses Risiko eingehen.

Zitat von Montre im Beitrag #54
Ich könnte aber für den Test der Dioden-Matrix auch einen RaspPi 3 B+ nehmen, den ich hier noch rumliegen habe.

Das geht, aber dein Programm würde dir mit einem Arduino wenig nützen. Auf dem Raspberry Pi wirst du mit Python programmieren und Python funktioniert auf einem Raspberry komplett anders. Dann wäre vielleicht ein Pi Pico für 6 Euro eine Alternative. Dort könntest du die Grundlogik deines Python Programms dann übernehmen.

Zitat von Montre im Beitrag #54
Hall-Sensoren

Hall-Sensoren sind etwas anders als Reed Kontakte. Je nach Art sind diese entweder digital oder analog auszulesen. Außerdem wird es je nach Ausführung im Zweifel mit einer Matrix dann nicht funktionieren, oder nicht so einfach wie mit einem gewöhnlichen Schalter.

Hallsensoren gibt es übrigens auch als SPI Module. Diese könntest du entsprechend verschallten, damit jeder seine feste ID hat und dann wäre das Thema Matrix schon erledigt, da du dann jeden einzeln abfragen könntest.


 Antworten

 Beitrag melden
06.07.2023 08:53
avatar  Bkoeln
#56
avatar

Leider habe ich selbst noch keine praktische Erfahrung mit der arduino Programmierung.
Wenn ich mir die Schaltung von ging anschaue kann ich aber erkennen,daß hier die data Leitungen geteilt werden. Also 8 Inputs. Die clock Leitungen sind 3bit codiert und werden auf der Schaltung mit einem3-8 Decoder erst decodiert. In gleicher Weise sind 8 Channels codiert.
Also 8 Inputs und 6 Outputs macht 14 Leitungen für 8x8x8 = 512 Schaltnöglichkeiten
Gruß Bernd


 Antworten

 Beitrag melden
06.07.2023 08:57
avatar  Bkoeln
#57
avatar

Nebenbei. Hat einer von euch Erfahrungen wie man einen Atmega Chip auslesen kann? Würde mir gerne eine Sicherung davon erstellen


 Antworten

 Beitrag melden
06.07.2023 11:57
#58
So

Zitat von Christian_Hofmann im Beitrag #53
Das ist eine gute Idee. Im ersten Schritt die Matrix zum laufen bekommen und im zweiten Schritt für das Bienchen unter der Arbeit dann die Anschlagdynamik umsetzen... Ja das ist eine harte Nuss :)

Wofür Anschlagsdynamik? Diese "zweite" Matrix hab ich ignoriert, ich brauche doch bei einer Orgel nur On/Off.

Zitat von Montre im Beitrag #54
Hier gibt es ein preislich attraktives Modell: https://www.roboter-bausatz.de/p/mega-2560-r3-board
Da ist direkt der Treiber zum Downloaden.

Wie sagt man so schön: auch Porsche-Fahrer (i9 13900+ mit Nachbrenner) fahren zum Lidl. Aber ganz ehrlich, mach es nicht. Da sind dann andere Komponenten drauf, oder welche fehlen. Der China-Kram ist nicht das gleiche wie der Arduino aus Italien. Oben hatte ich ein Angebot für 20€ gepostet, ist doch ein super Deal.

Zitat von Bkoeln im Beitrag #57
Nebenbei. Hat einer von euch Erfahrungen wie man einen Atmega Chip auslesen kann? Würde mir gerne eine Sicherung davon erstellen

Theoretisch geht das, aber das Ergebnis dürfte nicht zu verwerten sein. Soweit ich das im Arduino-Forum gelesen habe, übersetzt/kompiliert die IDE ein geschriebenes Programm in binäre Nullen und Einsen. Das ist mit Bordmitteln nicht rückwärtskompatibel. Ein richtiger Crack kriegt da vlt. was hin.

Ich habe ein festes System, wie ich Programme auf einen Arduino schiebe. Das zuletzt drauf gespielte ist bei mir besonders markiert, sodass ich immer genau weiß, was ich wo drauf habe. So gesehen ist es so auch gesichert.


 Antworten

 Beitrag melden
06.07.2023 12:14
#59
avatar

Zitat von Brassmann im Beitrag #58
Wofür Anschlagsdynamik? Diese "zweite" Matrix hab ich ignoriert, ich brauche doch bei einer Orgel nur On/Off.

Einfach nur als Projekt zum Üben. Auch wenn man es nicht für eine Orgel braucht, da würde er vor einigen echten logischen Problemen stehen,. Wenn er eine Anschlagdynamik sauber zum laufen bekommt, dann hat er die Programmierung verstanden. Wobei es durchaus nicht schaden kann eine solche Funktion zu haben. Es kann ja immer mal vorkommen, dass man mal ein Klavierstück spielen möchte oder mit einer anderen Klangerzeugung etwas machen möchte. Da würde sich der Spieltisch ja anbieten.

Zitat von Brassmann im Beitrag #58
Theoretisch geht das, aber das Ergebnis dürfte nicht zu verwerten sein. Soweit ich das im Arduino-Forum gelesen habe, übersetzt/kompiliert die IDE ein geschriebenes Programm in binäre Nullen und Einsen. Das ist mit Bordmitteln nicht rückwärtskompatibel. Ein richtiger Crack kriegt da vlt. was hin.

Das einzige was man dabei auslesen könnte, wäre der kompilierter Code. Diesen könnte man dann durch einen Disassembler jagen, sofern es einen für Arduino Programme gibt. Dann hätte man aber einen Code in dieser Form:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
; Disassembly of AsmExample.bin (avr-gcc style)
 
.text
main:
rjmp Label4
nop
nop
nop
 
; Referenced from offset 0x1c by brne
; Referenced from offset 0x2a by rcall
; Referenced from offset 0x32 by rcall
Label1:
ser r29
 
; Referenced from offset 0x16 by brne
Label2:
ser r30
 
; Referenced from offset 0x10 by brne
Label3:
dec r30
cpi r30, 0x00 ; 0
brne Label3
dec r29
cpi r29, 0x00 ; 0
brne Label2
dec r31
cpi r31, 0x00 ; 0
brne Label1
ret
 

; Referenced from offset 0x00 by rjmp
; Referenced from offset 0x36 by rjmp
Label4:
ser r31
out DDRB, r31
 
; Referenced from offset 0x34 by rjmp
Label5:
ldi r31, 0x14 ; 20
out PORTB, r31
ldi r17, 0xc8 ; 200
rcall Label1
ldi r31, 0x0c ; 12
out PORTB, r31
ldi r17, 0x64 ; 100
rcall Label1
rjmp Label5
rjmp Label4
 



Da kann ich nur sagen: Viel Spaß damit

Davon abgesehen wäre es auch eine strafbare Handlung ein Programm ohne Zustimmung des Urhebers so umzuwandeln.


 Antworten

 Beitrag melden
06.07.2023 17:38
avatar  Montre
#60
avatar

Ich glaube nicht, das Bernd Reverse Engineering (Disassemblierung) meint, sondern einfach eine Kopie des Systems. Alles andere ist Böse ;-)


 Antworten

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