Satura rādītājs:

Vienkāršs DIY krāsu sensors no Magicbit: 5 soļi
Vienkāršs DIY krāsu sensors no Magicbit: 5 soļi

Video: Vienkāršs DIY krāsu sensors no Magicbit: 5 soļi

Video: Vienkāršs DIY krāsu sensors no Magicbit: 5 soļi
Video: 3 в 1 ZigBee датчик температуры, влажности и освещения с LCD дисплеем 2024, Novembris
Anonim
Image
Image

Šajā apmācībā mēs uzzināsim, kā izveidot vienkāršu krāsu sensoru, izmantojot Magicbit ar Arduino.

Piegādes

  • Magicbit
  • Kabelis no USB-A līdz mikro-USB

1. darbība: stāsts

Aparatūras iestatīšana
Aparatūras iestatīšana

Sveiki puiši, dažos gadījumos dažos nolūkos jums ir jāizmanto krāsu sensori. Bet, iespējams, jūs nezināt, kā tie darbojas. Tātad šajā apmācībā jūs uzzināsit, kā izveidot vienkāršu DIY krāsu sensoru, izmantojot Magicbit ar Arduino. Sāksim darbu.

2. darbība: teorija un metodoloģija

Šajā projektā mēs ceram iemācīt jums izveidot krāsu sensoru, kas var noteikt sarkano, zaļo un zilo krāsu. Tas ir ļoti vienkāršs piemērs. Tātad, kā to izdarīt. Šim nolūkam mēs izmantojam Magicbit RGB moduli un iebūvēto LDR. Vispirms jums jāapgūst kāda teorija. Tas ir par gaismas atstarošanas daudzumu. Tagad es uzdodu jums jautājumu. Kāda krāsaina virsma visvairāk atspoguļo sarkano gaismu? Arī kādas virsmas, kas galvenokārt atspoguļo zaļo un zilo gaismu. Padomā mazliet. Bet atbilde ir vienkārša. Sarkanā virsma galvenokārt atspoguļo sarkano gaismu. Arī zaļās un zilās virsmas atspoguļos zaļo un zilo gaismu. Tātad šajā projektā mēs izmantojam šo teoriju. Lai atpazītu krāsu, mēs pa vienam izstarojam sarkanas, zaļas un zilas gaismas. Katru reizi, kad mēs izmērām atstarojuma daudzumu, izmantojot LDR vērtību. Ja kāda gaisma atstaro visvairāk, nekā pārējās divas gaismas, tad šai virsmai galvenokārt jābūt atstarotai krāsainai virsmai.

3. darbība. Aparatūras iestatīšana

Šis ir ļoti vienkāršs. Pievienojiet RGB moduli Magicbit augšējā labajā portā. Šim modulim ir WS2812B Neopixel LED. Šim LED ir 4 tapas. Divi jaudai un divi datu ieejai un izejai. Tā kā mēs izmantojam vienu vadu, mums ir vajadzīgas tikai strāvas tapas un dati tapā. Ja jums nav šī moduļa, varat iegādāties Neopixel moduli. Ja esat iegādājies šāda veida moduli, jums ir jāpievieno barošanas tapas un dati pin ar Magicbit. Tas ir ļoti viegli. Savienojiet Magicbit VCC un GND ar RGB moduļa strāvas tapām un D33 tapu ar datu tapu.

4. solis: programmatūras iestatīšana

Lielāko daļu paveica programmēšana. Magicbit programmēšanai mēs izmantojam Arduino IDE. Kodā mēs izmantojam pāris bibliotēkas. Tās ir Adafruit Neopixel bibliotēka Neopixel LED kontrolei un Adafruit OLED bibliotēka OLED rokturim. Iestatīšanas laikā mēs konfigurējam savas ieejas un izejas. Konfigurējiet arī Magicbit iebūvēto OLED displeju. Ciklā mēs pārbaudām, vai kreisās puses spiedpoga ir nospiesta vai nav Magicbit. Ja tas tika nospiests, ievades signāls ir 0. Tā kā tāfele to jau ir izvilkusi. Ja tas tiek nospiests, mēs pārbaudām krāsu. Ja nē, ekrānā parādīsies paziņojums "bez krāsas". Nospiežot pogu, automātiski pa vienam ieslēdziet sarkanās, zaļās un zilās gaismas un saglabājiet krāsu atstarojuma daudzumu trīs mainīgos. Tālāk mēs salīdzinājām šīs vērtības un izvēlējāmies maksimālās vērtības krāsu, lai parādītu to kā izvades krāsu.

Tāpēc pievienojiet mikro USB kabeli Magicbit un pareizi izvēlieties tāfeles tipu un com portus. Tagad augšupielādējiet kodu. Tad ir pienācis laiks pārbaudīt mūsu sensoru. Lai to pārbaudītu, turiet LDR un RGB moduļa sarkanu, zaļu vai zilu papīru vai loksnes virsu un nospiediet kreiso spiedpogu. Tad OLED displejs parādīs, kāda ir virsmas krāsa. Ja tas nav pareizi, iemesls ir tas, ka kādai krāsai ir augsta gaismas intensitāte. Piemēram, katrai zaļai virsmai izeja ir sarkana, tad jums ir jāsamazina sarkanās gaismas spilgtums no kāda daudzuma. Tā kā sarkanajai gaismai šajā gadījumā ir ļoti augsts spilgtums. Tātad tam ir augsta atstarošana. Ja jūs nezināt, kā kontrolēt spilgtumu, skatiet pamācību zemāk esošajā saitē.

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

Šajā saitē varat uzzināt, kā kontrolēt šo RGB moduli no Magicbit. Un arī jūs atradīsit, kā strādāt ar LDR un spiedpogu, izmantojot Magicbit. Izlasiet šo dokumentu un tālāk izpētiet, kā uzlabot krāsu sensoru. Tā kā tas ir ļoti vienkāršs piemērs tam, kā darbojas krāsu sensori. Lielākā daļa krāsu sensoru veidu darbojas šādā veidā. Tāpēc mēģiniet to uzlabot, novēršot apkārtējās gaismas troksni un citus trokšņus.

5. solis: Arduino krāsu sensora kods

#iekļaut

#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 displejs (128, 64); #define LDR 36 #define Button 35 int R_value, G_value, B_value; void setup () {LED.begin (); LED.šovs (); pinMode (LDR, INPUT); pinMode (poga, INPUT); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); kavēšanās (1000); display.clearDisplay (); Sērijas sākums (9600); } void loop () {if (digitalRead (Button) == 0) {// ja tiek nospiesta poga LED.setPixelColor (0, LED. Color (0, 50, 0)); // uz sarkanās krāsas LED.show (); kavēšanās (100); R_value = analogRead (LDR); // get red mount LED.setPixelColor (0, LED. Color (150, 0, 0)); // on greencolour LED.show (); kavēšanās (100); G_value = analogRead (LDR); // get green mount LED.setPixelColor (0, LED. Color (0, 0, 255)); // uz zilās krāsas LED.show (); kavēšanās (100); B_value = analogRead (LDR); // iegūt zilu stiprinājumu, ja (R_value> G_value && R_value> B_value) {// sarkanā krāsa ir visvairāk atspoguļota Displejs ("RED", 3); } else if (G_value> R_value && G_value> B_value) {// zaļā krāsa ir visvairāk atspoguļota Displejs ("GREEN", 3); } cits if (B_value> R_value && B_value> G_value) {// zils ir visvairāk atspoguļots Displejs ("BLUE", 3); } Serial.print ("RED ="); Serial.print (R_value); Serial.print ("GREEN ="); Serial.print (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } cits {LED.setPixelColor (0, LED. Color (0, 0, 0)); // izslēgts RGB LED.show (); Displejs ("NO COLOR", 2); }} void Display (String commond, int size) {// displeja datu display.clearDisplay (); display.setTextSize (izmērs); // Parasts 1: 1 pikseļu mēroga displejs.setTextColor (WHITE); // Zīmēt balta teksta displeju.setCursor (0, 20); // Sāciet displejā augšējā kreisajā stūrī.println (commond); display.display (); }

Ieteicams: