Arduino Launchpad

Arduino Launchpad

Není žádnou novinkou že pomocí většiny typů Arduina je možné sestavit klávesnici. Co takhle ale launchpad na stejném základu?

Co to vlastně launchpad je?

Launchpad (nebo Beatpad) je dnes již velmi používaný hudební nástroj. Při stisku tlačítka na Launchpadu dojde k zahrání zvuku,melodie, nebo tónu. Profesionální launchpady využívají programy zpracující MIDI jako Ableton, Fl Studio, nebo Magix Music Maker. Tyto hudební nástroje však stojí cca. od 1500 Kč (jde o to od které firmy a který typ), tak mě napadlo sestavit Launchpad z arduina a PCB připraveného na tlačítka.

Budeme potřebovat :

  • 13 tlačítek (možné použít kterékoliv , ALE MUSÍ BÝT DOBŘE STISKNUTELNÉ!)
  • Arduino (v mém případě Leonardo)
  • PCB (1) nebo nepájivé pole (2)  pro tlačítka
  • Program Beatpad (doporučuji verzi odtuď
  • Pájku (cín a kalafunu)
  • Dřevo na nožičky (v případě PCB)
  • 15 kabelů pro spojení Beatpad <---> Arduino
  • USB kabel pro spojení PC <---> Arduino
  • 13 22k odporů
  • V případě PCB počítejte ještě s několika dalšími kabely zespod

Zapojení

Na tomto obrázku můžete vidět zapojení tlačítek na nepájivém poli, ti, co chtějí PCB, si odvodí jak na to.

Každý kabel připojen k Arduinu je přes 22k odpor přiveden k zemi a druhá strana tlačítka je připojena k 5V (k zapojení stačí i 3.3 V)

Kód (Arduino IDE)

Po úspěšném zapojení a nahrání kódu do Arduina zkuste s připojeným PC zmáčknout všechny tlačítka - pokud budou všechny něco psát a nebo alespoň něco dělat (na 8 tlačítku v levé řadě je v kódu nastaven TAB pro přepínání pozic tlačítek) máte vyhráno, teď již si jen osvojte kód a nastavte si tlačítka tak jak potřebujete.

#include <Keyboard.h>
void setup() {
  pinMode(0, INPUT);
  pinMode(1, INPUT);
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
  pinMode(9, INPUT);
  pinMode(10, INPUT);
  pinMode(11, INPUT);
  pinMode(12, INPUT);
  Keyboard.begin();
}
void loop() {
  if (digitalRead(0) == HIGH) {
    Keyboard.write(81);
    while (digitalRead(0) == HIGH) {}
    delay(10);
  }
  if (digitalRead(1) == HIGH) {
    Keyboard.write(87);
    while (digitalRead(1) == HIGH) {}
    delay(10);
  }
  if (digitalRead(2) == HIGH) {
    Keyboard.write(69);
    while (digitalRead(2) == HIGH) {}
    delay(10);
  }
  if (digitalRead(3) == HIGH) {
    Keyboard.write(82);
    while (digitalRead(3) == HIGH) {}
    delay(10);
  }
  if (digitalRead(4) == HIGH) {
    Keyboard.write(84);
    while (digitalRead(4) == HIGH) {}
    delay(10);
  }
  if (digitalRead(5) == HIGH) {
    Keyboard.write(89);
    while (digitalRead(5) == HIGH) {}
    delay(10);
  
  }
  if (digitalRead(6) == HIGH) {
    Keyboard.write(85);
    while (digitalRead(6) == HIGH) {}
    delay(10);
  }
  if (digitalRead(7) == HIGH) {
    Keyboard.write(9);
    while (digitalRead(7) == HIGH) {}
    delay(10);
  }                                   
  //s
  if (digitalRead(8) == HIGH) {
    Keyboard.write(65);
    while (digitalRead(8) == HIGH) {}
    delay(10);

  }
  if (digitalRead(9) == HIGH) {
    Keyboard.write(83);
    while (digitalRead(9) == HIGH) {}
    delay(50);
  }
  if (digitalRead(10) == HIGH) {
    Keyboard.write(71);
    while (digitalRead(10) == HIGH) {}
    delay(10);
 }
  if (digitalRead(11) == HIGH) {
    Keyboard.write(68);
    while (digitalRead(11) == HIGH) {}
    delay(10);
  }
  if (digitalRead(12) == HIGH) {
    Keyboard.write(70);
    while (digitalRead(12) == HIGH) {}
    delay(10);
  }
}

Program Beatpad

Abyste si osvojili práci v tomto programu budete nejdříve potřebovat nějaké zvukové nahrávky. Ty překompilujte do formátu .WAV. Poté si na pracovní ploše vytvořte složku beats v ní další složky s názvem písničky a do ní nahrávky dejte. Protože Beatpad má 64 pozic a my jsme schopni s tím našim dosáhnout maximálně 26 (pod jedním tlačítkem 2 pozice) některá tlačítka ani nebudou využita. Jmenovky nahrávek musí být od 01.wav až po 64.wav pokud ale budete využívat qwertzu jako prvních 7 budete muset přeskočit 8 předchozích (1-8 ) a začít 09.wav. 

Ukázka mojí verze:

Ukázka práce Launchpadu na videu:

Další podobné články

OVLÁDÁNÍ VÍCE RELÉ S NEOPIXEL RGB ARDUINEM

Kamarád mi poprosil o pomoc s tím že v současnosti potřebuje v jednom projektu ovládat čtyři reléové moduly, kdy jeden obsahuje šestnáct relátek které zakoupil v [1] a již má hotovou část zapojení přípravku, s tím že časem by chtěl ovládání z PC „po otestování“, ovládat diody pomocí tabletu nebo chytrého telefonu. Na tento počet ovládání relé je potřeba 64 ovládacích pinů, což ani ARDUINO MEGA 2560 s potřebou dalších vstupů které budou potřeba není možné použít. Po návrzích s posuvnými registry kterých by bylo potřeba osm kusů a složitosti zapojení mi napadlo použít pásek NEOPIXEL  s RGB led diodami kdy na ovládání stačí jeden výstup z ARDUINA. Tak že pro pokusy co a jak půjde použít, jsem použil modul relátek osazený dvěma relátky, modul s MOSFET tranzistorem, Neopixel pásek s osmi RGB led diodami WS2812B, fototranzistor GL5528 a bluetooth JDY-33 pro komunikaci s tabletem chytrým telefonem vše zakoupené v [1]. Napsané programy jsou celkem dva jeden pouze pro ovládání Neopixel s osmi RGB led diodami, druhý pak umožňuje ovládat maximálně 255 RGB led použitých v Neopixel pásku. Oba programy umožňují ovládat libovolnou RGB diodu nebo více RGB led diod na Neopixel pásku včetně barev a dají se upravit dle potřeby. Přípravek může posloužit při vlastních pokusech s RGB LED Neopixel pásky a zároveň doplňuje články v [2]. Ovládání RGB diod je zde řešeno s ARDUINO NANO je možné použít i ARDUINO UNO. Programové ovládání RGB led diod na Neopixel pásku je dle požadavků kamaráda.

Senzor oxidu uhelnatého MQ-9

Senzor reaguje nejvíce na oxid uhelnatý (CO) ale i na hořlavé plyny metan a propan. Aktivním prvkem tohoto senzoru je tenká vrstva SnO2, jejíž odpor se mění s koncentrací zmíněných plynů.