Varhanni Midi pedály

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
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.
Arduin
Příspěvky: 5
Registrován: 26 črc 2020, 09:34
Reputation: 0

Varhanni Midi pedály

Příspěvek od Arduin » 26 črc 2020, 09:49

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.

Uživatelský avatar
kiRRow
Příspěvky: 1163
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Varhanni Midi pedály

Příspěvek od kiRRow » 26 črc 2020, 10:52

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 :

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;
      }*/
}
je to takový na prasáka, jen jsem stím fakt blbnul

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Varhanni Midi pedály

Příspěvek od KamilV » 26 črc 2020, 11:25

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...

Arduin
Příspěvky: 5
Registrován: 26 črc 2020, 09:34
Reputation: 0

Re: Varhanni Midi pedály

Příspěvek od Arduin » 26 črc 2020, 20:52

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.

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Varhanni Midi pedály

Příspěvek od KamilV » 26 črc 2020, 21:33

Já v tom problém nevidím, počet inputů si v tomto případě snadno rozšíříš švábem.

Uživatelský avatar
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

Příspěvek od pavel1tu » 26 črc 2020, 21:50

Arduin píše:
26 črc 2020, 20:52
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.
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"

KamilV
Příspěvky: 479
Registrován: 03 dub 2018, 15:27
Reputation: 0
Bydliště: Olomouc

Re: Varhanni Midi pedály

Příspěvek od KamilV » 26 črc 2020, 22:00

Ty 4k za kus nejsou strašný ani teď...
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/

Uživatelský avatar
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

Příspěvek od pavel1tu » 26 črc 2020, 22:10

KamilV píše:
26 črc 2020, 22:00
Ty 4k za kus nejsou strašný ani teď...
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/
Jo to je dobrá cena, a bude to doma hned ....
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"

analytik
Příspěvky: 148
Registrován: 26 čer 2020, 12:48
Reputation: 0
Bydliště: Děčín

Re: Varhanni Midi pedály

Příspěvek od analytik » 27 črc 2020, 06:47

KamilV píše:
26 črc 2020, 22:00
Ty 4k za kus nejsou strašný ani teď...
https://www.laskarduino.cz/robotdyn-ard ... tmega2560/
Možná by to zvládla i levnější varianta s dodáním do dvou dnů:
https://www.hadex.cz/m382-arduino-mega2 ... em-ch340g/

Uživatelský avatar
gilhad
Příspěvky: 786
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Varhanni Midi pedály

Příspěvek od gilhad » 27 črc 2020, 08:51

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 :)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů