Inhoudsopgave:
- Benodigdheden
- Stap 1: Verhaal
- Stap 2: Theorie en methodologie
- Stap 3: Hardware-installatie
- Stap 4: Software-installatie
- Stap 5: Arduino-code van kleursensor
Video: Eenvoudige doe-het-kleurensensor van Magicbit - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
In deze tutorial leren we hoe je een eenvoudige kleurensensor kunt maken met Magicbit met Arduino.
Benodigdheden
- Magicbit
- USB-A naar micro-USB-kabel
Stap 1: Verhaal
Hallo allemaal, soms moet je voor bepaalde doeleinden kleursensoren gebruiken. Maar misschien weet je niet hoe ze werken. Dus in deze tutorial leer je hoe je een eenvoudige DIY-kleurensensor kunt maken met Magicbit met Arduino. Laten we beginnen.
Stap 2: Theorie en methodologie
In dit project verwachten we je te leren kleurensensoren te bouwen die rode, groene en blauwe kleuren kunnen detecteren. Dit is een heel eenvoudig voorbeeld. Dus hoe dit te doen. Hiervoor gebruiken we de RGB-module van de Magicbit en ingebouwde LDR. Allereerst moet je wat theorie leren. Dat is ongeveer de hoeveelheid lichtreflectie. Nu stel ik een vraag van jou. Welk gekleurd oppervlak reflecteert het meeste rood licht en welke oppervlakken reflecteren meestal groen en blauw licht. Denk een beetje na. Maar het antwoord is simpel. Het roodgekleurde oppervlak reflecteert meestal rood gekleurd licht. Ook groene en blauwe oppervlakken reflecteren groen en blauw licht. Dus in dit project gebruiken we die theorie. Om kleur te herkennen zenden we één voor één rood, groen en blauw licht uit. Telkens als we de reflectiehoeveelheid meten met behulp van de LDR-waarde. Als wat licht de meeste reflectie geeft dan andere twee lichten, dan moet dat oppervlak grotendeels een gereflecteerd gekleurd oppervlak zijn.
Stap 3: Hardware-installatie
Dit heel eenvoudig. Sluit uw RGB-module aan op de rechterbovenpoort van Magicbit. Deze module heeft WS2812B Neopixel LED. Deze LED heeft 4 pinnen. Twee voor stroom en twee voor data in en uit. Omdat we één led gebruiken, hebben we alleen stroompinnen en gegevens in pin nodig. Als je die module niet hebt, kun je een Neopixel-module kopen. Als je zo'n module hebt gekocht, moet je power-pins en data in pin aansluiten op Magicbit. Dat is heel gemakkelijk. Sluit VCC en GND van de Magicbit aan op de voedingspinnen van de RGB-module en de D33-pin op de datapin.
Stap 4: Software-installatie
Het grootste deel wordt gedaan door de programmering. We gebruiken Arduino IDE om onze Magicbit te programmeren. In de code gebruiken we een aantal bibliotheken. Ze zijn Adafruit Neopixel-bibliotheek voor controle Neopixel LED en Adafruit OLED-bibliotheek voor handvat OLED. In de setup configureren we onze inputs en outputs. Configureer ook het ingebouwde OLED-display op Magicbit. In de loop controleren we of de linker drukknop is ingedrukt of niet van de Magicbit. Als het wordt ingedrukt, is het ingangssignaal 0. Omdat het al door het bord omhoog wordt getrokken. Als het erop drukt, doen we een kleurcontrole. Als dit niet het geval is, wordt op het scherm de melding "geen kleur" weergegeven. Wanneer op de knop wordt gedrukt, worden automatisch de rode, groene en blauwe lichten één voor één ingeschakeld en wordt de hoeveelheid reflectie van de kleuren in drie variabelen opgeslagen. Vervolgens hebben we die waarden vergeleken en de maximale waardekleur geselecteerd om als uitvoerkleur weer te geven.
Sluit dus de micro-USB-kabel aan op Magicbit en selecteer het bordtype en de com-poorten correct. Upload nu de code. Dan is het tijd om onze sensor te testen. Om dat te testen, houdt u rood, groen of blauw papier of vel papier op de LDR- en RGB-module en drukt u op de linkerdrukknop. Dan toont het OLED-scherm wat de kleur van het oppervlak is. Als dat verkeerd is, is de reden dat een kleur een hoge lichtintensiteit heeft. Als voorbeeld in elk groen oppervlak is de output rood, dan moet je de helderheid van rood licht van een bepaalde hoeveelheid verminderen. Omdat het rode licht in dat geval een zeer hoge helderheid heeft. Dus het heeft een hoge reflectie. Als u niet weet hoe u de helderheid kunt regelen, raadpleeg dan de tutorial in de onderstaande link.
magicbit-arduino.readthedocs.io/en/latest/
In deze link vind je hoe je die RGB-module van Magicbit aanstuurt. En je kunt ook vinden hoe je met LDR en drukknop werkt met Magicbit. Lees dat document en bestudeer verder hoe u de kleursensor kunt verbeteren. Omdat dit een heel eenvoudig voorbeeld is van hoe kleurensensoren werken. De meeste soorten kleursensoren werken op deze manier. Probeer dit dus te verbeteren door het omgevingslichtgeluid en andere geluiden te verwijderen.
Stap 5: Arduino-code van kleursensor
#erbij betrekken
#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 Knop 35 int R_value, G_value, B_value; void setup() { LED.begin(); LED.show(); pinMode (LDR, INGANG); pinMode (Knop, INPUT); display.begin(SSD1306_SWITCHCAPVCC, 0x3C); weergave.weergave(); vertraging (1000); display.clearDisplay(); Serieel.begin(9600); } void loop() {if(digitalRead(Button)==0){// if button is ingedrukt LED.setPixelColor(0, LED. Color(0, 50, 0)); //op rode kleur LED.show(); vertraging (100); R_value=analogRead(LDR);//get rode mount LED.setPixelColor(0, LED. Color(150, 0, 0));//on greencolour LED.show(); vertraging (100); G_value=analogRead (LDR);//get groene mount LED.setPixelColor (0, LED. Color (0, 0, 255)); //op blauwkleurige LED.show(); vertraging (100); B_value=analogRead(LDR);//get blue mount if (R_value>G_value && R_value>B_value){//rood wordt het meest weergegeven Display("RED", 3); } else if (G_value>R_value && G_value>B_value){//groen wordt het meest weergegeven Display("GREEN", 3); } else if (B_value>R_value && B_value>G_value){//blue wordt het meest weergegeven Display("BLUE", 3); } Serie.print("RED="); Serial.print(R_waarde); Serial.print(" GROEN="); Serial.print(G_waarde); Serieel.print("BLAUW="); Serial.println(B_waarde); } else{ LED.setPixelColor(0, LED. Color(0, 0, 0)); // uit RGB LED.show(); Display("GEEN KLEUR", 2); } } void Display (String commond, int size) { // display data display.clearDisplay (); display.setTextSize(grootte); // Normaal 1:1 pixelschaal display.setTextColor (WHITE); // Teken witte tekst display.setCursor (0, 20); // Begin in de linkerbovenhoek display.println(commond); weergave.weergave(); }
Aanbevolen:
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch): 5 stappen
(Zeer eenvoudige) ziektemodellering (met behulp van Scratch): vandaag simuleren we een uitbraak van een ziekte, waarbij het een ziekte is, niet noodzakelijkerwijs COVID-19. Deze simulatie is geïnspireerd op een video van 3blue1brown, waarnaar ik zal linken. Aangezien dit slepen en neerzetten is, kunnen we niet zoveel doen als met JS of Pyt
Live bewaking van de waarde van uw sensor van overal ter wereld: 4 stappen
Live monitoring van de waarde van uw sensor van overal ter wereld: ik kreeg een bericht op het WhatsApp-nummer van techneuten met betrekking tot hulp bij het maken van één project. Het project was om de druk op de druksensor te meten en deze op een smartphone weer te geven. Dus ik hielp bij het maken van dat project en besloot een bijlesdocent te maken
Verdubbel de levensduur van de batterij van de DX3-radio van Spektrum voor minder dan $ 20: 11 stappen
Verdubbel de levensduur van de batterij van de DX3-radio van Spektrum voor minder dan $ 20: ik kreeg het idee hiervoor voor het eerst op de draad voor de DX6/7 op RCGRoups.com-forums. Ik rijd met nitro-auto's, dus kocht ik een DX3. Ik heb de radio een tijdje gebruikt en mijn batterijduur was aan de betere kant van de meeste radio's - maar de DX7-bezitters begonnen
Hoe u gebruikersniveaus van NUMA toevoegt aan uw exemplaar van N met behulp van NumADD Firefox AddOn: 4 stappen
Gebruikersniveaus van NUMA toevoegen aan uw exemplaar van N NumADD Firefox-add-on gebruiken: Elke gebruiker van Metanet's N-database op gebruikersniveau NUMA weet hoe onhandig de interface is voor het kopiëren van door gebruikers gemaakte niveaus naar uw exemplaar van het spel. NumADD, elimineert de noodzaak van kopiëren en plakken en maakt het overzetten van niveaus het werk van één muisklik
Een batterijpakket van 4,5 volt maken van een batterij van 9 V: 4 stappen
Een 4,5 volt batterijpakket maken van een 9V-batterij: deze instructie gaat helemaal over het splitsen van een 9V-batterij in 2 kleinere 4,5V-batterijpakketten. De belangrijkste reden om dit te doen is 1. Je wilt 4,5 volt 2. Je wilt fysiek iets kleiners dan een 9V batterij