فهرست مطالب:

سنسور رنگ ساده DIY از Magicbit: 5 مرحله
سنسور رنگ ساده DIY از Magicbit: 5 مرحله

تصویری: سنسور رنگ ساده DIY از Magicbit: 5 مرحله

تصویری: سنسور رنگ ساده DIY از Magicbit: 5 مرحله
تصویری: ریشه انجیر به صورت افقی و عمودی 2024, نوامبر
Anonim
Image
Image

در این آموزش ما با نحوه ساخت یک سنسور رنگ ساده با استفاده از Magicbit با آردوینو آشنا می شویم.

تدارکات

  • Magicbit
  • کابل USB-A به Micro-USB

مرحله 1: داستان

راه اندازی سخت افزار
راه اندازی سخت افزار

سلام بچه ها ، بعضی مواقع باید از حسگرهای رنگ برای مقاصدی استفاده کنید. اما شاید بدانید که آنها چگونه کار می کنند. بنابراین در این آموزش شما با نحوه ساخت یک سنسور رنگ ساده DIY با استفاده از Magicbit با آردوینو آشنا خواهید شد. بیایید شروع کنیم

مرحله 2: نظریه و روش شناسی

در این پروژه ما انتظار داریم که به شما آموزش دهیم تا حسگر رنگی بسازید که بتواند رنگ های قرمز ، سبز و آبی را تشخیص دهد. این مثال بسیار اساسی است. بنابراین چگونه این کار را انجام دهیم. برای این منظور ما از ماژول RGB Magicbit و LDR داخلی استفاده می کنیم. اول از همه شما باید با برخی از نظریه ها آشنا شوید. این مقدار بازتاب نور است. حالا من از شما سوال می پرسم. چه سطحی رنگی که بیشتر نور قرمز را منعکس می کند؟ همچنین چه سطحی که بیشتر نورهای سبز و آبی را منعکس می کنند. کمی فکر کنید. اما پاسخ ساده است. سطح قرمز رنگ بیشتر نور قرمز را منعکس می کند. همچنین سطوح سبز و آبی نورهای سبز و آبی را منعکس خواهند کرد. بنابراین در این پروژه از آن نظریه استفاده می کنیم. برای تشخیص رنگ ، چراغ های قرمز ، سبز و آبی را یکی یکی ساطع می کنیم. در هر زمان مقدار بازتاب را با استفاده از مقدار LDR اندازه گیری می کنیم. اگر مقداری نور بیشتر از دو نور دیگر بازتاب داشته باشد ، آن سطح باید بیشتر سطح رنگی منعکس شود.

مرحله 3: راه اندازی سخت افزار

این خیلی ساده ماژول RGB خود را به پورت بالا سمت راست Magicbit وصل کنید. این ماژول دارای LED Neopixel WS2812B است. این LED دارای 4 پایه است. دو مورد برای قدرت و دو مورد برای داده های داخل و خارج. از آنجا که از یک led استفاده می کنیم ، ما فقط به پین های برق و داده ها در پین نیاز داریم. اگر آن ماژول را ندارید می توانید ماژول Neopixel را خریداری کنید. اگر چنین ماژولی را خریداری کرده اید ، باید پین ها و داده های پین را به Magicbit وصل کنید. که بسیار آسان است. VCC و GND Magicbit را به پین های قدرت ماژول RGB و پین D33 را به پین داده وصل کنید.

مرحله 4: راه اندازی نرم افزار

بیشترین بخش برنامه نویسی است. ما از Arduino IDE برای برنامه نویسی Magicbit خود استفاده می کنیم. در کد ما از چند کتابخانه استفاده می کنیم. آنها کتابخانه Adopruit Neopixel برای کنترل Neopixel LED و کتابخانه OLED Adafruit برای OLED دسته هستند. در راه اندازی ، ورودی ها و خروجی های خود را پیکربندی می کنیم. همچنین صفحه نمایش OLED داخلی را در Magicbit پیکربندی کنید. در حلقه ما بررسی می کنیم که دکمه سمت چپ فشار داده شده است یا نه از Magicbit. اگر فشار داده شود ، سیگنال ورودی 0. است زیرا قبلاً توسط برد کشیده شده است. اگر فشار داده شد ، بررسی رنگ را انجام می دهیم. در غیر این صورت ، صفحه عبارت "بدون رنگ" را نمایش می دهد. وقتی دکمه فشرده می شود ، به طور خودکار چراغ های قرمز ، سبز و آبی را یکی یکی روشن کرده و میزان بازتاب رنگ ها را در سه متغیر ذخیره می کند. سپس این مقادیر را مقایسه کرده و حداکثر مقدار رنگ را برای نمایش به عنوان رنگ خروجی انتخاب می کنیم.

بنابراین کابل میکرو USB را به Magicbit وصل کنید و نوع برد و پورت های com را به درستی انتخاب کنید. حالا کد را بارگذاری کنید. سپس وقت آن است که سنسور خود را آزمایش کنیم. برای آزمایش آن ، کاغذ یا ورق قرمز ، سبز یا آبی را روی ماژول LDR و RGB نگه دارید و دکمه سمت چپ را فشار دهید. سپس صفحه نمایش OLED رنگ سطح را نشان می دهد. اگر اشتباه باشد دلیل آن این است که برخی از رنگها دارای شدت نور زیاد هستند. به عنوان مثال در هر سطح سبز خروجی قرمز است ، بنابراین شما باید میزان روشنایی نور قرمز را تا حدی کاهش دهید. زیرا چراغ قرمز دارای روشنایی بسیار بالایی در این حالت است. بنابراین بازتاب بالایی دارند. اگر نحوه کنترل روشنایی را نمی دانید ، به آموزش زیر در لینک زیر مراجعه کنید.

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

در این پیوند می توانید نحوه کنترل آن ماژول RGB از Magicbit را بیابید. همچنین می توانید نحوه کار با LDR و فشار دکمه با استفاده از Magicbit را بیابید. آن سند را بخوانید و نحوه بهبود حسگر رنگ را بیشتر مطالعه کنید. زیرا این مثال بسیار اساسی در مورد نحوه عملکرد سنسورهای رنگ است. اکثر سنسورهای رنگی به این روش کار می کنند. بنابراین سعی کنید با حذف نویز نور محیط و سایر صداها ، این امر را بهبود بخشید.

مرحله 5: کد سنسور رنگ آردوینو

#عبارتند از

#تعریف LED_PIN 33

#تعریف LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT ، LED_PIN ، NEO_RGB + NEO_KHZ800) ؛ #شامل #شامل #شامل #شامل #تعریف OLED_RESET 4 صفحه نمایش Adafruit_SSD1306 (128 ، 64) ؛ #تعریف LDR 36 #تعریف دکمه 35 int R_value ، G_value ، B_value ؛ void setup () {LED.begin ()؛ LED.show ()؛ pinMode (LDR ، INPUT) ؛ pinMode (دکمه ، ورودی) ؛ display.begin (SSD1306_SWITCHCAPVCC ، 0x3C) ؛ display.display ()؛ تاخیر (1000) ؛ display.clearDisplay ()؛ Serial.begin (9600)؛ } void loop () {if (digitalRead (Button) == 0) {// if دکمه LED.setPixelColor (0 ، LED. Color (0 ، 50 ، 0)) فشار داده شده است ؛ // در رنگ قرمز LED.show ()؛ تأخیر (100) ؛ R_value = analogRead (LDR) ؛ // دریافت LED mount.setPixelColor قرمز (0 ، LED. Color (150 ، 0 ، 0)) ؛ // در LED رنگ سبز. نمایش () ؛ تأخیر (100) ؛ G_value = analogRead (LDR) ؛ // دریافت چراغ سبز LED.setPixelColor (0 ، LED. Color (0 ، 0 ، 255)) ؛ // بر روی bluecolour LED.show ()؛ تأخیر (100) ؛ B_value = analogRead (LDR) ؛ // اگر آبی (R_value> G_value && R_value> B_value) {/red را بیشتر منعکس می کند ("RED" ، 3) ؛ } else if (G_value> R_value && G_value> B_value) {// سبز بیشترین نمایش را دارد ("GREEN" ، 3) ؛ } else if (B_value> R_value && B_value> G_value) {// آبی بیشترین نمایش را دارد ("BLUE" ، 3) ؛ } Serial.print ("RED =")؛ Serial.print (R_value) ؛ Serial.print ("GREEN =")؛ Serial.print (G_value) ؛ Serial.print ("BLUE =")؛ Serial.println (B_value) ؛ } else {LED.setPixelColor (0 ، LED. Color (0 ، 0 ، 0)) ؛ // خاموش RGB LED.show ()؛ صفحه نمایش ("بدون رنگ" ، 2) ؛ }} void Display (String commond، int size) {// display data display.clearDisplay ()؛ display.setTextSize (اندازه) ؛ // Normal 1: 1 pixel scale display.setTextColor (WHITE)؛ // رسم متن سفید display.setCursor (0 ، 20) ؛ // از صفحه گوشه سمت چپ بالا شروع کنید. println (commond) ؛ display.display ()؛ }

توصیه شده: