Mündəricat:

Arduino Light Up Kazak: 9 addım
Arduino Light Up Kazak: 9 addım

Video: Arduino Light Up Kazak: 9 addım

Video: Arduino Light Up Kazak: 9 addım
Video: Arduino-based light sensing and obstacle avoiding autonomous robot. 2024, Iyul
Anonim
Image
Image

Çirkin süveter partiyaları bayramın əsasını təşkil edir. Hər il oyununuzu artırmalı və tapa biləcəyiniz ən yaxşı kazağı geyinməlisiniz. Ancaq bu il birini daha yaxşı edə və ən yaxşı kazağı hazırlaya bilərsiniz. Dostlarınızı və ailənizi heyran edəcək gözəl işıqlı bir kazak yaratmaq üçün Adafruit Wearables istifadə edirik.

Adafruit, Wearables ətrafında bir çox möhtəşəm layihələr yaratdı, buna görə də bu layihəni Sparkle Skirt layihəsindən həyata keçirmək üçün onların dəyişdirilmiş kodundan istifadə edirik.

Bu təlimatda siz:

  • Geyim əşyalarından istifadə etməyi öyrənin
  • Arduino ilə işıqlandırmaq üçün Flora ana kartınızı, akselerometrinizi və NeoPixellərinizi kodlayın

Addım 1: Başlayın

Başlanğıc
Başlanğıc

Adafruit Flora Wearables, bir batareya paketi, keçirici iplik və bir bayram kazağı istifadə edəcəyik. Daimi iplərə, iynələrə və dırnaq boyalarına ehtiyacınız olacaq. Zamanla hər şeyin mənası olacaq. Bizim versiyamız Şaxta babaya gözlər açacaq, amma bütün dinləri, bayramları və inancları dəstəkləyirik, buna görə də yaradıcı olun!

  • Adafruit Flora Ana İdarə Heyəti (https://www.adafruit.com/product/659)
  • Flora Akselerometri (https://www.adafruit.com/product/1247)
  • Flora RGB NeoPixels (https://www.adafruit.com/product/1260)
  • Batareya Paketi (https://www.adafruit.com/product/727)
  • İletken Mövzu (https://www.adafruit.com/product/641)

Addım 2: Layout

Layout
Layout

Dikiş prosesinə başlamazdan əvvəl pikselləri, ana lövhəni və sürətləndiricini düzəltməliyik. Piksellərin məlumat bağlantısı olacaq, güc üçün + və torpaq üçün. Akselerometr 3V, SCL, SDA və torpaq üçün əlaqələrə ehtiyac duyur.

Kazağı tikməyi planlaşdırdığınız zaman pikselləri, ana lövhəni və akselerometrini düzəldin. Heç bir tikiş keçməyəcəyinizə əmin olun, çünki bu şorta səbəb olacaq. Lövhəmizi üzümüzə və NeoPixellərimizə baxdığımız üçün NeoPixelləri birləşdirmək üçün 3V, Pin 9 və Ground -dan istifadə edirik.

NeoPixels -də məlumat bağlantısının Flora ana kartından növbəti NeoPixel -ə necə keçməsi lazım olduğunu göstərən bir ox var. Bütün NeoPixellərin eyni şəkildə üzbəüz düzüldüyünə əmin olun.

Addım 3: Dikiş ipuçları

Dikişin vacib hissəsi üç şeydir; şort yoxdur/dikişlərin kəsişməməsi, dikişi bitirdikdə sıx düyünlər və Geyim əşyaları ilə yaxşı əlaqələr.

Şort/Dikiş Keçidi yoxdur

Dikişlərinizin keçməməsi üçün geyinə biləcəyiniz əşyaları düzəltdiyinizə əmin olun. Açığı, xətlər kəsişməməlidir. Bütün dikişlərin ayrı qalmasını təmin edən bir plana sahib olduğunuzda, dikiş edərkən sıx olduğundan əmin olmalısınız. Çox boşluq buraxsanız, ipin toxunmasına icazə verə bilərsiniz. Dikişi bitirdikdən sonra artıq uclarını kəsin ki, heç bir sapma yoxdur.

Sıx düyünlər

Bir dikiş xəttinə son verərkən, sıx bir düyün, dikişin açılmamasını təmin edəcək. Hiylə, düyünə kiçik bir şəffaf dırnaq boyası qoyub qurutmaqdır. Bu, düyünü yapışqan kimi yerində saxlamağa kömək edir. Keçirici iplik adi bir iplikdə olduğu kimi yaxşı bir şəkildə tutmur, buna görə də dırnaq boyası istifadə etməyi məsləhət görürəm, yoxsa dikişlər boşa çıxa bilər.

Yaxşı Əlaqələr

Sancaqlardakı döngələrin sıx olduğundan əmin olun. Bu, dövrəniz işləmirsə, problemin əlaqələr olmadığını bildiyimizi təmin etməyə kömək edəcəkdir. Həmişə yaxşı bir əlaqə olacağından əmin olmaq üçün sancaqlar arasından 2-3 dəfə keçə bilərsiniz.

Məsləhətlər/Fəndlər

Geyim əşyanızın açılarkən və açılarkən açılmadığından əmin olun. Bu mövzuya toxunmağın və qısalmanın ən asan yoludur. Geyim əşyası rahat şəkildə açılana qədər batareya paketinizi açmayın.

Addım 4: Komponentlərin tikilməsi

Komponentlərin tikilməsi
Komponentlərin tikilməsi
Komponentlərin tikilməsi
Komponentlərin tikilməsi

Əlavə etməyimiz lazım olan ilk parça Flora Ana Kartıdır. İstifadə etməyi planlaşdırmadığınız iki sancaqla nizamlı ipdən istifadə edərək lövhəni kazağınıza yapışdırın. Bu, lövhəni yerində saxlayacaq və keçirici ipdən istifadə edərək tikişi asanlaşdıracaq. Hərəkət etməməsi üçün bir neçə sadə döngə kifayətdir.

Sonra, Flora Ana Kartı və Akselerometrdən dörd əlaqəni bir -birinə bağlamalısınız. Bu Power, Ground, SCL və SDA olacaq. Akselerometri ana lövhənin sol üst hissəsinə yerləşdirsəniz, əlaqələr birbaşa düzülür. Beləliklə, iki lövhəni birləşdirmək üçün dörd ayrı dikişiniz olacaq. Açılmaması üçün hər iki uc düyündə bir az şəffaf dırnaq boyası istifadə edin. Lövhələrdəki bir az dırnaq lakı onlara zərər verməyəcək.

Nəhayət, Flora Ana kartından 3V, torpaq və məlumat əlaqələrini NeoPixellərə bağlamalısınız. Zəmin və güc üçün iki uzun, davamlı dikiş edə bilərsiniz, çünki bunlar NeoPixellərin alt və üst hissələrindədir. Pin 9 -dan verilən məlumat əlaqələri üçün hər bir NeoPixeldən digərinə ayrı tikişlər etməlisiniz.

Addım 5: Arduino IDE

Flora Ana Kartı Arduino ilə uyğundur, buna görə kodumuz üçün Arduino IDE istifadə edəcəyik. Ən son versiyanı bu linkdən yükləyə bilərsiniz.

Bu link vasitəsilə bir veb versiyası da var.

NeoPixels və Accelerometer istifadə etmək üçün əlavə edilməli olan dörd kitabxana var. Sketch -ə gedin, Kitabxanaya daxil olun, Kitabxanaları idarə edin. Hər biri üçün onu adla axtarmalı, ən son versiyanı seçməlisiniz və quraşdırma düyməsini basmalısınız.

  • Adafruit NeoPixel
  • Adafruit Vahid Sensor
  • Adafruit TSL2561
  • Adafruit LSM303DLHC

Bunlar quraşdırıldıqdan və tikiş tamamlandıqdan sonra hər şeyin işlədiyinə əmin olmaq üçün kazağımızı sınamağa hazırıq.

Addım 6: Test Skriptləri

Test Ssenariləri
Test Ssenariləri

Layihəmizi sınamaq üçün Adafruit ana kartımızı USB kabelindən istifadə edərək kompüterinizə bağlamalıyıq. Sonra Alətlər, Limana gedin və siyahıdan Flora Ana lövhənizi seçin.

Test edəcəyimiz ilk şey, akselerometrin düzgün işlədiyidir. Fayl, Nümunələr, Adafruit LSM303DLHC, sürətləndiriciyə gedin. Bu, sensorun bağlı olub olmadığını yoxlayan və koordinat dəyərlərini oxuyan bir skript açacaq. Lövhənizə yükləyin və Arduino IDE -nin sağ üst hissəsindəki Serial Monitoru açın. Sürətölçəni hərəkət etdirərkən fotoşəkildə olduğu kimi Serial Monitorda dəyərlərin dəyişdiyini görürsünüzsə işləyir!

Test edəcəyimiz ikinci şey, NeoPixellərin işlək olmasıdır. Fayl, Nümunələr, Adafruit NeoPixels, strandtest bölməsinə keçin. Bu skriptə başlamazdan əvvəl, Pin -i 9 -a və piksel sayını 6 -ya (və ya layihəniz üçün istifadə etdiyiniz hər şeyi) dəyişdirin. Lövhənizə yükləyin və bütün piksellər yanarsa, son skriptə hazırsınız!

Addım 7: Son Ssenari

Son Ssenari
Son Ssenari

İndi son kodumuzu yükləməyin vaxtı gəldi. Aşağıdakı kodu yeni bir layihə faylına kopyalayın. Pin 9 -a, NeoPixel sayı isə 6 -ya təyin olunur. Fərqli bir şey istifadə edirsinizsə, bu skriptə başlamazdan əvvəl bunları dəyişdirin. R, G, & B dəyərlərini 0-255 arasında dəyişərək sevdiyiniz rəngləri tənzimləyə bilərsiniz. Yeni bir xətt əlavə edərək daha çox sevdiyiniz rəngləri əlavə edə bilərsiniz. Hərəkət həddi də tənzimlənə bilər. Sayı nə qədər aşağı olarsa, hərəkəti aşkar etmək və NeoPixelləri açmaq daha asandır. İstədiyiniz dəyişiklikləri etdikdən sonra qeyd edin və Flora Ana Kartına yükləyin. Akselerometr ətrafında hərəkət etsəniz, piksellərin işıqlandığını görə bilməlisiniz. Kompüterdən ayıra biləcəyinizi gördükdən sonra batareya paketimizə qoşula bilərik.

#include #include #include #include #define PIN 9 #PIXELCOUNT 6 təyin edin // Parametr 1 = zolaqdakı piksel sayı // Parametr 2 = pin nömrəsi (əksəriyyəti yaxşıdır, amma 9 -dan istifadə edirik) // Parametr 3 = piksel növü bayraqlar, lazım olduqda əlavə edin: // NEO_RGB Pikselləri RGB bit axını üçün bağlanır (v1 FLORA pikselləri, v2 deyil) // NEO_GRB Pikselləri GRB bit axını üçün bağlanır (istifadə etdiyimiz NeoPixel məhsullarının əksəriyyəti) // NEO_KHZ400 400 KHz (klassik 'v1' (v2 deyil) FLORA pikselləri, WS2811 sürücüləri) // NEO_KHZ800 800 KHz bit axını (WS2812 LED -ləri olan NeoPixel məhsullarının çoxu. istifadə etdiyimiz məhsul) Adafruit_NeoPixel şeridi = Adafruit_NeoPixel (PIXELCOUNT, PIN, NEOO_GRB) Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified (54321); // R, G, B-ni 0-255-dən tənzimləyin və // daha çox rəng üçün yeni {nnn, nnn, nnn} əlavə edin // RGB uint8_t myFavoriteColors {] [3] 255, 255, 255}, // ağ {255, 0, 0}, // qırmızı {0, 255, 0}, // yaşıl}; // #define FAVCOLORS sizeof (myFavoriteColors) altındakı sətri redaktə etməyin /3 // bu nömrə hərəkət həssaslığını tənzimləyir // aşağı nömrə = daha həssas #define MOVE_THRESHOLD 5 // super həssas hazırdavoid setup () {Serial.begin (9600); // Çipi aşkar edə bilmədiyimiz halda işə salmağa və xəbərdar etməyə çalışın // Çapı görmək üçün Serial Monitordan istifadə edin (! Accel.begin ()) {Serial.println ("Bir problemimiz var. Bu sən deyil, mən … LSM303 -ü işə sala bilmədim. Kabellərin sürətli yoxlanılması ilə başlayardım "); isə (1); } strip.begin (); strip.show (); // Pikselləri 'off' olaraq təyin edin} void loop () {/ * Yeni bir sensor hadisəsi alın */ sensors_event_t hadisə; accel.getEvent (& hadisə); // Serial.print ("Accel X:"); Serial. çap (hadisə. sürətləndirmə.x); Serial.print (""); // Serial.print ("Y:"); Serial. çap (hadisə. sürətləndirmə.y); Serial.print (""); // Serial.print ("Z:"); Serial. çap (hadisə.acceleration.z); Serial.print (""); // 3 oxlu vektorun böyüklüyünü (uzunluğunu) əldə edin double storageVector = event.acceleration.x*hadisə.acceleration.x; storageVector += hadisə.acceleration.y*hadisə.acceleration.y; storageVector += hadisə.acceleration.z*hadisə.acceleration.z; storageVector = sqrt (storageVector); // Serial.print ("Len:"); Serial.println (storageVector); // bir az gecikmə gözləyin (250); // yeni məlumatlar əldə edin! accel.getEvent (& hadisə); ikiqat newVector = hadisə.acceleration.x*hadisə.acceleration.x; newVector += hadisə.acceleration.y*hadisə.acceleration.y; newVector += hadisə.acceleration.z*hadisə.acceleration.z; newVector = sqrt (newVector); // Serial.print ("Yeni Len:"); Serial.println (newVector); // hələ hərəkət edirik? if (abs (newVector - storedVector)> MOVE_THRESHOLD) {Serial.println ("Parlaq! Flaş! Flaş! McFlash!"); flashRandom (10, 2); // ilk nömrə 'gözləmə' gecikməsidir, daha qısa num == daha qısa parıltı flashRandom (10, 4); // ikinci nömrə, eyni anda flashRandom (10, 6) yandırmaq üçün neçə neopikseldir; }} void flashRandom (int wait, uint8_t howmany) {for (uint16_t i = 0; i <howmany; i ++) {// təsadüfi seçilmiş rənglərdən int c = təsadüfi (FAVCOLORS); int ağ = myFavoriteColors [c] [0]; int qırmızı = myFavoriteColors [c] [1]; int green = myFavoriteColors [c] [2]; // üçün sırayla açılacaq piksellər (int i = 0; i <6; i ++) int j = strip.numPixels (); Serial.print ("Piksel açıq"); Serial.println (i); // indi (int x = 0; x = 0; x--) {int w = white * x; w /= 3; int r = qırmızı * x; r /= 3; int g = yaşıl * x; g /= 3; strip.setPixelColor (i, strip. Color (w, r, g)); strip.show (); gecikmə (gözləmək); }} // LEDlər bitdikdə sönəcək (onlar 0 -a çevrilir)}

Addım 8: Batareya Paketi

Batareya Paketi
Batareya Paketi

Kazağınızın davamlı işləməsi üçün bir batareya paketi istifadə edəcəyik. Yalnız taxtadan asılmaması üçün paket üçün bir qoşqu düzəltməliyik. Batareya cibim kimi köhnə yastıq kılıfının küncündən istifadə etdim. Açıq tərəfi tikdim və üst tərəfin bir tərəfini ana lövhəyə kifayət qədər yaxın olan kazakla bağladım ki, asanlıqla bağlasın və çəkməsin.

Batareya paketini ana lövhəyə qoşun, ana lövhədəki kiçik açarı söndürün və yandırın. Kazağınız artıq işləməli və geyinməyə hazır olmalıdır.

Addım 9: Nəticə

Nəticə
Nəticə

İndi bütün dostlarınızı və ailənizi heyran edəcək yüngül bir kazak hazırladınız! Ancaq bu sadəcə bir bayram layihəsi deyil. Sevgililərinizi Müqəddəs Patrik Günü üçün ürəkaçan bir kazak edin və ya köynək yandırın. Təsəvvürünüzdən istifadə edin və yaratdıqlarınızı bizə bildirin!

Tövsiyə: