Proiectul reprezintă o tastatură conectată la laptop care prin intermediul unui buton poate da play/pause la o melodie de pe laptop, cu joystick-ul putem da next / previous song. Pe display v-a fi afișată melodia curentă și volumul actual care va putea fi modificat cu ajutorul unui potențiometru. Și câteva led-uri.
Implementarea unei tastaturi utile care o voi folosi zilnic.
Am vrut să fac ceva ce o să pot folosi și nu un proiect de care voi uita în scurt timp, plecând de la idea că ascult muzică majoritatea timpului petrecut în fața laptop-ului.
Comoditatea utilizării unui player la îndemână fără a căuta tabul cu muzica sau a deschide mereu aplicația de muzică și volum.
Placa este conectată la laptop, va fi un buton sau 2 pentru play/stop și un joystick care va fi înclinat în stânga pentru comanda previous song și în dreapta pentru next song, pe display în acest moment v-a fi afișat titlul melodiei curente și probabil și volumul sistemului la moment, volumul va putea fi controlat cu un potențiometru/encoder. Vor fi prezente câteva led-uri sau un ledstrip pentru atmosferă.
Butoanele, joystick-ul si potentiometrul vor trimite date catre arduino care le v-a transmite mai departe pe seriala pe laptop,
unde vor fi prelucrate si efectuate instructiunile necare,
dupa care de pe leptop vor fi transmise date catre arduino pentru a afisa pe display date si a porni led-urile.
Numar Piese | Nume Piesa | Link |
---|---|---|
1 | Plăcuță Arduino UNO | https://robotica.md/Arduino-uno-CH340G |
2 | Buton cu capac rotund rosu/alb | https://robotica.md/buton-rotund |
1 | Potentiometru rotativ | https://robotica.md/potentiometru-rotativ |
1 | Capac Potentiometru | https://robotica.md/capac-potentiometru |
10 | LED-uri Mono culoare (2 de fiecare) | https://robotica.md/led-5mm |
1 | LCD DISPLAY (1602) | https://robotica.md/modul-lcd-cu-butoane |
1 | Breadboard 830 puncte | https://robotica.md/breadboard-830 |
10 | Rezistente pentru leduri(220ohm) | https://robotica.md/rezistor |
2 | Fire Dupont mama-tata 10 fire in set | https://robotica.md/10-fire-dupont-mama-tata-20cm |
2 | Fire Dupont tata-tata 10 fire in set | https://robotica.md/10-fire-dupont-tata-tata-20cm |
1 | Fire Dupont mama-mama 4p | https://robotica.md/fire-mama-mama-4p |
1 | Joystick | https://robotica.md/modul-joystick-arduino |
Stabiliesc comunicatia pe seriala cu arduino cu ajutorul bibliotecii pyserial, o apasare de buton, rotire potentiometru sau actionare joystick trimite pe seriala un semnal, pe care il citesc in python si il tratez activand windows virtual key corespunzator semnalului cu ajutorul bibliotecii pyautogui. Primul mesaj pe seriala este valoare actuala a potentiometrului pentru a syncroniza cu volumul din windows cu ajutorul nircmd.
Folosec 2 butoane unul cu capac roșu și unul cu capac alb.
Windows virtual keyboard nu oferă comenzi separate pentru pause și play așa că am făcut eu o separate astfel doar dacă apeși butonul alb se pune pauza și doar dacă apeși butonul roșu face resume, dacă apăsam de mai multe ori același buton nu se schimbă starea.
Folosesc un joystick și fiecare aspect al său este implementat astfel:
Folosesc o mapare a rezultatelor citite de pe joystick pentru simplitate.
Trebuia sa.
Folosesc un potentiometru rotativ cu valorile mapate(0,1023,0, 100) pentru a fi 1:1 cu volumul din windows:
Folosesc 10 leduri mono culoare, alb, rosu, galben, verde si albastru cate 2 in serie:
Pentru realizarea acestui proiect Arduino Uno nu este cea mai buna alegere, o alegere mai buna ar fi de exemplu Arduino Leonardo sau Arduino micro, pentru ca au USB MCU, ceea ce ar permite tot ce am facut in python direct pe arduino, astfel rezultatul final ar fi un device USB plug&play fara a avea nevoie de software in plus.
De asemenea inainte de a va apuca de proiect asigurati-va din timp ca aveti toate piesele necesare in stock, din lipsa resurselor disponibile (un singur site de arduino), nu am putut obtine un display lcd i2c astfel am fost nevoit sa folosesc ce am putut, un lcd 1602 keypad shield care s-a ars cu success.