Tartalomjegyzék:

Egyszerű DIY színérzékelő a Magicbit -től: 5 lépés
Egyszerű DIY színérzékelő a Magicbit -től: 5 lépés

Videó: Egyszerű DIY színérzékelő a Magicbit -től: 5 lépés

Videó: Egyszerű DIY színérzékelő a Magicbit -től: 5 lépés
Videó: IT'S UNBELIEVABLE. WAY TO MAKE A PUMPKIN USING PRESSURE AND Groups. Learn some thing new TODAY. 2024, November
Anonim
Image
Image

Ebben az oktatóanyagban megtanuljuk, hogyan lehet egyszerű színérzékelőt készíteni a Magicbit és az Arduino segítségével.

Kellékek

  • Magicbit
  • USB-A-Micro-USB kábel

1. lépés: Történet

Hardver beállítása
Hardver beállítása

Sziasztok srácok, időnként színérzékelőket kell használni bizonyos célokra. De lehet, hogy nem tudod, hogyan működnek. Tehát ebben az oktatóanyagban megtudhatja, hogyan lehet egyszerű DIY színérzékelőt készíteni a Magicbit és az Arduino segítségével. Kezdjük.

2. lépés: Elmélet és módszertan

Ebben a projektben elvárjuk, hogy megtanítsuk Önt színérzékelő készítésére, amely képes észlelni a piros, zöld és kék színeket. Ez nagyon alapvető példa. Tehát hogyan kell ezt megtenni. Ebből a célból a Magicbit RGB modulját és a beépített LDR -t használjuk. Először is meg kell tanulnod néhány elméletet. Ez a fényvisszaverődés mennyiségéről szól. Most kérdezek tőled. Melyik színes felület tükrözi leginkább a vörös színű fényt? És milyen felületek tükrözik leginkább a zöld és a kék fényt. Gondolkozz egy kicsit. De a válasz egyszerű. A vörös színű felület többnyire vörös színű fényt tükröz. A zöld és kék felületek szintén zöld és kék fényeket tükröznek. Tehát ebben a projektben ezt az elméletet használjuk. A szín felismeréséhez egyenként vörös, zöld és kék fényt bocsátunk ki. Minden alkalommal LDR érték segítségével mérjük a visszaverődés mértékét. Ha valamelyik fény a legtöbb tükröződést adja, mint a másik két fény, akkor ennek a felületnek többnyire visszavert színű felületnek kell lennie.

3. lépés: Hardver beállítása

Ez nagyon egyszerű. Csatlakoztassa az RGB modult a Magicbit jobb felső portjához. Ez a modul WS2812B Neopixel LED -del rendelkezik. Ennek a LED -nek 4 csapja van. Kettő a tápellátáshoz, kettő az adatok ki- és bekapcsolásához. Mivel egy LED -et használunk, csak tápcsatlakozókra és adatokra van szükségünk. Ha nincs meg az a modul, megvásárolhatja a Neopixel modult. Ha ilyen modult vásárolt, akkor csatlakoztassa a tápcsatlakozókat és az adatokat pin -ben a Magicbit -hez. Ez nagyon könnyű. Csatlakoztassa a Magicbit VCC -jét és GND -jét az RGB modul tápcsatlakozóihoz és a D33 tűt az adatcsaphoz.

4. lépés: Szoftver beállítása

A legtöbbet a programozás végzi. Arduino IDE -t használunk a Magicbit programozásához. A kódban néhány könyvtárat használunk. Ezek az Adafruit Neopixel könyvtár a Neopixel LED vezérléséhez és az Adafruit OLED könyvtár az OLED fogantyúhoz. A beállítás során konfiguráljuk a bemeneteket és kimeneteket. Konfigurálja a Magicbit beépített OLED kijelzőjét is. A ciklusban ellenőrizzük, hogy a bal oldali nyomógomb megnyomva van -e vagy nem a Magicbit. Ha megnyomta, a bemeneti jel 0. Mivel a tábla már felhúzta. Ha megnyomta, színellenőrzést végzünk. Ha nem, akkor a képernyőn megjelenik a "nincs szín" kiírás. Amikor megnyomja a gombot, automatikusan kapcsolja be egyenként a piros, zöld és kék fényeket, és tárolja a színek visszaverődési mennyiségét három változóba. Ezután összehasonlítottuk ezeket az értékeket, és kiválasztottuk a maximális érték színét, hogy megjelenjen kimeneti színként.

Csatlakoztassa tehát a mikro -USB -kábelt a Magicbit -hez, és válassza ki a kártya típusát és a kom portokat. Most töltse fel a kódot. Akkor itt az ideje, hogy teszteljük az érzékelőnket. Ennek teszteléséhez tartson piros, zöld vagy kék felületű papírt vagy lapot az LDR és RGB modulon, majd nyomja meg a bal oldali nyomógombot. Ezután az OLED kijelző megmutatja a felület színét. Ha ez rossz, az oka annak, hogy bizonyos színek nagy fényerősségűek. Példaként minden zöld felületen a kimenet vörös, akkor bizonyos mennyiségről csökkentenie kell a vörös fény fényességét. Mivel a vörös fény ebben az esetben nagyon nagy fényerejű. Tehát nagy a visszaverődése. Ha nem tudja, hogyan kell szabályozni a fényerőt, olvassa el az alábbi linken található oktatóanyagot.

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

Ezen a linken megtalálhatja, hogyan vezérelheti az adott RGB modult a Magicbit segítségével. Azt is megtudhatja, hogyan kell dolgozni az LDR -rel és a nyomógombbal a Magicbit segítségével. Olvassa el ezt a dokumentumot, és tanulmányozza tovább, hogyan javíthatja a színérzékelőt. Mert ez nagyon alapvető példa a színérzékelők működésére. A legtöbb színérzékelő ilyen módon működik. Tehát próbálja ezt javítani a környezeti fényzaj és egyéb zajok eltávolításával.

5. lépés: Arduino színérzékelő kódja

#befoglalni

#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 kijelző (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 (gomb, INPUT); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); késleltetés (1000); display.clearDisplay (); Sorozat.kezdet (9600); } void loop () {if (digitalRead (Button) == 0) {// ha a gombot megnyomják LED.setPixelColor (0, LED. Color (0, 50, 0)); // a vörös színű LED -en.show (); késleltetés (100); R_érték = analógRead (LDR); // kap piros rögzítést LED.setPixelColor (0, LED. Color (150, 0, 0)); // on greencolour LED.show (); késleltetés (100); G_value = analogRead (LDR); // get green mount LED.setPixelColor (0, LED. Color (0, 0, 255)); // a kék színű LED -en.show (); késleltetés (100); B_érték = analóg olvasás (LDR); // kap kék rögzítést, ha (R_érték> G_érték && R_érték> B_érték) {// a piros a legjobban tükröződik Kijelző ("PIROS", 3); } else if (G_érték> R_érték && G_érték> B_érték) {// zöld a legjobban tükröződik Kijelző ("ZÖLD", 3); } else if (B_érték> R_érték && B_érték> G_érték) {// a kék a legjobban tükröződik Kijelző ("KÉK", 3); } Serial.print ("RED ="); Soros.nyomtatás (R_érték); Serial.print ("ZÖLD ="); Serial.print (G_value); Serial.print ("KÉK ="); Soros.println (B_érték); } else {LED.setPixelColor (0, LED. Color (0, 0, 0)); // ki RGB LED.show (); Kijelző ("NO COLOR", 2); }} void Display (String commond, int size) {// display data display.clearDisplay (); display.setTextSize (méret); // Normál 1: 1 képpont méretű kijelző.setTextColor (FEHÉR); // Fehér szöveg rajzolása display.setCursor (0, 20); // Kezdje a bal felső sarokban lévő kijelzővel.println (közös); display.display (); }

Ajánlott: