Mundarija:

Arduino Light Up kozok: 9 qadam
Arduino Light Up kozok: 9 qadam

Video: Arduino Light Up kozok: 9 qadam

Video: Arduino Light Up kozok: 9 qadam
Video: Пәнаралық STEM-жобасын орта мектеп бағдарламасына қалай енгізуге болады? 2024, Noyabr
Anonim
Image
Image

Chiroyli kozok partiyalari bayramning asosiy qismidir. Har yili siz o'z o'yiningizni yaxshilashingiz va topishingiz mumkin bo'lgan eng yaxshi sviterni kiyishingiz kerak. Lekin bu yil siz bittasini yaxshiroq qilishingiz va eng yaxshi kozok qilishingiz mumkin. Biz Adafruit Wearables -dan foydalanib, do'stlaringiz va oilangizni hayratda qoldiradigan, chiroyli yoritilgan sviter yaratamiz.

Adafruit Wearables atrofida ajoyib loyihalarni yaratdi, shuning uchun biz ularning loyihasini Sparkle yubka loyihasidan amalga oshirish uchun o'zgartirilgan kodidan foydalanmoqdamiz.

Ushbu qo'llanmada siz:

  • Qo'l kiyimlarini ishlatishni o'rganing
  • Flora -ning asosiy kartasini, akselerometrni va NeoPixel -ni kodlash orqali Arduino -dan foydalaning

1 -qadam: Ishga kirishish

Ishni boshlash
Ishni boshlash

Biz Adafruit Flora Wearables, batareya to'plami, o'tkazgichli ip va bayram kozokidan foydalanamiz. Sizga oddiy ip, igna va lak kerak bo'ladi. Vaqt o'tishi bilan hammasi mantiqiy bo'ladi. Bizning versiyamiz Qorboboga ko'zlarini ochadi, lekin biz barcha dinlarni, bayramlarni va e'tiqodlarni qo'llab -quvvatlaymiz, shuning uchun ijodiy bo'ling!

  • Adafruit Flora Bosh Kengashi (https://www.adafruit.com/product/659)
  • Flora akselerometri (https://www.adafruit.com/product/1247)
  • Flora RGB NeoPixels (https://www.adafruit.com/product/1260)
  • Batareya to'plami (https://www.adafruit.com/product/727)
  • Supero'tkazuvchilar mavzu (https://www.adafruit.com/product/641)

2 -qadam: tartib

Joylashtirish
Joylashtirish

Biz tikuv jarayonini boshlashdan oldin piksellar, asosiy karta va akselerometrni joylashtirishimiz kerak. Piksellar ma'lumot ulanishiga ega bo'ladi, + quvvat uchun va - er uchun. Akselerometr 3V, SCL, SDA va er uchun ulanishga muhtoj.

Kozokni tikishni rejalashtirganingizda, piksellar, asosiy karta va akselerometrni joylashtiring. Hech qanday tikuvni kesib o'tmasligingizga ishonch hosil qiling, chunki bu qisqa bo'lishga olib keladi. Biz taxtamiz yuzini va NeoPixellarini tashqariga qaratganimiz uchun, biz NeoPixellarni ulash uchun 3V, Pin 9 va Ground -dan foydalanamiz.

NeoPixels -da o'q bor, u Flora asosiy kartasidan keyingi NeoPixel -ga qanday ulanish kerakligini ko'rsatadi. NeoPixellarning hammasi bir xil tarzda joylashtirilganligiga ishonch hosil qiling.

3 -qadam: tikish bo'yicha maslahatlar

Tikuvning muhim qismi uchta narsadir; qisqa chiziqlar/choklarning kesishishi, tikuv tugaganda qattiq tugunlar va taqiladigan kiyimlar bilan yaxshi aloqa.

Qisqa kiyimlar/tikuv o'tish joyi yo'q

Sizning tikuvlaringiz kesilmasligi uchun taqiladigan kiyimlarni joylashtiring. Ko'rinib turibdiki, chiziqlar kesishmasligi kerak. Agar siz barcha tikuvlarning alohida bo'lib qolishini ta'minlaydigan sxemaga ega bo'lsangiz, tikilganingizda uning qattiq ekanligiga ishonch hosil qilishingiz kerak. Agar siz juda ko'p bo'shashsangiz, bu ipga tegishi mumkin. Tikuvni tugatgandan so'ng, ortiqcha uchlarini kesib oling, shunda hech qanday ip yo'q.

Qattiq tugunlar

Tikuv chizig'ini tugatganda, qattiq tugun tikuv bo'shashmasligini ta'minlaydi. Hiyla -nayrang - bu kichkina qo'g'irchoq shaffof lakni tugunga qo'yish va uni quritib yuborish. Bu tugunni elim kabi ushlab turishga yordam beradi. Supero'tkazuvchi ip oddiy ip kabi tugunni ushlab turmaydi, shuning uchun men lakdan foydalanishni tavsiya qilaman, aks holda siz tikuv bo'shashib qolishi mumkin.

Yaxshi ulanishlar

Pimlarning ilmoqlari qattiq ekanligiga ishonch hosil qiling. Bu sizning sxemangiz ishlamayotganligini bilishga yordam beradi, biz bilamizki, muammo ulanishlarda emas. Siz har doim yaxshi aloqa bo'lishiga ishonch hosil qilish uchun 2-3 marta pin orqali o'tishingiz mumkin.

Maslahatlar/fokuslar

Kiyim -kechakni kiyish va o'chirish paytida uning yoqilmaganligiga ishonch hosil qiling. Bu iplarni tekkizish va qisqa tutashishning eng oson yo'li. Kiyim -kechak qulay tarzda yoqilmaguncha batareya to'plamini yoqmang.

4 -qadam: Komponentlarni tikish

Komponentlarni tikish
Komponentlarni tikish
Komponentlarni tikish
Komponentlarni tikish

Biz biriktirishimiz kerak bo'lgan birinchi qism - Flora Bosh taxtasi. Siz ishlatmoqchi bo'lmagan ikkita pim orqali oddiy ip yordamida taxtani kozokingizga tikib qo'ying. Bu taxtani joyida ushlab turadi va o'tkazuvchi ip yordamida tikishni osonlashtiradi. Uning harakatlanmasligi uchun bir nechta oddiy halqalar etarli.

Keyinchalik, Flora bosh paneli va akselerometrdan to'rtta ulanishni tikishingiz kerak. Bu Power, Ground, SCL va SDA bo'ladi. Agar siz akselerometrni asosiy taxtaning chap yuqori qismiga joylashtirsangiz, ulanish to'g'ridan -to'g'ri to'g'ri keladi. Shunday qilib, siz ikkita taxtani ulash uchun to'rtta alohida tikuvga ega bo'lasiz. Ikkala tugunni ham ochilmasligi uchun ozgina shaffof lakdan foydalaning. Taxtadagi ozgina lak ularga zarar bermaydi.

Nihoyat, Flora Main platasidan 3V, topraklama va ma'lumotlar ulanishlarini NeoPixellarga ulashingiz kerak. Siz er va quvvat uchun ikkita uzun, uzluksiz tikuv qilishingiz mumkin, chunki ular NeoPixelning pastki va yuqori qismida. Pin 9 -dan ma'lumotlar ulanishi uchun siz har bir NeoPixel -dan boshqasiga alohida tikuv qilishingiz kerak.

5 -qadam: Arduino IDE

Flora asosiy kartasi Arduino-ga mos keladi, shuning uchun biz o'z kodimiz uchun Arduino IDE-dan foydalanamiz. Siz ushbu havola orqali oxirgi versiyani yuklab olishingiz mumkin.

Ushbu havola orqali veb -versiyasi ham mavjud.

NeoPixels va Accelerometer -dan foydalanish uchun to'rtta kutubxona qo'shilishi kerak. Sketch -ga o'ting, kutubxonani qo'shing, kutubxonalarni boshqaring. Har biri uchun siz uni nom bo'yicha qidirishingiz, oxirgi versiyasini tanlashingiz va o'rnatishni bosishingiz kerak bo'ladi.

  • Adafruit NeoPixel
  • Adafruit yagona sensori
  • Adafruit TSL2561
  • Adafruit LSM303DLHC

Ular o'rnatilgach va tikuv tugallangach, biz hamma narsaning ishlayotganiga ishonch hosil qilish uchun sviterimizni sinovdan o'tkazishga tayyormiz.

6 -qadam: Test skriptlari

Test skriptlari
Test skriptlari

Loyihamizni sinab ko'rish uchun biz Adafruit asosiy kartasini kompyuterga USB kabeli yordamida ulashimiz kerak. Keyin Tools, Port -ga o'ting va ro'yxatdagi Flora Main -ni tanlang.

Biz tekshiradigan birinchi narsa - akselerometr to'g'ri ishlayaptimi. Fayl, misollar, Adafruit LSM303DLHC, accensensor -ga o'ting. Bu sensorning ulanganligini va koordinata qiymatlarini o'qishini tekshiradigan skriptni ochadi. Kengashga yuklang va Arduino IDE -ning yuqori o'ng burchagidagi Serial monitorni oching. Agar siz akselerometrni harakatlantirayotganda, fotosuratda bo'lgani kabi, ketma -ket monitorda qiymatlar o'zgarayotganini ko'rsangiz, u ishlaydi!

Biz sinab ko'radigan ikkinchi narsa, agar NeoPixels ishlayotgan bo'lsa. Fayl, misollar, Adafruit NeoPixels -ga o'ting, strandtest. Bu skriptni ishga tushirishdan oldin, Pinni 9 ga o'zgartiring va piksellar sonini 6 ga o'zgartiring (yoki loyihangiz uchun nima ishlatayotgan bo'lsangiz). O'zingizning taxtangizga yuklang va agar piksellar yonib tursa, siz oxirgi skriptga tayyormiz!

7 -qadam: Yakuniy skript

Yakuniy skript
Yakuniy skript

Endi oxirgi kodni yuklash vaqti keldi. Quyidagi kodni yangi loyiha fayliga nusxalash. Pin 9 ga, NeoPixellar soni esa 6 ga o'rnatilgan. Agar siz boshqasini ishlatayotgan bo'lsangiz, ushbu skriptni ishga tushirishdan oldin ularni o'zgartiring. R, G va B qiymatlarini 0-255 gacha o'zgartirish orqali siz sevimli ranglarni sozlashingiz mumkin. Yangi qator qo'shish orqali siz ko'proq sevimli ranglarni qo'shishingiz mumkin. Harakatlanish chegarasi ham sozlanishi mumkin. Raqam qanchalik past bo'lsa, harakatni aniqlash va NeoPixel -ni yoqish osonroq bo'ladi. O'zingiz xohlagan o'zgarishlarni kiritganingizdan so'ng, saqlang va Flora Bosh kartasiga yuklang. Agar siz akselerometrni aylantirsangiz, piksellar yonayotganini ko'rishingiz kerak. Siz kompyuterni elektr tarmog'idan uzib qo'yishingiz mumkinligini ko'rsangiz, biz batareyalar to'plamiga ulanishimiz mumkin.

#include #include #include #include #define PIN 9 #PIXELCOUNT 6 ni belgilang // 1 -parametr = chiziqdagi piksellar soni // 2 -parametr = pin raqami (ko'pchiligi yaxshi, lekin biz 9dan foydalanmoqdamiz) // 3 -parametr = piksel turi bayroqlar, kerak bo'lganda qo'shing: // NEO_RGB piksellari RGB bit oqimi uchun ulangan (v1 FLORA piksel, v2 emas) // NEO_GRB piksellari GRB bit oqimi uchun ulangan (biz foydalanayotgan NeoPixel mahsulotlarining aksariyati) // NEO_KHZ400 400 KHz (klassik 'v1' (v2 emas) FLORA piksellari, WS2811 drayverlari) // NEO_KHZ800 800 KHz bitstream (NeoPixel mahsulotlarining ko'pchiligi WS2812 LEDli. biz ishlatadigan mahsulot) Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXELCOUNT, PIN, NEOO_GRB) Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified (54321); // R, G, B ni 0-255 gacha sozlang va // ko'proq ranglar uchun yangi {nnn, nnn, nnn} qo'shing // RGB uint8_t myFavoriteColors {] [3] 255, 255, 255}, // oq {255, 0, 0}, // qizil {0, 255, 0}, // yashil}; // pastdagi qatorni tahrir qilmang #FAVCOLORS sizeof (myFavoriteColors) /3 // bu raqam harakat sezgirligini rostlaydi // pastki son = sezgir #define MOVE_THRESHOLD 5 // super sezgir hozirda void setup () {Serial.begin (9600); // Agar biz chipni aniqlay olmasak, ishga tushirishga va ogohlantirishga harakat qiling // Chop etish uchun Serial Monitor -dan foydalaning, agar (! Accel.begin ()) {Serial.println ("Bizda muammo bor. Bu siz emas, men emas … LSM303 -ni ishga tushirib bo'lmadi. Men simlarni tez tekshirishdan boshlayman "); vaqt (1); } strip.begin (); strip.show (); // "o'chirilgan" piksellarni belgilang} void loop () {/ * Yangi sensor hodisasini olish */ sensors_event_t hodisasi; accel.getEvent (& hodisa); // Serial.print ("Accel X:"); Serial.print (event.acceleration.x); Serial.print (""); // Serial.print ("Y:"); Serial.print (hodisa. tezlashishi.y); Serial.print (""); // Serial.print ("Z:"); Serial.print (event.acceleration.z); Serial.print (""); // 3 o'qli vektorning kattaligini (uzunligini) ikki marta saqlashVector = event.acceleration.x*hodisa.acceleration.x; saqlanganVektor += hodisa. tezlashishi.y*hodisa. tezlashishi.y; storageVector += hodisa. tezlashishi.z*hodisa. tezlashishi.z; saqlanganVektor = sqrt (saqlanganVektor); // Serial.print ("Len:"); Serial.println (storedVector); // biroz kechikishni kuting (250); // yangi ma'lumotlarni oling! accel.getEvent (& hodisa); double newVector = event.acceleration.x*hodisa.acceleration.x; newVector += hodisa. tezlashishi.y*hodisa. tezlashishi.y; newVector += hodisa.acceleration.z*hodisa.acceleration.z; newVector = sqrt (newVector); // Serial.print ("Yangi Len:"); Serial.println (newVector); // biz hali ham harakat qilyapmizmi? if (abs (newVector - storedVector)> MOVE_THRESHOLD) {Serial.println ("Yorqin! Flash! Flash! McFlash!"); fleshRandom (10, 2); // birinchi raqam - "kutish" kechikishi, qisqa raqam == qisqa milt -milt fleshRandom (10, 4); // ikkinchi raqam - bu bir vaqtning o'zida fleshRandom (10, 6) ni yoqish uchun qancha neopixel; }} void flashRandom (int wait, uint8_t howmany) {for (uint16_t i = 0; i <howmany; i ++) {// tasodifiy tanlangan ranglardan int c = random (FAVCOLORS); int oq = myFavoriteColors [c] [0]; int qizil = myFavoriteColors [c] [1]; int green = myFavoriteColors [c] [2]; // tartibda yoqiladigan piksellar (int i = 0; i <6; i ++) int j = strip.numPixels (); Serial.print ("Piksel yoqilgan"); Serial.println (i); // endi biz uni 3 bosqichda "so'ndiramiz" (int x = 0; x = 0; x--) {int w = white * x; w /= 3; int r = qizil * x; r /= 3; int g = yashil * x; g /= 3; strip.setPixelColor (i, strip. Color (w, r, g)); strip.show (); kechiktirish (kutish); }} // LEDlar tugagandan so'ng o'chadi (ular 0gacha o'chadi)}

8 -qadam: Batareya to'plami

Batareya to'plami
Batareya to'plami

Kozokingizni doimiy quvvat bilan ta'minlash uchun biz batareyalar to'plamidan foydalanamiz. Biz faqat taxtaga osib qo'yilmasligi uchun, to'plam uchun jabduqlar yasashimiz kerak. Men batareyaning cho'ntagi sifatida eski yostiqsimon sumkaning burchagidan foydalandim. Men ochiq tomonni tikdim va tepaning bir tomonini asosiy taxtaga etarlicha yaqin bo'lgan sviterga tikdim, u osongina ulanishi va tortilmasligi mumkin.

Batareya to'plamini asosiy kartaga ulang, asosiy kartadagi kichik kalitni yoqing va yoqing. Sizning kozokingiz hozir ishlayotgan va kiyishga tayyor bo'lishi kerak.

9 -qadam: Xulosa

Xulosa
Xulosa

Siz hozir barcha do'stlaringiz va oilangizni hayratda qoldiradigan engil kozok tikdingiz! Ammo bu shunchaki bayram loyihasi emas. Aziz Valentin kuni uchun sevgilingizni yurakdan yengil kozok qiling yoki shamrok ko'ylakni yoqing. O'z tasavvuringizdan foydalaning va bizga nima yaratganingizni ayting!

Tavsiya: