Talaan ng mga Nilalaman:

Simpleng Sensor ng Kulay ng DIY Mula sa Magicbit: 5 Mga Hakbang
Simpleng Sensor ng Kulay ng DIY Mula sa Magicbit: 5 Mga Hakbang

Video: Simpleng Sensor ng Kulay ng DIY Mula sa Magicbit: 5 Mga Hakbang

Video: Simpleng Sensor ng Kulay ng DIY Mula sa Magicbit: 5 Mga Hakbang
Video: DIY/mountain dew craft idea/DIY empty plastic bottle creative design/ 2024, Nobyembre
Anonim
Image
Image

Sa tutorial na ito matututunan natin ang tungkol sa kung paano gumawa ng isang simpleng sensor ng kulay gamit ang Magicbit sa Arduino.

Mga gamit

  • Magicbit
  • USB-A hanggang sa Micro-USB Cable

Hakbang 1: Kwento

Pag-setup ng Hardware
Pag-setup ng Hardware

Kumusta mga tao, sa ilang mga oras kailangan mong gumamit ng mga color sensor para sa ilang mga layunin. Ngunit maaaring hindi mo alam kung paano ito gumagana. Kaya Sa tutorial na ito matututunan mo ang tungkol sa kung paano gumawa ng isang simpleng sensor ng kulay ng DIY gamit ang Magicbit sa Arduino. Magsimula na tayo.

Hakbang 2: Teorya at Pamamaraan

Sa proyektong ito inaasahan naming turuan ka na bumuo ng color sensor na maaaring makakita ng pula, berde at asul na mga kulay. Ito ay napaka pangunahing halimbawa. Kaya kung paano ito gawin. Para sa hangaring ito ginagamit namin ang RGB module ng Magicbit at inbuilt LDR. Una sa lahat kailangan mong malaman tungkol sa ilang teorya. Iyon ay tungkol sa ilaw na halaga ng pagsasalamin. Ngayon nagtatanong ako mula sa iyo. Ano ang may kulay na ibabaw na pinaka sumasalamin sa pulang kulay ng ilaw? Gayundin kung ano ang mga ibabaw na karamihan ay sumasalamin ng mga ilaw na Green at Blue. Mag-isip ng kaunti. Ngunit ang sagot ay simple. Ang Pulang kulay na may kulay sa karamihan ay sumasalamin sa pulang kulay ng ilaw. Gayundin ang berde at asul na mga ibabaw ay magpapakita ng berde at asul na mga ilaw. Kaya sa proyektong ito ginagamit namin ang teorya na iyon. Upang makilala ang kulay naglalabas kami ng pula, berde at asul na mga ilaw isa-isa. Sa bawat oras na sinusukat namin ang halaga ng pagmuni-muni sa pamamagitan ng paggamit ng halaga ng LDR. Kung ang ilang ilaw ay magbibigay ng karamihan sa pagsasalamin kaysa sa iba pang dalawang ilaw, kung gayon ang ibabaw na iyon ay dapat na masasalamin nang may kulay na ibabaw.

Hakbang 3: Pag-setup ng Hardware

Ito ay napaka-simple. I-plug ang iyong RGB module sa kanang itaas na port ng Magicbit. Ang modyul na ito ay mayroong WS2812B Neopixel LED. Ang LED na ito ay mayroong 4 na mga pin. Dalawa para sa lakas at dalawa para sa Data sa at labas. Dahil gumagamit kami ng isang humantong kailangan lang namin ang mga power pin at data sa pin. Kung wala kang modyul na iyon maaari kang bumili at Neopixel module. Kung binili mo ang ganoong uri ng module kailangan mong ikonekta ang mga power pin at data sa pin sa Magicbit. Napakadali niyan. Ikonekta ang VCC at GND ng Magicbit sa mga power pin ng RGB module at D33 pin sa data pin.

Hakbang 4: Pag-setup ng Software

Ang pinaka bahagi na nagawa ng programa. Gumagamit kami ng Arduino IDE upang i-program ang aming Magicbit. Sa code na ginagamit namin ang ilang mga aklatan. Ang mga ito ay Adafruit Neopixel library para makontrol ang Neopixel LED at Adafruit OLED library para sa hawakan ng OLED. Sa pag-setup ay nai-configure namin ang aming mga input at output. I-configure din ang nakapaloob na OLED display sa Magicbit. Sa loop sinusuri namin ang kaliwang pindutan ng itulak ay pinindot o hindi ng Magicbit. Kung pinindot nito, ang input signal ay 0. Dahil hinila na ito ng board. Kung pinindot nito ay ginagawa namin ang pagsuri sa kulay. Kung hindi pagkatapos ay ipapakita ng screen ang "walang kulay" na pahayag. Kapag pinindot ang pindutan pagkatapos ay awtomatikong i-on ang pula, berde at asul na mga ilaw isa-isa at iimbak ang dami ng pagsasalamin ng mga kulay sa tatlong mga variable. Susunod na inihambing namin ang mga halagang iyon at pinili ang maximum na kulay ng halaga upang ipakita bilang kulay ng output.

Kaya't ikonekta ang micro USB cable sa Magicbit at piliin ang uri ng board at com port nang tama. I-upload ngayon ang code. Pagkatapos oras na upang subukan ang aming sensor. Upang subukan ito, panatilihin ang pula, berde o asul na ibabaw na papel o sheet sa tuktok ng LDR at RGB module at pindutin ang kaliwang pindutan ng itulak. Pagkatapos ay ipapakita ng OLED ang ano ang kulay ng ibabaw. Kung mali iyan ang dahilan ay ang ilang mga kulay ay may mataas na intensity ng ilaw. Bilang isang halimbawa sa bawat berdeng ibabaw ang output ay pula pagkatapos ay kailangan mong bawasan ang ilaw ng pulang ilaw mula sa ilang halaga. Dahil ang pulang ilaw ay may napakataas na ningning sa kasong iyon. Kaya't mayroon itong mataas na repleksyon. Kung hindi mo alam kung paano makontrol ang liwanag, pagkatapos ay mag-refer sa tutorial sa link sa ibaba.

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

Sa link na ito maaari mong makita kung paano makontrol ang module na RGB mula sa Magicbit. At maaari mo ring malaman kung paano gumana sa LDR at pindutan ng push gamit ang Magicbit. Basahin ang dokumentong iyon at pag-aralan pa kung paano mapapabuti ang color sensor. Sapagkat ito ay napaka pangunahing halimbawa tungkol sa kung paano gumagana ang mga color sensors. Ang karamihan sa uri ng mga sensor ng kulay ay gumagana sa ganitong paraan. Kaya subukang pagbutihin ito sa pamamagitan ng pag-aalis ng ambient light noise at iba pang mga ingay.

Hakbang 5: Arduino Code of Color Sensor

# isama

# tukuyin ang 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 display (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 (Button, INPUT); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); pagkaantala (1000); display.clearDisplay (); Serial.begin (9600); } void loop () {if (digitalRead (Button) == 0) {// kung ang pindutan ay pinindot LED.setPixelColor (0, LED. Color (0, 50, 0)); // sa redcolour LED.show (); pagkaantala (100); R_value = analogRead (LDR); // get red mount LED.setPixelColor (0, LED. Color (150, 0, 0)); // on greencolour LED.show (); pagkaantala (100); G_value = analogRead (LDR); // get green mount LED.setPixelColor (0, LED. Color (0, 0, 255)); // sa bluecolour LED.show (); pagkaantala (100); B_value = analogRead (LDR); // get blue mount if (R_value> G_value && R_value> B_value) {// red ay pinaka nakalarawan Display ("RED", 3); } iba pa kung (G_value> R_value && G_value> B_value) {// berde ang pinaka masasalamin sa Display ("GREEN", 3); } iba pa kung (B_value> R_value && B_value> G_value) {// asul ang pinaka masasalamin na Display ("BLUE", 3); } Serial.print ("RED ="); Serial.print (R_value); Serial.print ("GREEN ="); Serial.print (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } iba pa {LED.setPixelColor (0, LED. Color (0, 0, 0)); // off RGB LED.show (); Ipakita ("WALANG Kulay", 2); }} void Display (String commond, int size) {// display data display.clearDisplay (); display.setTextSize (laki); // Normal 1: 1 pixel scale display.setTextColor (WHITE); // Draw white text display.setCursor (0, 20); // Magsimula sa itaas na kaliwang display ng sulok.println (commond); display.display (); }

Inirerekumendang: