Përmbajtje:

Sensori i thjeshtë i ngjyrave DIY nga Magicbit: 5 hapa
Sensori i thjeshtë i ngjyrave DIY nga Magicbit: 5 hapa

Video: Sensori i thjeshtë i ngjyrave DIY nga Magicbit: 5 hapa

Video: Sensori i thjeshtë i ngjyrave DIY nga Magicbit: 5 hapa
Video: Кварцевый ламинат на пол. Все этапы. ПЕРЕДЕЛКА ХРУЩЕВКИ от А до Я #34 2024, Nëntor
Anonim
Image
Image

Në këtë tutorial do të mësojmë se si të bëjmë një sensor të thjeshtë ngjyrash duke përdorur Magicbit me Arduino.

Furnizimet

  • Magicbit
  • Kabllo USB-A në mikro-USB

Hapi 1: Histori

Konfigurimi i harduerit
Konfigurimi i harduerit

Përshëndetje djema, ndonjëherë ju duhet të përdorni sensorë ngjyrash për disa qëllime. Por ndoshta ju nuk e dini se si funksionojnë. Pra, në këtë tutorial do të mësoni se si të bëni një sensor të thjeshtë ngjyrash DIY duke përdorur Magicbit me Arduino. Le të fillojmë.

Hapi 2: Teori dhe Metodologji

Në këtë projekt ne presim t'ju mësojmë të ndërtoni një sensor ngjyrash i cili mund të zbulojë ngjyrat e kuqe, jeshile dhe blu. Ky është shembull shumë themelor. Pra, si ta bëni këtë. Për këtë qëllim ne përdorim modulin RGB të Magicbit dhe LDR të integruar. Para së gjithash ju duhet të mësoni për disa teori. Kjo ka të bëjë me sasinë e reflektimit të dritës. Tani po bej pyetje nga ju. Çfarë sipërfaqe me ngjyrë që reflekton më së shumti dritën e ngjyrës së kuqe? Gjithashtu cilat sipërfaqe që kryesisht reflektojnë dritat jeshile dhe blu. Mendo pak. Por përgjigja është e thjeshtë. Sipërfaqja me ngjyrë të Kuqe reflekton kryesisht dritën e ngjyrës së kuqe. Gjithashtu sipërfaqet jeshile dhe blu do të reflektojnë dritat jeshile dhe blu. Pra, në këtë projekt ne përdorim atë teori. Për të njohur ngjyrën lëshojmë drita të kuqe, jeshile dhe blu një nga një. Në çdo kohë ne matim sasinë e reflektimit duke përdorur vlerën LDR. Nëse pak dritë do të japë më shumë reflektim se dy dritat e tjera, atëherë ajo sipërfaqe duhet të reflektohet kryesisht sipërfaqe me ngjyrë.

Hapi 3: Konfigurimi i harduerit

Kjo shumë e thjeshtë. Lidhni modulin tuaj RGB në portën e sipërme të djathtë të Magicbit. Ky modul ka LED Neopixel WS2812B. Ky LED ka 4 kunja. Dy për energjinë dhe dy për të dhënat brenda dhe jashtë. Për shkak se ne përdorim një led ne kemi nevojë vetëm për kunjat e energjisë dhe të dhënat në pin. Nëse nuk e keni atë modul mund të blini dhe modulin Neopixel. Nëse keni blerë atë lloj moduli, duhet të lidhni kunjat e energjisë dhe të dhënat në pin me Magicbit. Kjo është shumë e lehtë. Lidhni VCC dhe GND të Magicbit me kunjat e energjisë të modulit RGB dhe pin D33 me kunjin e të dhënave.

Hapi 4: Konfigurimi i softuerit

Pjesa më e madhe bëhet nga programimi. Ne përdorim Arduino IDE për të programuar Magicbit tonë. Në kodin ne përdorim disa biblioteka. Ato janë biblioteka Adafruit Neopixel për kontroll Neopixel LED dhe biblioteka Adafruit OLED për OLED të trajtuar. Në konfigurimin ne konfigurojmë hyrjet dhe daljet tona. Konfiguroni gjithashtu ekranin e integruar OLED në Magicbit. Në lak ne kontrollojmë butonin e majtë të shtypur të shtypur ose jo të Magicbit. Nëse shtypet, sinjali hyrës është 0. Sepse është tërhequr tashmë nga bordi. Nëse shtypet atëherë bëjmë kontrollimin e ngjyrave. Nëse jo, atëherë ekrani do të shfaqë deklaratën "pa ngjyrë". Kur shtypet butoni, ndizni automatikisht dritat e kuqe, jeshile dhe blu një nga një dhe ruani sasinë e reflektimit të ngjyrave në tre ndryshore. Tjetra ne i krahasojmë ato vlera dhe zgjedhim ngjyrën e vlerës maksimale për t'u shfaqur si ngjyra e daljes.

Pra, lidhni kabllon mikro USB me Magicbit dhe zgjidhni llojin e bordit dhe portat com si duhet. Tani ngarkoni kodin. Atëherë është koha për të testuar sensorin tonë. Për ta provuar atë, mbani letër ose fletë të kuqe, jeshile ose blu në sipërfaqe në modulin LDR dhe RGB dhe shtypni butonin e majtë të shtypjes. Pastaj ekrani OLED do të tregojë se cila është ngjyra e sipërfaqes. Nëse kjo është e gabuar arsyeja është se disa ngjyra kanë intensitet të lartë të dritës. Si shembull në çdo sipërfaqe të gjelbër dalja është e kuqe atëherë ju duhet të zvogëloni shkëlqimin e dritës së kuqe nga një sasi. Sepse drita e kuqe ka shkëlqim shumë të lartë në atë rast. Pra, ata kanë reflektim të lartë. Nëse nuk dini si ta kontrolloni shkëlqimin, atëherë referojuni mësimit në lidhjen më poshtë.

magicbit-arduino.readthedocs.io/en/latest/

Në këtë lidhje mund të gjeni se si ta kontrolloni atë modul RGB nga Magicbit. Dhe gjithashtu mund të gjeni se si të punoni me LDR dhe shtypni butonin duke përdorur Magicbit. Lexoni atë dokument dhe studioni më tej se si të përmirësoni sensorin e ngjyrave. Sepse ky është një shembull shumë themelor se si funksionojnë sensorët e ngjyrave. Shumica e llojeve të sensorëve të ngjyrave funksionojnë në këtë mënyrë. Prandaj përpiquni ta përmirësoni këtë duke hequr zhurmën e dritës së ambientit dhe zhurmat e tjera.

Hapi 5: Kodi i sensorit të ngjyrave Arduino

#përfshi

#përcakto LED_PIN 33

#përcakto LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #include #include #include #define OLED_RESET 4 Adafruit_SSD1306 ekran (128, 64); #define LDR 36 #define Button 35 int R_vlera, G_vlera, B_vlera; void setup () {LED.filloj (); LED.shfaq (); pinMode (LDR, INPUT); pinMode (Butoni, HYRJA); shfaqje.fillo (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); vonesa (1000); display.clearDisplay (); Serial.filloj (9600); } void loop () {if (digitalRead (Button) == 0) {// nëse shtypet butoni LED.setPixelColor (0, LED. Color (0, 50, 0)); // në LED me ngjyrë të kuqe. shfaqje (); vonesë (100); R_vlera = analogRead (LDR); // merrni LED të kuq të montimit.setPixelColor (0, LED. Color (150, 0, 0)); // në LED me ngjyrë të gjelbër. Shfaqje (); vonesë (100); G_vlera = analogRead (LDR); // merrni LED të gjelbër të montimit.setPixelColor (0, LED. Color (0, 0, 255)); // në LED blucolour.show (); vonesë (100); B_vlera = analogRead (LDR); // merrni ngjitje blu nëse (R_vlera> G_vlera && R_value> B_vlera) {// e kuqja është më e pasqyruar Ekrani ("KUQ", 3); } tjetër nëse (G_vlera> R_vlera && G_value> B_vlera) {// jeshileja është ekrani më i pasqyruar ("GREEN", 3); } tjetër nëse (B_vlera> R_vlera && B_vlera> G_vlera) {// bluja është ekrani më i pasqyruar ("BLUE", 3); } Serial.print ("KUQ ="); Serial.print (R_vlera); Serial.print ("GREEN ="); Serial.print (G_vlera); Serial.print ("BLUE ="); Serial.println (vlera B_); } else {LED.setPixelColor (0, LED. Color (0, 0, 0)); // fikur RGB LED.show (); Ekran ("NO COLOR", 2); }} void Display (String commond, int size) {// shfaq të dhënat display.clearDisplay (); display.setTextSize (madhësia); // Normal 1: 1 shkallë pixel display.setTextColor (WHITE); // Vizatoni ekranin e tekstit të bardhë.setCursor (0, 20); // Filloni në ekranin e këndit të sipërm të majtë.println (i përbashkët); display.display (); }

Recommended: