Innehållsförteckning:

Enkel DIY färgsensor från Magicbit: 5 steg
Enkel DIY färgsensor från Magicbit: 5 steg

Video: Enkel DIY färgsensor från Magicbit: 5 steg

Video: Enkel DIY färgsensor från Magicbit: 5 steg
Video: Arduino Color Sensing Tutorial - TCS230 TCS3200 Color Sensor 2024, November
Anonim
Image
Image

I denna handledning lär vi oss hur man gör en enkel färgsensor med Magicbit med Arduino.

Tillbehör

  • Magicbit
  • USB-A till mikro-USB-kabel

Steg 1: Berättelse

Hardware Setup
Hardware Setup

Hej killar, ibland måste du använda färgsensorer för vissa ändamål. Men du kanske inte vet hur de fungerar. Så i denna handledning lär du dig hur du gör en enkel DIY färgsensor med Magicbit med Arduino. Låt oss komma igång.

Steg 2: Teori och metodik

I detta projekt förväntar vi oss att lära dig att bygga färgsensor som kan upptäcka röda, gröna och blå färger. Detta är ett mycket grundläggande exempel. Så hur gör man detta. För detta ändamål använder vi RGB -modulen för Magicbit och inbyggd LDR. Först måste du lära dig lite teori. Det handlar om ljusreflektion. Nu ställer jag en fråga från dig. Vilken färgad yta som reflekterar mest rött ljus? Vilka ytor som mest reflekterar grönt och blått ljus. Tänk lite. Men svaret är enkelt. Den rödfärgade ytan reflekterar mestadels rött ljus. Även gröna och blå ytor reflekterar grönt och blått ljus. Så i detta projekt använder vi den teorin. För att känna igen färg avger vi röda, gröna och blå lampor en efter en. Varje gång vi mäter reflektionsmängden genom att använda LDR -värde. Om något ljus ger mest reflektion än andra två lampor, bör den ytan mestadels reflekteras färgad yta.

Steg 3: Hårdvaruinstallation

Detta mycket enkelt. Anslut din RGB -modul till den övre högra porten på Magicbit. Denna modul har WS2812B Neopixel LED. Denna LED har 4 stift. Två för ström och två för data in och ut. Eftersom vi använder en LED behöver vi bara power pins och data i pin. Om du inte har den modulen kan du köpa och Neopixel -modulen. Om du köpte den typen av moduler måste du ansluta strömstiften och data i stift till Magicbit. Det är väldigt lätt. Anslut VCC och GND för Magicbit till strömstiften på RGB -modulen och D33 -stiftet till datastiftet.

Steg 4: Programvaruinstallation

Det mesta görs av programmeringen. Vi använder Arduino IDE för att programmera vår Magicbit. I koden använder vi ett par bibliotek. De är Adafruit Neopixel -bibliotek för kontroll Neopixel LED och Adafruit OLED -bibliotek för handtag OLED. I installationen konfigurerar vi våra in- och utgångar. Konfigurera också den inbyggda OLED -skärmen på Magicbit. I slingan kontrollerar vi att den vänstra tryckknappen är tryckt eller inte på Magicbit. Om den trycks in är insignalen 0. Eftersom den redan har dragits upp av kortet. Om det tryckte på gör vi färgkontroll. Om inte, visar skärmen "ingen färg". När knappen trycks in tänds automatiskt röda, gröna och blå lampor en efter en och lagrar reflektionsmängden för färgerna i tre variabler. Därefter jämförde vi dessa värden och väljer högsta färgvärde som ska visas som utgångsfärg.

Så anslut mikro -USB -kabel till Magicbit och välj korttyp och com -portar korrekt. Ladda nu upp koden. Då är det dags att testa vår sensor. För att testa det, behåll det röda, gröna eller blå ytpapper eller bladet på LDR- och RGB -modulen och tryck på vänster tryckknapp. Då visar OLED -skärmen vad som är ytans färg. Om det är fel är anledningen till att vissa färger har hög ljusintensitet. Som ett exempel i varje grön yta är utmatningen röd då måste du minska rödljusets ljusstyrka från en viss mängd. Eftersom det röda ljuset har mycket hög ljusstyrka i så fall. Så det har hög reflektion. Om du inte vet hur du styr ljusstyrkan, läs handledningen i länken nedan.

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

I den här länken kan du hitta hur du styr den RGB -modulen från Magicbit. Och du kan också hitta hur du arbetar med LDR och tryckknapp med Magicbit. Läs det dokumentet och studera vidare hur man förbättrar färgsensorn. För det här är ett mycket grundläggande exempel på hur färgsensorer fungerar. De flesta typer av färgsensorer fungerar på detta sätt. Så försök att förbättra detta genom att ta bort ljudet från omgivande ljus och andra ljud.

Steg 5: Arduino Code of Color Sensor

#omfatta

#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 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 (knapp, INGÅNG); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); fördröjning (1000); display.clearDisplay (); Serial.begin (9600); } void loop () {if (digitalRead (Button) == 0) {// om knappen trycks in LED.setPixelColor (0, LED. Color (0, 50, 0)); // på rödfärgad LED.show (); fördröjning (100); R_value = analogRead (LDR); // få rödmonterad LED.setPixelColor (0, LED. Color (150, 0, 0)); // på grön färg LED.show (); fördröjning (100); G_value = analogRead (LDR); // get green mount LED.setPixelColor (0, LED. Color (0, 0, 255)); // på blåfärgad LED.show (); fördröjning (100); B_value = analogRead (LDR); // få blått fäste om (R_value> G_value && R_value> B_value) {// rött är mest reflekterad Display ("RED", 3); } annat om (G_värde> R_värde && G_värde> B_värde) {// grönt reflekteras mest Display ("GRÖN", 3); } annars om (B_värde> R_värde && B_värde> G_värde) {// blå är mest reflekterad Display ("BLÅ", 3); } Serial.print ("RÖD ="); Serial.print (R_value); Serial.print ("GRÖN ="); Serial.print (G_value); Serial.print ("BLÅ ="); Serial.println (B_värde); } annat {LED.setPixelColor (0, LED. Color (0, 0, 0)); // av RGB LED.show (); Display ("INGEN FÄRG", 2); }} void Display (String commond, int size) {// display data display.clearDisplay (); display.setTextSize (storlek); // Normal 1: 1 pixel skala display.setTextColor (WHITE); // Rita vit text display.setCursor (0, 20); // Börja i övre vänstra hörnet display.println (commond); display.display (); }

Rekommenderad: