Varhanni Midi pedály
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Varhanni Midi pedály
Ahoj, omlouvam se pokud to bude banalita, ale jsem novacek a zvazuji pouzit arduino pro stavbu varhanniho midi pedalu. Predstavu mam takovou:
Vyrobim si drevene pedaly a sestavim diodovou matici pro 32 klaves. Chtel bych, aby mohlo hrat vice tonu soucasne. Pripojim matici do Arduino UNO a toto Arduino pripojim pres USB do pocitace, kde se mi to zobrazi jako midi zarizeni a v programu Grand Orgue v Linuxu Ubuntu budu moci hrat na pedaly. Nepotrebuji midi konektor. Usb z arduina by stacilo. Podobne takto funguje varhanni modul Berio.
Nechci sestavovat slozite obvody. Pouze diodovou matici a arduino.
Otazka zni: je to mozne s Arduinem UNO?
Dekuji.
Vyrobim si drevene pedaly a sestavim diodovou matici pro 32 klaves. Chtel bych, aby mohlo hrat vice tonu soucasne. Pripojim matici do Arduino UNO a toto Arduino pripojim pres USB do pocitace, kde se mi to zobrazi jako midi zarizeni a v programu Grand Orgue v Linuxu Ubuntu budu moci hrat na pedaly. Nepotrebuji midi konektor. Usb z arduina by stacilo. Podobne takto funguje varhanni modul Berio.
Nechci sestavovat slozite obvody. Pouze diodovou matici a arduino.
Otazka zni: je to mozne s Arduinem UNO?
Dekuji.
Re: Varhanni Midi pedály
S pouze samotným UNO ne. Nemá dost nožiček. Buď MEGA, nebo použít expandéry - což ti docela zobtížní kód => budeš muset obsluhovat vstupy/výstupy jinak než digitalWrite/Read ... ale jde to.
Jako první bych začal tím, že připojím UNO a budu zkoušet posílat MIDI příkazy. Zkoušet je namapovat v tom programu na určité funkce. Prostudovat si MIDI protokol. Pak si připojit pár tlačítek a zkusit to s něma
----
trošku jsem si stím kdysi hrál ... rotační enkodér je ze spálené mikrovlnky, ty joysticky z vybrakovanýho gamepadu ... funguje to přes loopMidi a hairless-midiSerial ... ovládám stím VirtualDJ 8 ... blbnout se na tom dalo : https://uloz.to/file/esrFbYJ0VDB4/vid-2 ... 165747-3gp
kód :
je to takový na prasáka, jen jsem stím fakt blbnul
Jako první bych začal tím, že připojím UNO a budu zkoušet posílat MIDI příkazy. Zkoušet je namapovat v tom programu na určité funkce. Prostudovat si MIDI protokol. Pak si připojit pár tlačítek a zkusit to s něma
----
trošku jsem si stím kdysi hrál ... rotační enkodér je ze spálené mikrovlnky, ty joysticky z vybrakovanýho gamepadu ... funguje to přes loopMidi a hairless-midiSerial ... ovládám stím VirtualDJ 8 ... blbnout se na tom dalo : https://uloz.to/file/esrFbYJ0VDB4/vid-2 ... 165747-3gp
kód :
Kód: Vybrat vše
boolean lastRead;
boolean lastReadBtn;
unsigned int lastReadA0;
unsigned int lastReadA1;
unsigned int lastReadA2;
unsigned int lastReadA3;
unsigned int lastReadA4;
boolean readDT;
boolean readCLK;
boolean readSW;
unsigned int readA0;
unsigned int readA1;
unsigned int readA2;
unsigned int readA3;
unsigned int readA4;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(A0, INPUT);
}
void loop() {
readCLK = digitalRead(2);
readDT = digitalRead(3);
readSW = digitalRead(4);
readA0 = analogRead(A0) / 8;
readA1 = analogRead(A1) / 8;
readA2 = analogRead(A2) / 8;
readA3 = analogRead(A3) / 8;
readA4 = analogRead(A4) / 8;
if(readA1 >= 63 && readA1 <= 65){readA1 = 64;}
if(readA2 >= 63 && readA2 <= 65){readA2 = 64;}
if(readA3 >= 63 && readA3 <= 65){readA3 = 64;}
if(readA4 >= 63 && readA4 <= 65){readA4 = 64;}
if(readCLK != lastRead){
if(readCLK != readDT){
Serial.write(B10010001);
Serial.write(40);
Serial.write(100);
} else {
Serial.write(B10010001);
Serial.write(41);
Serial.write(100);
}
}
lastRead = readCLK;
if(readSW != lastReadBtn){
if(readSW == false){
Serial.write(B10010001);
Serial.write(42);
Serial.write(100);
} else {
Serial.write(B10010001);
Serial.write(43);
Serial.write(100);
}
}
lastReadBtn = readSW;
//Serial.println(readA0);
if(readA0 != lastReadA0){
Serial.write(B10110001);
Serial.write(1);
Serial.write(readA0);
}
lastReadA0 = readA0;
if(readA1 != lastReadA1){
Serial.write(B10110001);
Serial.write(2);
Serial.write(readA1);
}
lastReadA1 = readA1;
if(readA2 != lastReadA2){
Serial.write(B10110001);
Serial.write(3);
Serial.write(readA2);
}
lastReadA2 = readA2;
if(readA3 != lastReadA3){
Serial.write(B10110001);
Serial.write(4);
Serial.write(readA3);
}
lastReadA3 = readA3;
if(readA4 != lastReadA4){
Serial.write(B10110001);
Serial.write(5);
Serial.write(readA4);
}
lastReadA4 = readA4;
/* if(digitalRead(2) == false) {
if(digitalRead(3) == false && readed == false) {
//Serial.println(digitalRead(2));
/*Serial.write(B10010001);
Serial.write(40);
Serial.write(100);/
} else {
//Serial.println(digitalRead(2));
/*Serial.write(B10010001);
Serial.write(41);
Serial.write(100);/
}
readed = true;
Serial.println(digitalRead(3));
} else {
readed = false;
}*/
}
Re: Varhanni Midi pedály
Také jsem kdysi nad pedálem uvažoval.
Máš už nějaký rozpočet na truhlářskou práci, třebaže svépomocí? (klidně jen do soukromé zprávy) Kdybys chtěl, asi bych mohl nabídnout nějakou spolupráci a mohli bychom rovnou vyrobit 2 ks...
Máš už nějaký rozpočet na truhlářskou práci, třebaže svépomocí? (klidně jen do soukromé zprávy) Kdybys chtěl, asi bych mohl nabídnout nějakou spolupráci a mohli bychom rovnou vyrobit 2 ks...
Re: Varhanni Midi pedály
Ahoj, nemam v byte moc mista, takze bych si udelal nejake kratsi. Urcite svepomoci, ale dokud nebudu mit vyresenou elektroniku, do stavby se poustet nebudu. Arduino mne trochu zklamalo. Myslel jsem, ze to pujde snaze.
Re: Varhanni Midi pedály
Já v tom problém nevidím, počet inputů si v tomto případě snadno rozšíříš švábem.
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Varhanni Midi pedály
Neházel bych flintu do žita, UNO má prostě málo vstupů.
Ale MEGA nebo DUE (to je ale na 3,3V) mají vstupů dost (asi 54 ?)a programují se prakticky stejně. Ani nejsou o tolik větší a zase nejsou tak drahé.
PS: neváhal bych být tebou a objednal MEGA z číny hned, letos končí do ČR bezcelní dovoz (do těch 22EUR nebo jak to je), sice se to dá už koupit i v EU skladech, ale cenově to je o dost jinde.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Varhanni Midi pedály
Ty 4k za kus nejsou strašný ani teď...
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/
- pavel1tu
- Příspěvky: 2054
- Registrován: 26 říj 2017, 08:28
- Reputation: 0
- Bydliště: Trutnov
- Kontaktovat uživatele:
Re: Varhanni Midi pedály
Jo to je dobrá cena, a bude to doma hned ....KamilV píše: ↑26 črc 2020, 22:00Ty 4k za kus nejsou strašný ani teď...
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/
levněji pak přijde STM32, ale to si chce rozmyslet, už je to jiné programování, hodně knihoven co člověk zná z arduin nejsou, pouze na 3,3V, ale když se to pokoří - je to jiný kafe
PS: Arduino mi na kroužku za 3 roky odpálili jedno (nepočítám stabilizátory co jsem opravoval), ale STM32 za rok asi 15ks - nic to nevydrží
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Pavel1TU
"Správně napsaný kod lze číst jako knihu"
Re: Varhanni Midi pedály
Možná by to zvládla i levnější varianta s dodáním do dvou dnů:KamilV píše: ↑26 črc 2020, 22:00Ty 4k za kus nejsou strašný ani teď...
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/
https://www.hadex.cz/m382-arduino-mega2 ... em-ch340g/
Re: Varhanni Midi pedály
UNO ma nozicek dost, ma jich dost i MICRO, ktere umi USB nativne (cili se umi tvarit jako klavesnice, mys, cokoli mu reknes, tedy i midi)
32 klaves je matice 4x8 = 12 nozicek (nebo tech 12 muzes zapojit jako 6x6=36 klaves (a ty 4 mit jako nejaka ovladaci tlacitka nebo tak)
nozicky na radach postupne nastavuji hodnotu, nozicky na sloupcich ji ctou (nebo naopak), aspon co se dratu tyce, ale ty draty muzes zakroutit dle potreby, takze pedaly = spinace budou treba v rade, oblouku, vice ruznych radach ...
Takzvane "analogove" nozicky jdou pouzit i jako dalsi digitalni (mozna nektere jen jako vstupy, ale to nevadi, vstupy taky potrebujes, tak je das na ne).
Jeste ti nejake nozicky nakonec zbudou pro dalsi ucely
32 klaves je matice 4x8 = 12 nozicek (nebo tech 12 muzes zapojit jako 6x6=36 klaves (a ty 4 mit jako nejaka ovladaci tlacitka nebo tak)
nozicky na radach postupne nastavuji hodnotu, nozicky na sloupcich ji ctou (nebo naopak), aspon co se dratu tyce, ale ty draty muzes zakroutit dle potreby, takze pedaly = spinace budou treba v rade, oblouku, vice ruznych radach ...
Takzvane "analogove" nozicky jdou pouzit i jako dalsi digitalni (mozna nektere jen jako vstupy, ale to nevadi, vstupy taky potrebujes, tak je das na ne).
Jeste ti nejake nozicky nakonec zbudou pro dalsi ucely
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů