Përmbajtje:
- Hapi 1: Teoria e Operacionit
- Hapi 2: Pjesët dhe Instrumentet
- Hapi 3: Saldimi dhe montimi
- Hapi 4: Programimi A: Arduino
- Hapi 5: Programimi B: Python & Ndërfaqja e Përdoruesit
Video: Kit MIDI Drum në Python dhe Arduino: 5 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:12
Gjithmonë kam dashur të blej një çantë daulle që kur isha fëmijë. Atëherë, të gjitha pajisjet muzikore nuk kishin të gjitha aplikacionet dixhitale siç kemi sot, kështu që çmimet së bashku me pritjet ishin shumë të larta. Kohët e fundit kam vendosur të blej një çantë më të lirë të daulleve nga eBay, me përparësinë e vetme: Aftësinë për ta shkatërruar atë dhe për të bashkangjitur pajisjen dhe softuerin tim në pajisje.
Blerja nuk ishte aspak zhgënjyese: Kompleti i daulleve me rrotullime të lëvizshëm me 9 tinguj të ndryshëm të tingullit, dy pedale të ndërruesve të këmbëve për daulle goditjeje dhe hi-hat dhe prizë të energjisë micro-USB. Ajo që ishte vërtet demotivuese, janë tingujt e daljes (përdorimi aktual i këtij kompleti është të lidhni altoparlantin e jashtëm dhe ta shijoni atë). Kështu, vendosa ta konvertoj atë në programin tim të programueshëm përmes USB, kompletit të daulleve MIDI bazuar në Arduino dhe Ndërfaqen e Përdoruesit të bazuar në Python, për përdorim të përshtatshëm dhe modifikime të lehta si, vëllimi, shënimet dhe zgjedhjet e kanaleve.
Karakteristikat e pajisjes:
- Çmim të ulët
- Krijimi i kompletit të daulleve nga çdo hyrje dixhitale - madje edhe një grup butonash shtytës
- Mbështetje komunikimi dhe furnizim me energji vetëm përmes ndërfaqes USB - Integrimi i konvertuesit USB në UART dhe pajisjes Arduino
- Pjesë minimale për funksionimin e duhur
- UI i lehtë për t’u përdorur me bazë Python
- Mbështetje e plotë MIDI me shpejtësi të rregullueshme, shënime dhe kunja Arduino
- Ruani dhe ngarkoni konfigurimet e daulleve të personalizuara të ruajtura në kujtesën e pajisjes
Le të vazhdojmë me projektin…
Hapi 1: Teoria e Operacionit
Bllokimi i Diagramit
Para së gjithash, le të përqëndrohemi në strukturën e projektit dhe ta ndajmë atë në blloqe të veçanta:
Rrum-Up Drum Kit
Njësia kryesore e projektit. Përbëhet nga 9 jastëkë të veçantë daulle, ku secila jastëk është një grup butonash që ndryshojnë gjendjen e tyre logjike gjatë goditjes. Për shkak të strukturës së tij, ekziston mundësia për të ndërtuar këtë çantë të veçantë daulle nga çdo buton shtypës. Çdo jastëk daulle është i lidhur me rezistencën tërheqëse në tabelën kryesore elektronike, kështu që ndërsa jastëku i daulles goditet në mënyrë të përsëritur, një ndërprerës specifik lidhet në tokën e qarkut dhe LOW logjik është i pranishëm në linjën e jastëkut të daulleve. Kur nuk aplikohet presion, çelësi i kazanit të daulles është i hapur dhe për shkak të rezistencës tërheqëse në linjën e energjisë, logjika e Lartë logjike është e pranishme në vijën e kazanit të daulles. Meqenëse qëllimi i projektit është të krijojë një pajisje të plotë dixhitale MIDI, të gjitha pjesët analoge në PCB kryesore mund të neglizhohen. Importantshtë e rëndësishme të vihet re, se kompleti i daulles ka dy pedale për daulle goditjeje dhe hi-hat, të cilat janë gjithashtu të lidhura me rezistorët tërheqës dhe ndajnë të njëjtën logjikë të funksionimit si të gjitha jastëkët e daulles (Ne do ta diskutojmë atë pak më vonë)
Arduino Pro-Mikro
Truri i kompletit të daulleve. Qëllimi i tij është të zbulojë nëse ka një sinjal që del nga një daulle dhe të sigurojë daljen e duhur MIDI me të gjithë parametrat e nevojshëm: Shënim, shpejtësi dhe kohëzgjatje të sinjalit. Për shkak të natyrës dixhitale të tamponëve, ato thjesht mund të lidhen me hyrjet dixhitale arduino (gjithsej 10 kunja). Për të ruajtur të gjitha cilësimet e dëshiruara dhe informacionin MIDI, ne do të përdorim kujtesën e tij-EEPROM, kështu që sa herë që ndezim pajisjen, informacioni MIDI po ngarkohet nga EEPROM, duke e bërë atë të ri-programueshëm dhe të ri-konfigurueshëm. Gjithashtu, Arduino Pro-Micro është në dispozicion në një paketë shumë të vogël dhe mund të ndahet lehtësisht në kutinë e brendshme të kutisë së daulleve.
Konvertuesi FTDI USB në Serial
Për të programuar dhe përcaktuar veçoritë e pajisjes sonë me ndihmën e aplikacionit të kompjuterit, duhet të konvertoni ndërfaqen USB në seriale, sepse Arduino Pro-Micro nuk ka USB. Meqenëse komunikimi midis pajisjeve bazohet në UART, pajisja FTDI përdoret në këtë projekt, për shkak të thjeshtësisë së përdorimit pavarësisht nga vetitë e tij shtesë.
Aplikimi për PC - Python
Kur bëhet fjalë për zhvillimin e ndërfaqeve të përdoruesve dhe projekte të shpejta për t'u ndërtuar, Python është një zgjidhje e shkëlqyeshme. Qëllimi i aplikacionit UI është ta bëjë shumë më të përshtatshëm ripërcaktimin e vetive MIDI për pajisjen tonë të daulleve, ruajtjen e informacionit, pajisjen e programit dhe komunikimin midis sistemeve pa pasur nevojë të përpiloni kodin pa pushim. Për shkak se ne po përdorim ndërfaqe serike për të komunikuar me çantën e daulleve, ka shumë module falas në të gjithë internetin, që mbështesin çdo lloj komunikimi serik. Përveç kësaj, siç do të diskutohet më vonë, ndërfaqja UART përbëhet nga gjithsej tre kunja: RXD, TXD dhe DTR. DTR përdoret për të kryer rivendosjen në modulin Arduino, kështu që kur jemi të interesuar të ekzekutojmë aplikacionin MIDI ose të lidhim UI me pajisjen e programit, nuk ka absolutisht nevojë të lidhim përsëri kabllon USB ose çfarëdo.
Hapi 2: Pjesët dhe Instrumentet
Pjesët
- Rrum-Up Drum Kit
- 2 x Pedale të Qëndrueshme (Zakonisht, të përfshira në paketën DK).
- FTDI - Konvertues USB në Serial
- Arduino Pro Micro
- Kabllo Micro-USB
Instrumentet
- Hekuri/Stacioni i saldimit
- Kallaji i saldimit
- Teli me një diametër të hollë me një bërthamë
- Piskatore
- Prestar
- Pincë
- Thikë
- Vidhosës
- Printer 3D (Opsional - për platformat e personalizuara të pedaleve)
Softuer
- Arduino IDE
- Python 3 ose më i Lartë
- JetBrains Pycharm
- Ndërfaqe MIDI pa flokë
- lakMIDI
Hapi 3: Saldimi dhe montimi
Meqenëse ekzistojnë tre module që duhet të kombinohen, procesi i bashkimit dhe montimit është i shkurtër dhe i thjeshtë:
-
Bashkoni Arduino Pro-Micro me pajisjen FTDI, sigurohuni që lidhjet të jenë në përputhje me I/O të përcaktuar në secilën pajisje:
- VBUS-VBUS
- GND-GND
- DTR-DTR
- RXD-TXD
- TXD-RXD
- Hiqni të gjitha vidhat nga kutia plastike e daulles, sigurohuni që të mund të përqendroheni në kabllon nga pllaka në bord dhe rezistorët e tij tërheqës
-
Saldoni tela të hollë për modulin Arduino-FTDI që kemi ndërtuar më parë:
- Hyrjet dixhitale: D [2:11]
- VBUS
- D+
- D-
- GND
- Futni modulin brenda kutisë së baterisë në mënyrë që telat të notojnë në të njëjtën anë me rezistorët tërheqës të pads
- Ngjitini të gjitha hyrjet dixhitale në terminalet e daulleve siç tregohet në figurën e fundit.
- Lidhni autobusin mikro-USB (VBUS, D+, D-, GND) në pajisjen FTDI, sigurohuni që të mos ketë gabime në gjurmimin e këtyre telave.
- Bashkoni modulin Arduino-FTDI me ngjitës të nxehtë në kutinë e baterisë
- Montoni pajisjen me bashkuesin e duhur të vidhave
Ne e kemi bërë atë, pajisja është mbledhur. Le të vazhdojmë me kodin…
Hapi 4: Programimi A: Arduino
Le të përshkruajmë skicën tonë hap pas hapi:
Para së gjithash, është e nevojshme të përfshihen dy biblioteka të nevojshme për funksionimin e duhur. EEPROM tashmë është para-instaluar në Arduino IDE, por moduli debouncer për daulle goditjeje duhet të instalohet veçmas
#përfshi #përfshi
Këta ndërprerës përdoren kryesisht në sekuencat e korrigjimit. Nëse dëshironi të provoni lidhjen e terminaleve Arduino me tamponët e daulleve dhe të përcaktoni të gjitha hyrjet dixhitale, këto çelsa duhet të përcaktohen
/ * Ndërruesit e Zhvilluesit: Mos komentoni mënyrën e dëshiruar për korrigjimin ose fillimin * ///#përcaktoni LOAD_DEFAULT_VALUES // Ngarkoni vlerat konstante në vend të EEPROM //#përcaktoni PRINT_PADS_PIN_NUMBERS // Shtypni numrin pin që është i lidhur me një bllok të goditur përmes portit serik
Fushat konstante përfaqësojnë të gjitha vlerat e paracaktuara, duke përfshirë numërimin e tamponit. Për të drejtuar pajisjen për herë të parë, duhet të dini lidhjen e saktë të pedaleve Hi-Hat dhe Kick
/ * Numërimi i tipit të daulles */
enum DRUM_POSITION {KICK = 0, SNARE, HIHAT, RIDE, CYMBAL1, CYMBAL2, TOM_HIGH, TOM_MID, TOM_LO, HIHAT_PEDAL};
/ * Vlerat e paracaktuara */
const uint8_t DRUM_NOTES [10] = {36, 40, 42, 51, 49, 55, 47, 45, 43, 48}; const uint8_t DRUM_VELOCITIES [10] = {110, 100, 100, 110, 110, 110, 110, 110, 110, 110}; const uint8_t DRUM_PINS [10] = {8, 6, 4, 3, 11, 9, 5, 10, 2, 7};
/ * Kohëzgjatja e kërcimit të daulles së goditjes */
const uint8_t KICK_DB_DURATION = 30;
EEPROM përdoret për të ruajtur/ngarkuar të gjitha të dhënat që vijnë nga aplikacioni i kompjuterit. Hapësira e adresave e përshkruar më sipër, tregon vendndodhjen e saktë për informacionin MIDI për secilën jastëk daulle
/* Hartimi i adresave EEPROM
Shënime: | 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 |
Kunjat: | 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13 | Shpejtësi | 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, 0x21, 0x22, 0x23 | */ const uint8_t NOTES_ADDR = 0x00; const uint8_t VELOCITIES_ADDR = 0x14; const uint8_t PINS_ADDR = 0x0A;
Variablat globale përdoren për të përcaktuar gjendjen e secilës jastëk dhe për të kryer komunikimin MIDI në përputhje me rrethanat
/ * Variablat Global */
uint8_t daulleNotes [10], daulleVelocities [10], drumPins [10]; // Ndryshoret MIDI
uint8_t uartBuffer [64]; // Tampon UART për mbledhjen dhe ruajtjen e goditjes së Debouncer të të dhënave MIDI (DRUM_PINS [KICK], KICK_DB_DURATION); // Objekt debouncer for kick drum volatile bool previousState [9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; // Log daulle gjendjet e mëparshme logjike gjendja e paqëndrueshme e bool currentState [9] = {0, 0, 0, 0, 0, 0, 0, 0, 0}; // Gjendja logjike aktuale e daulles
Funksionet EEPROM
/* Ruaj cilësimet në EEPROM*/
void storeEEPROM () {
memcpy (shënimet e daulles, uartBuffer, 10); memcpy (drumPins, uartBuffer + 10, 10); memcpy (daulleVelocities, uartBuffer + 20, 10); për (uint8_t i = 0; i <10; i ++) EEPROM.shkruaj (NOTES_ADDR+i, daulleNotes ); për (uint8_t i = 0; i <10; i ++) EEPROM.shkruaj (PINS_ADDR+i, drumPins ); për (uint8_t i = 0; i <10; i ++) EEPROM.shkruaj (VELOCITIES_ADDR+i, daulleVelocities ); }
/* Ngarkoni cilësimet nga EEPROM*/
ngarkesë e pavlefshmeEEPROM () {për (uint8_t i = 0; i <10; i ++) daulle Shënime = EEPROM.lexo (NOTES_ADDR+i); për (uint8_t i = 0; i <10; i ++) drumPins = EEPROM.lexim (PINS_ADDR+i); për (uint8_t i = 0; i <10; i ++) daulleVelocities = EEPROM.lexo (VELOCITIES_ADDR+i); }
Fillimi i variablave dhe mënyra e programimit, në rastin e pedaleve dhe boot Arduino aktivizohen njëkohësisht
void enterProgrammingMode () {
bool confirmBreak = false; uint8_t lineCnt = 0; uint8_t charCnt = 0; char readChar = 0; ndërsa (! confirmBreak) {if (Serial.disponueshëm ()) {uartBuffer [charCnt] = Serial.read (); if (charCnt> = 29) confirmBreak = true; tjetër charCnt ++; }} Serial.println ("OK"); storeEEPROM (); }
void initValues () {
#ifdef LOAD_DEFAULT_VALUES memcpy (shënimet e daulles, DRUM_NOTES, 10); memcpy (daulleVelocities, DRUM_VELOCITIES, 10); memcpy (drumPins, DRUM_PINS, 10); #ngarkesë tjetërEEPROM (); #endif}
Trajtuesit e komunikimit MIDI me vonesë prej 1ms kohë të mbajtjes së shënimeve
/ * Luaj funksionin e shënimit MIDI */
void midiOut (enum DRUM_POSITION drumIn) {
nëse (drumIn == HIHAT) {// Nëse HI-HAT është goditur, është e nevojshme të bëhet një kontroll nëse pedali shtypet nëse (! [HIHAT_PEDAL]); vonesa (1); shënimNë (0x90, shënimet e daulles [HIHAT_PEDAL], 0); } else {noteOn (0x90, drumNotes [HIHAT], drumVelocities [HIHAT]); vonesa (1); shënimNë (0x90, shënimet e daulles [HIHAT], 0); }} else {// Shënim i rregullt i daulles MIDI i transmetimitOn (0x90, drumNotes [drumIn], drumVelocities [drumIn]); vonesa (1); shënimNë (0x90, shënimet e daulles [drumIn], 0); }}
void noteOn (int cmd, int katran, int shpejtësia) {Serial.write (cmd); Serial.shkruaj (katran); Serial.shkruaj (shpejtësia); }
funksionet e konfigurimit () dhe loop () me lak të funksionimit të pafund të pajisjes:
void setup () {
Serial.filloj (115200);
për (uint8_t i = 0; i <10; i ++) {pinMode (i+2, HYRJE); } #ifdef PRINT_PADS_PIN_NUMBERS ndërsa (e vërtetë) {// lak debug pafund për (uint8_t i = 0; i <10; i ++) {if (! digitalRead (i+2)) {Serial.print ("Pin No: D"); Serial.print (i + '0'); // Shndërroni numrin në karakterin ASCII}}} #else initValues (); / * Mënyra e programimit: Nëse shtypni dy pedale gjatë nisjes - modaliteti aktivizohet */ nëse (! DigitalRead (drumPins [KICK]) &&! DigitalRead (drumPins [HIHAT_PEDAL])) enterProgrammingMode (); #endif}
lak void () {for (uint8_t i = 1; i <9; i = i + 1) {currentState = digitalRead (drumPins ); nëse (! currentState && previousState ) midiOut (i); // Krahasoni gjendjet dhe zbuloni skajin në rënie Shteti i mëparshëm = gjendja aktuale ; } kick.update (); // Kick daulle përdor algoritmin e personalizuar të debunimit nëse (kick.edge ()) nëse (kick.falling ()) midiOut (KICK); }
Hapi 5: Programimi B: Python & Ndërfaqja e Përdoruesit
Ndërfaqja e përdoruesit Python është pak e komplikuar për tu kuptuar në shikim të parë, kështu që ne do të përpiqemi të shpjegojmë bazat e tij, si të përdorim, çfarë funksioni ka çdo buton dhe si të programojmë siç duhet pajisjen Arduino.
Ndërfaqja e përdoruesit - Aplikimi
UI është një paraqitje grafike për programuesin tonë të kompletit të daulleve, duke e bërë atë vërtet të lehtë për t’u përdorur dhe të përshtatshëm për të programuar pajisjen Arduino në çdo kohë. UI përbëhet nga disa module grafike që lidhen me funksionimin e tyre të sugjeruar. le t'i shqyrtojmë ato një nga një:
- Drum Set Image: Python UI përdor koordinatat e imazhit X-Y për të përcaktuar se cili lloj daulle është zgjedhur. Nëse është zgjedhur rajoni i vlefshëm i daulles, shfaqet mesazhi dytësor IO, me fushat e shënimit, shpejtësisë dhe terminalin Arduino për bllokun e dedikuar të daulles. Pasi këto parametra të verifikohen nga përdoruesi dhe të miratohen, këto vlera mund të transmetohen drejtpërdrejt në pajisjen Arduino.
- Imazhi i Kontrollorit të Jashtëm: Për të qenë në gjendje të përdorni kompletin e daulleve MIDI me mjedisin krijues VST/Music, ekziston nevoja për të ekzekutuar përkthyesin Serial-To-MIDI. Unë kam përdorur Hairless, i cili është i disponueshëm falas dhe mund të funksionojë direkt nga UI -ja jonë, vetëm duke shtypur imazhin e tij.
- Lista e Porteve COM: Për të komunikuar me Arduino, duhet të specifikoni portin e tij të bashkangjitur COM. Lista po rifreskohet duke shtypur butonin Refresh.
- Konfigurimi i ngarkimit/ruajtjes: Ekzistojnë vlera të paracaktuara MIDI të përcaktuara në kod, të cilat mund të modifikohen nga përdoruesi duke bashkëvepruar me UI. Konfigurimi përcaktohet në skedarin config.txt në një format të veçantë, i cili mund të ruhet ose ngarkohet nga përdoruesi.
- Butoni i Pajisjes së Programit: Për të ruajtur të gjitha vlerat MIDI të modifikuara në Arduino EEPROM, duhet të shtypni dy pedale (Kick drum dhe Hi-hat pedal) pas kësaj, prisni që transmetimi i të dhënave të përfundojë. Nëse do të kishte ndonjë çështje komunikimi, do të shfaqet pop-up i duhur. Nëse transmetimi ka sukses, UI do të tregojë mesazhin e tij të suksesshëm.
- Butoni i daljes: Thjesht dilni nga aplikacioni, me lejen e përdoruesit.
Pikat kryesore të kodit Python
Ka shumë gjëra që po ndodhin në kod, kështu që ne do të zgjerojmë funksionet e shkruara dhe jo të gjithë kodin.
Para së gjithash, për të përdorur UI, duhet të shkarkoni disa module, për ta bërë kodin të funksionojë:
import osimport threading import tkinter as tk from tkinter import boxbox from tkinter import * from PIL import ImageTk, Image import numpy as np import serial import glob
Disa nga modulet përfshihen në paketën e parazgjedhur Python. Disa module duhet të instalohen përmes mjetit PIP:
pip instaloni Jastëk
pip instaloni numpy pip instaloni ScreenInfo
Rekomandohet fuqimisht të ekzekutoni aplikacionin përmes PyCharm. Në publikimet e ardhshme, po planifikoj të eksportoj një skedar të ekzekutueshëm për projektin.
Shpjegim i Kodit të Shkurtër
Do të jetë shumë më e lehtë për të kuptuar kodin nëse i shikojmë linjat e tij nga perspektiva e funksioneve dhe klasave:
1. Funksioni kryesor - këtu fillon kodi
nëse _name_ == '_majt_': drumkit_gui ()
2. Konstantet e Drum Kit, koordinatat dhe informacioni i paracaktuar MIDI
Daulle të klasës: DRUM_TYPES = ["Kick", "Hihat", "Snare", "Crash 1", "Crash 2", "Tom High", "Tom Mid", "Tom Low", "Ride", "Hihat Pedal "," Kontrolluesi "]
COORDINATES_X = [323, 117, 205, 173, 565, 271, 386, 488, 487, 135, 79]
COORDINATES_Y = [268, 115, 192, 40, 29, 107, 104, 190, 71, 408, 208] DIMS_WIDTH = [60, 145, 130, 120, 120, 70, 70, 130, 120, 70, 145] DIMS_LENGTH = [60, 60, 80, 35, 35, 40, 40, 70, 35, 100, 50]
DRUM_ENUM = ["Kick", "Snare", "Hihat", "Ride", "Crash 1", "Crash 2", "Tom High", "Tom Mid", "Tom Low", "Hihat Pedal"]
DRUM_NOTES = [36, 40, 42, 51, 49, 55, 47, 45, 43, 48] DRUM_VELOCITIES = [110, 100, 100, 110, 110, 110, 110, 110, 110, 110, 110] DRUM_PINS = [8, 6, 4, 3, 11, 9, 5, 10, 2, 7]
3. Funksionet UI - Trajtimi i ndërfaqes së përdoruesit dhe objekteve grafike
def set_active (ui)
def dytësore_ui (lloji i daulles)
klasa SelectionUi (tk. Frame)
aplikimi i klasës (tk. Frame)
def drumkit_gui ()
def event_ui_clicked (ngjarje)
def getorigin (vetja, ngjarja)
4. Komunikimi serik
def get_serial_ports ()
def commun_with_arduino (port)
5. Puna me skedarët: Ruani/Ngarkoni cilësimet nga skedari txt
def save_config ()
def load_config ()
6. Drejtimi i aplikacionit të jashtëm hairless.exe nga kodi duke përdorur aftësitë Python Threading
klasa ExternalExecutableThread (filetimi. Thread)
def run_hairless_executable ()
Për të ekzekutuar kodin, ekziston një listë e skedarëve që duhet të bashkëngjiten në dosjen e projektit:
- config.txt: Skedari i cilësimeve
- hairless.exe: Konvertues MIDI pa flokë
- drumkit.png: Imazh që përcakton të gjitha jastëkët e daulleve të klikueshëm në UI -në tonë (Duhet të shkarkohet nga seti i imazheve të këtij hapi)
- drumgui.py: Kodi i projektit
Kjo është gjithçka që duhet të theksojmë për ta bërë atë të funksionojë. Veryshtë shumë e rëndësishme të shtoni skedarë në projekt: imazh i vendosur në daulle, i ekzekutueshëm hairless.exe dhe skedari i cilësimeve config.txt.
Dhe.. Këtu kemi bërë!:)
Shpresoj se do ta gjeni të dobishme këtë udhëzues.
Faleminderit per leximin!:)
Recommended:
Si të krijoni dhe futni një tabelë dhe shtoni kolona shtesë dhe/ose rreshta në atë tabelë në Microsoft Office Word 2007: 11 hapa
Si të krijoni dhe futni një tabelë dhe shtoni kolona shtesë dhe/ose rreshta në atë tabelë në Microsoft Office Word 2007: A keni pasur ndonjëherë shumë të dhëna me të cilat po punoni dhe keni menduar me veten … " si mund t'i bëj të gjitha nga këto të dhëna duken më mirë dhe janë më të lehta për tu kuptuar? " Nëse është kështu, atëherë një tabelë në Microsoft Office Word 2007 mund të jetë përgjigja juaj
Njohja dhe Identifikimi i Fytyrës - Arduino Face ID duke përdorur OpenCV Python dhe Arduino .: 6 hapa
Njohja dhe Identifikimi i Fytyrës | Arduino Face ID Duke përdorur OpenCV Python dhe Arduino .: Njohja e fytyrës ID e fytyrës AKA është një nga veçoritë më të rëndësishme në telefonat celularë në ditët e sotme. Pra, kisha një pyetje " a mund të kem një ID të fytyrës për projektin tim Arduino " dhe përgjigja është po … Udhëtimi im filloi si më poshtë: Hapi 1: Qasja tek ne
Lidhja e përpunimit dhe Arduino dhe Make 7 Segment dhe Servo GUI Controller: 4 hapa
Lidhja e përpunimit dhe Arduino dhe Make 7 Segment dhe Servo GUI Controller: Për disa projekte që keni bërë duhet të përdorni Arduino pasi siguron një platformë të lehtë prototipimi, por shfaqja e grafikëve në monitorin serik të Arduino mund të zgjasë shumë kohë dhe madje është e vështirë të bëhet. Ju mund të shfaqni grafikët në Arduino Serial Monitor bu
8 Kontrolli i stafetës me NodeMCU dhe Marrës IR duke përdorur WiFi dhe IR Telekomandë dhe Aplikacion Android: 5 hapa (me fotografi)
8 Rele Control me NodeMCU dhe IR Receiver Using WiFi and IR Remote and Android App: Kontrolli i 8 ndërprerësve të stafetave duke përdorur nodemcu dhe marrësin ir mbi wifi dhe ir aplikacionin e largët dhe android. Ir i largët punon pavarësisht nga lidhja wifi. K ISTU ASHT A KLIKIM I VERSIONIT TP PPRDITSUAR KETU
Shfaqja e temperaturës dhe lagështisë dhe mbledhja e të dhënave me Arduino dhe përpunimi: 13 hapa (me fotografi)
Shfaqja e Temperaturës dhe Lagështisë dhe Mbledhja e të Dhënave Me Arduino dhe Përpunimi: Hyrje: Ky është një Projekt që përdor një bord Arduino, një Sensor (DHT11), një kompjuter Windows dhe një Përpunim (një program pa shkarkim falas) për të shfaqur të dhënat e Temperaturës, Lagështisë në dixhital dhe forma e grafikut të shiritit, shfaqja e kohës dhe datës dhe ekzekutimi i kohës së numërimit