Sadržaj:
- Pribor
- Korak 1: Priča
- Korak 2: Teorija i metodologija
- Korak 3: Postavljanje hardvera
- Korak 4: Postavljanje softvera
- Korak 5: Arduino kôd senzora boje
Video: Jednostavan DIY senzor boja od Magicbita: 5 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
U ovom ćemo vodiču naučiti kako napraviti jednostavan senzor u boji pomoću Magicbita s Arduinom.
Pribor
- Magicbit
- USB-A do mikro-USB kabel
Korak 1: Priča
Bok dečki, ponekad morate koristiti senzore za boje u neke svrhe. No, možda ne znate kako oni funkcioniraju. Dakle, u ovom ćete vodiču naučiti o tome kako napraviti jednostavan DIY senzor boje pomoću Magicbita s Arduinom. Počnimo.
Korak 2: Teorija i metodologija
U ovom projektu očekujemo da ćete vas naučiti izgraditi senzor boja koji može detektirati crvenu, zelenu i plavu boju. Ovo je vrlo osnovni primjer. Pa kako to učiniti. U tu svrhu koristimo RGB modul Magicbita i ugrađeni LDR. Prije svega morate naučiti nešto o teoriji. To je otprilike količina refleksije svjetlosti. Sada postavljam pitanje od vas. Koje obojene površine najviše reflektiraju svjetlo crvene boje? Također koje površine uglavnom reflektiraju zeleno i plavo svjetlo. Razmisli malo. Ali odgovor je jednostavan. Površina crvene boje uglavnom reflektira svjetlost crvene boje. Zelene i plave površine također će odražavati zelena i plava svjetla. Dakle, u ovom projektu koristimo tu teoriju. Za prepoznavanje boje emitiramo jedno po jedno crveno, zeleno i plavo svjetlo. Svaki put mjerimo količinu refleksije pomoću LDR vrijednosti. Ako neko svjetlo daje najviše refleksije od druga dva svjetla, tada bi ta površina trebala biti uglavnom reflektirana obojena površina.
Korak 3: Postavljanje hardvera
Ovo vrlo jednostavno. Uključite svoj RGB modul u gornji desni port Magicbita. Ovaj modul ima LED diodu WS2812B Neopixel. Ova LED dioda ima 4 pina. Dva za napajanje i dva za ulaz i izlaz podataka. Budući da koristimo jedan led, potrebni su nam samo pinovi za napajanje i podaci u pin -u. Ako nemate taj modul, možete kupiti i Neopixel modul. Ako ste kupili takvu vrstu modula, morate povezati pinove za napajanje i podatke u pinu na Magicbit. To je vrlo jednostavno. Spojite VCC i GND Magicbita na pinove za napajanje RGB modula i pin D33 na pin za podatke.
Korak 4: Postavljanje softvera
Najveći dio radi programiranje. Za programiranje našeg Magicbita koristimo Arduino IDE. U kodu koristimo nekoliko knjižnica. Oni su Adafruit Neopixel knjižnica za upravljanje Neopixel LED i Adafruit OLED biblioteka za OLED ručku. U postavkama konfiguriramo naše ulaze i izlaze. Također konfigurirajte ugrađeni OLED zaslon na Magicbitu. U petlji provjeravamo je li lijevi pritisni gumb pritisnut ili nije na Magicbitu. Ako se pritisne, ulazni signal je 0. Budući da je ploča već povučena prema gore. Ako je pritisnuto, radimo provjeru boje. Ako nije, zaslon će prikazati izraz "bez boje". Kada se pritisne gumb, automatski uključuje jedno po jedno crveno, zeleno i plavo svjetlo i pohranjuje količinu refleksije boja u tri varijable. Zatim smo usporedili te vrijednosti i odabrali boju maksimalne vrijednosti za prikaz kao izlaznu boju.
Zato spojite mikro USB kabel na Magicbit i ispravno odaberite vrstu ploče i priključke za com. Sada učitajte kôd. Tada je vrijeme da testiramo naš senzor. Da biste to provjerili, držite crveni, zeleni ili plavi papir ili gornji dio lista na modulu LDR i RGB i pritisnite lijevu tipku. Tada će OLED zaslon pokazati koje je boje površina. Ako je to pogrešno, razlog je što neke boje imaju visok intenzitet svjetla. Kao primjer na svakoj zelenoj površini izlaz je crven, tada morate smanjiti jačinu svjetla crvenog svjetla s neke količine. Budući da crveno svjetlo u tom slučaju ima jako veliku svjetlinu. Tako da imaju visoku refleksiju. Ako ne znate kako kontrolirati svjetlinu, pogledajte vodič u donjoj vezi.
magicbit-arduino.readthedocs.io/en/latest/
Na ovoj poveznici možete pronaći kako kontrolirati taj RGB modul iz Magicbita. Također ćete pronaći način rada s LDR -om i pritiskom na gumb pomoću Magicbita. Pročitajte taj dokument i proučite dalje kako poboljšati senzor boje. Zato što je ovo vrlo osnovni primjer kako senzori u boji rade. Većina vrsta senzora u boji radi na ovaj način. Pokušajte to poboljšati uklanjanjem buke iz okoline i drugih zvukova.
Korak 5: Arduino kôd senzora boje
#uključi
#define LED_PIN 33
#define LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #include #include #include #define OLED_RESET 4 Adafruit_SSD1306 zaslon (128, 64); #define LDR 36 #define Button 35 int R_value, G_value, B_value; void setup () {LED.begin (); LED.show (); pinMode (LDR, INPUT); pinMode (gumb, INPUT); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); kašnjenje (1000); display.clearDisplay (); Serial.begin (9600); } void loop () {if (digitalRead (Button) == 0) {// ako je gumb pritisnut LED.setPixelColor (0, LED. Color (0, 50, 0)); // na LED crvenoj boji.show (); kašnjenje (100); R_value = analogRead (LDR); // nabavite LED montažu LED.setPixelColor (0, LED. Color (150, 0, 0)); // na LED zelenoj boji.show (); kašnjenje (100); G_value = analogRead (LDR); // dobiti zeleni nosač LED.setPixelColor (0, LED. Color (0, 0, 255)); // na plavoj boji LED.show (); kašnjenje (100); B_value = analogRead (LDR); // nabavite plavi nosač ako (R_value> G_value && R_value> B_value) {// crvena se najviše reflektira Display ("RED", 3); } else if (G_value> R_value && G_value> B_value) {// zeleno se najviše reflektira Prikaz ("ZELENO", 3); } else if (B_value> R_value && B_value> G_value) {// plava se najviše reflektira Prikaz ("PLAVA", 3); } Serial.print ("CRVENO ="); Serijski.ispis (R_value); Serial.print ("ZELENO ="); Serijski.ispis (G_value); Serial.print ("PLAVO ="); Serial.println (B_value); } else {LED.setPixelColor (0, LED. Color (0, 0, 0)); // isključeno RGB LED.show (); Zaslon ("NO COLOR", 2); }} void Display (String commond, int size) {// prikaz podataka display.clearDisplay (); display.setTextSize (veličina); // Normalni prikaz u mjerilu 1: 1 piksela.setTextColor (BIJELO); // Crtanje prikaza bijelog teksta.setCursor (0, 20); // Pokreni u gornjem lijevom kutu display.println (commond); display.display (); }
Preporučeni:
Jednostavan radarski sustav iz Magicbita: 6 koraka
Jednostavan radarski sustav iz Magicbita: Ovaj vodič prikazuje kako napraviti jednostavan radarski sustav pomoću HC-SR04 senzora i Microbit dev ploče s obradom i Arduino IDE-ima
Samobalansirajući robot iz Magicbita: 6 koraka
Samobalansirajući robot iz Magicbita: Ovaj vodič prikazuje kako napraviti samo balansirajućeg robota pomoću Magicbit dev ploče. Koristimo magicbit kao razvojnu ploču u ovom projektu koji se temelji na ESP32. Stoga se u ovom projektu može koristiti bilo koja razvojna ploča ESP32
Senzor položaja biciklističkog postolja iz Magicbita [Magicblocks]: 8 koraka
Senzor položaja biciklističkog postolja iz Magicbita [Magicblocks]: Jednostavan DIY projekt za izradu senzora položaja postolja s Magicbitom pomoću Magicblocks -a. Koristimo magicbit kao razvojnu ploču u ovom projektu koji se temelji na ESP32. Stoga se u ovom projektu može koristiti bilo koja razvojna ploča ESP32
(Jednostavan) jednostavan način dobivanja analognog/pwm zvuka s Raspberry PI Zero -a i povezivanja na Crt TV: 4 koraka
(Jednostavan) jednostavan način za dobivanje analognog/pwm zvuka s Raspberry PI Zero -a i povezivanje s Crt TV -om: Ovdje sam upotrijebio najjednostavniji način za unos zvuka na televizor uz kompim video
Zaista jednostavan/lak/nekompliciran način da ljudi/ljudi/životinje/roboti izgledaju kao da imaju stvarno hladnu/svijetlu toplinu (boja po vašem izboru) pomoću GIMP -a: 4 koraka
Zaista jednostavan/lak/nekompliciran način da ljudi/ljudi/životinje/roboti izgledaju kao da imaju stvarno hladnu/svijetlu toplinsku viziju (boja po vašem izboru) pomoću GIMP -a: Pročitajte … naslov