Агуулгын хүснэгт:

Magicbit -аас энгийн DIY өнгө мэдрэгч: 5 алхам
Magicbit -аас энгийн DIY өнгө мэдрэгч: 5 алхам

Видео: Magicbit -аас энгийн DIY өнгө мэдрэгч: 5 алхам

Видео: Magicbit -аас энгийн DIY өнгө мэдрэгч: 5 алхам
Видео: Kospet TANK T2 Smartwatch Review: The Complete Guide! 2024, Арваннэгдүгээр
Anonim
Image
Image

Энэхүү гарын авлагад бид Arduino ашиглан Magicbit ашиглан энгийн өнгө мэдрэгч хэрхэн хийх талаар сурах болно.

Хангамж

  • Magicbit
  • USB-A-аас микро-USB кабель

Алхам 1: Түүх

Тоног төхөөрөмжийн тохиргоо
Тоног төхөөрөмжийн тохиргоо

Сайн байна уу залуусаа, заримдаа та өнгө мэдрэгчийг зарим зорилгоор ашиглах хэрэгтэй болдог. Гэхдээ тэд хэрхэн ажилладагийг та мэдэхгүй байж магадгүй юм. Тиймээс энэ гарын авлагад та Arduino ашиглан Magicbit ашиглан энгийн DIY өнгө мэдрэгч хэрхэн хийх талаар сурах болно. Эхлээд үзье.

Алхам 2: Онол, арга зүй

Энэхүү төсөлд бид улаан, ногоон, цэнхэр өнгийг ялгах чадвартай өнгөний мэдрэгч бүтээхийг танд заах болно гэж найдаж байна. Энэ бол маш үндсэн жишээ юм. Тэгэхээр үүнийг яаж хийх вэ. Үүний тулд бид Magicbit болон суулгагдсан LDR -ийн RGB модулийг ашигладаг. Юуны өмнө та онолын талаар олж мэдэх хэрэгтэй. Энэ бол гэрлийн тусгалын хэмжээ юм. Одоо би танаас асуулт асууж байна. Улаан өнгийн гэрлийг хамгийн их тусгадаг ямар өнгөтэй гадаргуу, мөн ихэвчлэн ногоон, цэнхэр гэрлийг тусгадаг гадаргуу. Жаахан бодоорой. Гэхдээ хариулт нь энгийн. Улаан өнгийн гадаргуу нь ихэвчлэн улаан гэрлийг тусгадаг. Ногоон, цэнхэр гадаргуу нь ногоон, цэнхэр гэрлийг тусгах болно. Тиймээс энэ төсөлд бид энэ онолыг ашигладаг. Өнгийг танихын тулд бид улаан, ногоон, цэнхэр гэрлийг нэг нэгээр нь гаргадаг. Бид LDR утгыг ашиглан тусгалын хэмжээг хэмжих бүрдээ хэрэв зарим гэрэл бусад хоёр гэрлээс илүү их тусгал өгөх юм бол энэ гадаргууг ихэвчлэн өнгөт гадаргуугаар тусгасан байх ёстой.

Алхам 3: Тоног төхөөрөмжийн тохиргоо

Энэ маш энгийн. RGB модулиа Magicbit -ийн баруун дээд порт руу залгаарай. Энэ модуль нь WS2812B Neopixel LED -тэй. Энэхүү LED нь 4 голтой. Хоёр нь цахилгаан, хоёр нь өгөгдөл оруулах, оруулах зориулалттай. Бид нэг туяа ашигладаг тул бидэнд зөвхөн цахилгаан зүү, зүү дэх өгөгдөл хэрэгтэй болно. Хэрэв танд ийм модуль байхгүй бол Neopixel модулийг худалдаж авах боломжтой. Хэрэв та ийм төрлийн модулийг худалдаж авсан бол та тэжээлийн зүү болон өгөгдлийг зүүгээр Magicbit -тэй холбох ёстой. Энэ бол маш амархан. Magicbit -ийн VCC ба GND -ийг RGB модулийн зүү, D33 зүүг өгөгдлийн зүү рүү холбоно уу.

Алхам 4: Програм хангамжийн тохиргоо

Ихэнх хэсгийг програмчлал хийдэг. Бид Magicbit програмчлахдаа Arduino IDE програмыг ашигладаг. Кодод бид хоёр номын санг ашигладаг. Эдгээр нь Neopixel LED -ийг удирдах Adafruit Neopixel номын сан, OLED бариулын Adafruit OLED номын сан юм. Тохиргоонд бид оролт, гаралтыг тохируулдаг. Мөн Magicbit дээр суулгагдсан OLED дэлгэцийг тохируулна уу. Гогцоонд бид Magicbit -ийн зүүн гар товчлуур дарагдсан эсэхийг дарна уу. Хэрэв энэ нь дарагдсан бол оролтын дохио нь 0. Учир нь энэ нь самбараас аль хэдийн татагдсан байна. Хэрэв дарагдсан бол бид өнгөний шалгалт хийдэг. Үгүй бол дэлгэц дээр "өнгө байхгүй" гэсэн мэдэгдэл гарч ирнэ. Товчлуурыг дарахад улаан, ногоон, цэнхэр гэрлийг автоматаар асааж, өнгөний тусгалын хэмжээг гурван хувьсагч болгон хадгална. Дараа нь бид эдгээр утгыг харьцуулж, гаралтын өнгө болгон харуулах хамгийн их утгын өнгийг сонгоно.

Тиймээс бичил USB кабелийг Magicbit -т холбож, самбарын төрөл ба ком портуудыг зөв сонгоно уу. Одоо кодыг байршуулна уу. Дараа нь бидний мэдрэгчийг шалгах цаг болжээ. Үүнийг шалгахын тулд улаан, ногоон, цэнхэр өнгийн цаас, хуудасны дээд хэсгийг LDR ба RGB модульд байлгаад зүүн товчлуур дээр дарна уу. Дараа нь OLED дэлгэц нь гадаргуугийн өнгийг харуулна. Хэрэв энэ нь буруу бол зарим өнгө нь өндөр гэрлийн эрч хүчтэй байдаг. Жишээлбэл, ногоон гадаргуу бүрт гаралт нь улаан өнгөтэй байдаг тул та улаан гэрлийн гэрлийг тодорхой хэмжээгээр бууруулах хэрэгтэй. Учир нь энэ тохиолдолд улаан гэрэл маш өндөр гэрэлтэй байдаг. Тиймээс энэ нь өндөр тусгалтай байдаг. Хэрэв та гэрэлтүүлгийг хэрхэн хянахаа мэдэхгүй байгаа бол доорх линк дээрх хичээлийг үзнэ үү.

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

Энэ холбоос дээр та RGB модулийг Magicbit -ээс хэрхэн хянах талаар олж мэдэх боломжтой. Мөн та LDR -тэй хэрхэн ажиллах, Magicbit ашиглан товчлуур дарах талаар олж мэдэх болно. Энэхүү баримт бичгийг уншаад өнгө мэдрэгчийг хэрхэн сайжруулах талаар судлаарай. Учир нь энэ бол өнгө мэдрэгч хэрхэн ажилладаг талаар маш энгийн жишээ юм. Ихэнх төрлийн өнгө мэдрэгч ийм байдлаар ажилладаг. Тиймээс орчны гэрэл дуу чимээ болон бусад дуу чимээг арилгах замаар үүнийг сайжруулахыг хичээ.

Алхам 5: Өнгө мэдрэгчийн Arduino код

#оруулах

#LED_PIN 33 -ийг тодорхойлох

#тодорхойлох LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); #оруулах #оруулах #оруулах #тодорхойлох OLED_RESET 4 Adafruit_SSD1306 дэлгэц (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 (Товчлуур, оролт); display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.display (); саатал (1000); display.clearDisplay (); Цуваа эхлэх (9600); } void loop () {if (digitalRead (Button) == 0) {// if button дарагдсан бол LED.setPixelColor (0, LED. Color (0, 50, 0)); // redcolour LED.show () дээр; саатал (100); R_value = analogRead (LDR); // улаан холбох LED.setPixelColor (0, LED. Color (150, 0, 0)) авах; // ногоон өнгийн LED.show () дээр; саатал (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", 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 ("НОГООН ="); Serial.print (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } өөр {LED.setPixelColor (0, LED. Color (0, 0, 0))); // унтраасан RGB LED.show (); Дэлгэц ("COLOR NO", 2); }} void Display (String commond, int size) {// дэлгэцийн өгөгдлийг харуулах.clearDisplay (); display.setTextSize (хэмжээ); // Энгийн 1: 1 пикселийн масштабтай дэлгэц.setTextColor (ЦАГААН); // Цагаан текст зурах display.setCursor (0, 20); // Дэлгэцийн зүүн дээд буланд эхлэх.println (commond); display.display (); }

Зөвлөмж болгож буй: