Orodha ya maudhui:

Rahisi Sura ya Rangi ya DIY Kutoka kwa Magicbit: Hatua 5
Rahisi Sura ya Rangi ya DIY Kutoka kwa Magicbit: Hatua 5

Video: Rahisi Sura ya Rangi ya DIY Kutoka kwa Magicbit: Hatua 5

Video: Rahisi Sura ya Rangi ya DIY Kutoka kwa Magicbit: Hatua 5
Video: TAZAMA MARAFIKI WALIVYOPENDEZA KUMKOMOA BI HARUSI |UTAPENDA WALIVYOINGIA KWA MBWEMBWE |IRENE NIGHT 2024, Novemba
Anonim
Image
Image

Katika mafunzo haya tutajifunza juu ya jinsi ya kutengeneza sensa ya rangi rahisi kutumia Magicbit na Arduino.

Vifaa

  • Uchawi
  • USB-A hadi kebo ya Micro-USB

Hatua ya 1: Hadithi

Usanidi wa Vifaa
Usanidi wa Vifaa

Halo jamani, wakati mwingine lazima utumie sensorer za rangi kwa sababu kadhaa. Lakini inaweza kuwa haujui jinsi zinavyofanya kazi. Kwa hivyo Katika mafunzo haya utajifunza juu ya jinsi ya kutengeneza kitufe cha rangi rahisi cha DIY ukitumia Magicbit na Arduino. Hebu tuanze.

Hatua ya 2: Nadharia na Mbinu

Katika mradi huu tunatarajia kukufundisha kujenga sensor ya rangi ambayo inaweza kugundua rangi nyekundu, kijani na bluu. Huu ni mfano wa kimsingi sana. Kwa hivyo jinsi ya kufanya hivyo. Kwa kusudi hili tunatumia moduli ya RGB ya Magicbit na LDR iliyojengwa. Kwanza kabisa lazima ujifunze juu ya nadharia kadhaa. Hiyo ni juu ya kiasi cha tafakari nyepesi. Sasa ninauliza swali kutoka kwako. Je! Ni uso gani wa rangi ambao huonyesha mwanga wa rangi nyekundu? Pia ni nyuso gani ambazo zinaonyesha taa za Kijani na Bluu. Fikiria kidogo. Lakini jibu ni rahisi. Uso wa rangi nyekundu huonyesha mwanga wa rangi nyekundu. Nyuso za kijani na bluu pia zitaonyesha taa za kijani na bluu. Kwa hivyo katika mradi huu tunatumia nadharia hiyo. Ili kutambua rangi tunatoa taa nyekundu, kijani na bluu moja kwa moja. Kila wakati tunapima kiwango cha kutafakari kwa kutumia thamani ya LDR. Kama taa fulani itatoa kielelezo zaidi kuliko taa zingine mbili, basi uso huo unapaswa kuwa na uso wenye rangi zaidi.

Hatua ya 3: Usanidi wa vifaa

Hii ni rahisi sana. Chomeka moduli yako ya RGB kwenye bandari ya juu kulia ya Magicbit. Moduli hii ina WS2812B Neopixel LED. LED hii ina pini 4. Mbili kwa nguvu na mbili kwa Takwimu ndani na nje. Kwa sababu tunatumia moja iliyoongozwa tunahitaji tu pini za nguvu na data kwenye pini. Ikiwa huna moduli hiyo unaweza kununua na moduli ya Neopixel. Ikiwa ulinunua aina hiyo ya moduli lazima uunganishe pini za nguvu na data kwenye pini kwa Magicbit. Hiyo ni rahisi sana. Unganisha VCC na GND ya Magicbit kwenye pini za umeme za moduli ya RGB na pini ya D33 kwenye pini ya data.

Hatua ya 4: Usanidi wa Programu

Sehemu kubwa iliyofanywa na programu. Tunatumia Arduino IDE kupanga Magicbit yetu. Katika nambari tunatumia maktaba kadhaa. Ni maktaba ya Adafruit Neopixel ya kudhibiti Neopixel LED na maktaba ya Oaf ya Adafruit ya kushughulikia OLED. Katika usanidi tunasanidi pembejeo na matokeo. Pia sanidi onyesho la OLED lililojengwa kwenye Magicbit. Katika kitanzi tunaangalia kitufe cha kushinikiza cha mkono wa kushoto kimeshinikizwa au sio cha Magicbit. Ikiwa imesisitizwa, ishara ya kuingiza ni 0. Kwa sababu tayari imevutwa na bodi. Ikiwa ilibonyeza basi tunakagua rangi. Ikiwa sivyo basi skrini itaonyesha taarifa ya "hakuna rangi". Kitufe kinapobanwa basi washa taa nyekundu, kijani kibichi na bluu moja kwa moja na uhifadhi kiwango cha rangi katika vigeuzi vitatu. Ifuatayo tulilinganisha maadili hayo na kuchagua rangi ya kiwango cha juu kuonyesha kama rangi ya pato.

Kwa hivyo unganisha kebo ndogo ya USB kwa Magicbit na uchague aina ya bodi na bandari kwa usahihi. Sasa pakia nambari. Basi ni wakati wa kujaribu sensa yetu. Ili kujaribu hiyo, weka karatasi iliyo na rangi nyekundu, kijani kibichi au bluu juu ya moduli ya LDR na RGB na bonyeza kitufe cha kushinikiza kushoto. Kisha onyesho la OLED litaonyesha ni nini rangi ya uso. Ikiwa hiyo ni makosa sababu rangi fulani ina kiwango cha juu cha mwangaza. Kama mfano katika kila uso wa kijani pato ni nyekundu basi lazima upunguze mwangaza mwekundu kutoka kwa kiasi fulani. Kwa sababu taa nyekundu ina mwangaza mwingi sana katika kesi hiyo. Kwa hivyo ina tafakari kubwa. Ikiwa haujui jinsi ya kudhibiti mwangaza, kisha rejelea mafunzo kwenye kiunga hapa chini.

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

Katika kiunga hiki unaweza kupata jinsi ya kudhibiti moduli hiyo ya RGB kutoka kwa Magicbit. Na pia unapata jinsi ya kufanya kazi na LDR na bonyeza kitufe ukitumia Magicbit. Soma hati hiyo na ujifunze zaidi jinsi ya kuboresha sensorer ya rangi. Kwa sababu huu ni mfano wa kimsingi sana juu ya jinsi sensorer za rangi zinavyofanya kazi. Aina nyingi za sensorer za rangi hufanya kazi kwa njia hii. Kwa hivyo jaribu kuboresha hii kwa kuondoa kelele nyepesi iliyoko na kelele zingine.

Hatua ya 5: Msimbo wa Arduino wa Sura ya Rangi

# pamoja

#fafanua LED_PIN 33

#fafanua LED_COUNT 1 Adafruit_NeoPixel LED (LED_COUNT, LED_PIN, NEO_RGB + NEO_KHZ800); # pamoja na # pamoja na # pamoja na #fafanua OLED_RESET 4 Adafruit_SSD1306 onyesho (128, 64); #fafanua LDR 36 #fafanua Kitufe 35 int R_thamani, G_thamani, B_thamani; kuanzisha batili () {LED.begin (); Onyesho la LED (); pinMode (LDR, INPUT); pinMode (Kitufe, INPUT); onyesha. kuanza (SSD1306_SWITCHCAPVCC, 0x3C); onyesha.display (); kuchelewesha (1000); onyesha wazi Cleplay (); Kuanzia Serial (9600); } kitanzi batili () {if (digitalRead (Button) == 0) {// if button is pressed LED.setPixelColor (0, LED. Color (0, 50, 0)); // kwenye LED ya rangi nyekundu. onyesha (); kuchelewesha (100); // pata nyekundu mlima LED.setPixelColor (0, LED. Color (150, 0, 0)); // kwenye LED ya rangi ya kijani. Onyesha (); kuchelewesha (100); // kupata mlima wa kijani LED.setPixelColor (0, LED. Color (0, 0, 255)); // kwenye LED ya rangi ya bluu. onyesha (); kuchelewesha (100); B_value = analogRead (LDR); } vingine ikiwa (G_value> R_value && G_value> B_value) {// kijani inaonyeshwa zaidi Onyesho ("KIJANI", 3); } kingine ikiwa (B_value> R_value && B_value> G_value) {// bluu inaonyeshwa zaidi Onyesho ("BLUE", 3); } Serial.print ("RED ="); Printa ya serial (R_ Thamani); Serial.print ("KIJANI ="); Serial.print (G_value); Serial.print ("BLUE ="); Serial.println (B_value); } mwingine {LED.setPixelColor (0, LED. Color (0, 0, 0)); // mbali RGB LED. onyesha (); Onyesha ("HAKUNA RANGI", 2); }} Onyesho batili (kamba ya commond, ukubwa wa int) {// onyesha onyesho la data.clearDisplay (); onyesha.setTextSize (saizi); // Kawaida 1: onyesho la kiwango cha pikseli 1.setTextColor (NYEUPE); // Chora onyesho la maandishi meupe. Cursor (0, 20); // Anza kwenye onyesho la kona ya kushoto kushoto.println (commond); onyesha.display (); }

Ilipendekeza: