Мазмуну:

Arduino Light Up свитери: 9 кадам
Arduino Light Up свитери: 9 кадам

Video: Arduino Light Up свитери: 9 кадам

Video: Arduino Light Up свитери: 9 кадам
Video: СЕПЕРАЦИЯДАН ҚАЛАЙ ӨТЕМІЗ? 2024, Июль
Anonim
Image
Image

Чиркин свитер кечелери - майрамдардын негизги бөлүгү. Жыл сайын оюнуңузду көтөрүп, өзүңүзгө жаккан свитерди кийишиңиз керек. Бирок бул жылы сиз бирөөнү жакшыраак жасап, эң мыкты свитер жасай аласыз. Биз Adafruit Wearables колдонуп, досторуңузга жана үй -бүлөңүзгө суктандыра турган кооз жарык свитер жаратабыз.

Adafruit Wearables тегерегинде бир нече сонун долбоорлорду жараткан, ошондуктан биз алардын долбоорун Sparkle Skirt долбоорунан ишке ашыруу үчүн алардын кодун колдонуп жатабыз.

Бул үйрөткүчтө сиз:

  • Wearables колдонууну үйрөнүңүз
  • Flora башкы тактаңызды, акселерометрди жана NeoPixels кодун Arduino менен жарыктандыруу үчүн

1 -кадам: Баштоо

Баштоо
Баштоо

Биз Adafruit Flora Wearables, батареянын пакетин, өткөргүч жипти жана майрамдык свитерди колдонобуз. Ошондой эле сизге кадимки жип, ийне жана лак керек болот. Мунун баары убакыттын өтүшү менен мааниге ээ болот. Биздин версия Аяз атабыздын көздөрүнө жарык берет, бирок биз бардык диндерди, майрамдарды жана ишенимдерди колдойбуз, андыктан чыгармачыл болуңуз!

  • Adafruit Flora башкы башкармалыгы (https://www.adafruit.com/product/659)
  • Флора акселерометри (https://www.adafruit.com/product/1247)
  • Flora RGB NeoPixels (https://www.adafruit.com/product/1260)
  • Батарея пакети (https://www.adafruit.com/product/727)
  • Өткөрүүчү тема (https://www.adafruit.com/product/641)

2 -кадам: Макет

Макет
Макет

Биз тигүү процессин баштоодон мурун пикселдерди, башкы тактаны жана акселерометрди жайгаштырышыбыз керек. Пикселдерде маалымат байланышы болот, + кубат үчүн жана - жер үчүн. Акселерометр 3V, SCL, SDA жана жерге туташууга муктаж.

Пикселдерди, башкы тактайды жана акселерометрди свитерге тигүүнү пландап жатканыңызда жайгаштырыңыз. Эч кандай тигүүнү кесип өтпөңүз, анткени бул шортка алып келет. Биз тактайыбызды жүзүбүздү каратып, NeoPixelsти сыртка каратып жаткандыктан, NeoPixelsти туташтыруу үчүн 3V, Pin 9 жана Ground колдонобуз.

NeoPixelsте Flora башкы тактасынан кийинки NeoPixelге маалымат байланышы кандайча өтүшү керек экенин көрсөтүүчү жебе бар. Бардык NeoPixelsтин бирдей караганына көзүңүз жетсин.

3 -кадам: тигүү кеңештери

Тигүүнүн маанилүү бөлүгү үч нерсе; шорты жок/тигиштердин кесилиши, тигүүнү бүтүрүүдө бекем түйүндөр жана Wearables менен жакшы байланыштар.

Шорты жок

Кийилүүчү нерселериңизди тигиштериңиз өтпөй тургандай кылып түзүңүз. Сызыктар кесилишпеши керек, албетте. Бардык тигиштердин өзүнчө болушун камсыз кылган макетке ээ болгондон кийин, тигилгениңизде анын бекем экенин текшеришиңиз керек. Эгерде сиз өтө боштукту калтырсаңыз, анда ал жипке тийиши мүмкүн. Сиз тигүүнү бүтүргөндөн кийин ашыкча учтарын кесип, эч кандай жип жок болот.

Tight Knots

Тигүү линиясын аяктаганда, бекем түйүн тигүүнүн бошоп кетпешин камсыз кылат. Айла - түйүнгө кичинекей куурчак тунук лак салып, кургатуу. Бул желимге окшош түйүндү кармап турууга жардам берет. Өткөргүч жип кадимки жипке окшош эмес, ошондуктан мен лак колдонууну сунуштайм, болбосо тигүү бошоп кетиши мүмкүн.

Жакшы байланыштар

Казыктардын илмектери бекем экенин текшериңиз. Бул сиздин схемаңыз иштебесе, көйгөй байланыштар эмес экенин билүүгө жардам берет. Сиз дайыма жакшы байланыш болооруна ынануу үчүн 2-3 жолу казыктарды айланта аласыз.

Кеңештер/амалдар

Кийим -кечеңизди алып, өчүрүп күйгүзбөңүз. Бул жиптерге тийүүнүн жана кыскартуунун эң оңой жолу. Батарея пакетиңизди кийим ыңгайлуу күймөйүнчө күйгүзбөңүз.

4 -кадам: Компоненттерди тигүү

Компоненттерди тигүү
Компоненттерди тигүү
Компоненттерди тигүү
Компоненттерди тигүү

Биз тиркөөбүз керек болгон биринчи нерсе - бул Flora Main Board. Колдонууну пландаштырбаган эки казык аркылуу кадимки жипти колдонуп тактайды свитериңизге тигиңиз. Бул тактайдын ордун бекем кармап, өткөргүч жипти колдонуп тигүүнү жеңилдетет. Бир нече жөнөкөй циклдар аны кыймылга келтирбөө үчүн жетиштүү.

Андан кийин, Flora Main Board менен Акселерометрдин төрт байланышын тигиш керек. Бул Power, Ground, SCL жана SDA болот. Эгерде сиз акселерометрди башкы тактанын жогорку сол жагына койсоңуз, анда туташуулар түздөн -түз тизилет. Ошентип, сиз эки тактаны туташтыруу үчүн төрт өзүнчө тигишке ээ болосуз. Ачылып калбашы үчүн эки учунун түйүнүнө кичине тунук лак колдонуңуз. Такталардагы кичинекей лак аларга зыян келтирбейт.

Акырында, Flora Main тактасынан 3V, жер жана маалымат байланыштарын NeoPixelsке туташтыруу керек. Жер жана бийлик үчүн эки узун, үзгүлтүксүз тигүү жасай аласыз, анткени алар NeoPixelsтин түбүндө жана үстүндө. Pin 9дан маалымат туташуусу үчүн, ар бир NeoPixelден экинчисине өзүнчө тигиш жасашыңыз керек.

5 -кадам: Arduino IDE

Flora Main Board Arduino менен шайкеш келет, ошондуктан биз кодубуз үчүн Arduino IDE колдонобуз. Бул шилтеме аркылуу акыркы версиясын жүктөп алсаңыз болот.

Бул шилтеме аркылуу веб -версия да бар.

Биздин NeoPixelsти жана Акселерометрди колдонуу үчүн төрт китепкананы кошуу керек. Эскизге өтүңүз, Китепкананы кошуңуз, Китепканаларды башкарыңыз. Ар бири үчүн аны аты боюнча издеп, акыркы версиясын тандап, орнотууну чыкылдатуу керек болот.

  • Adafruit NeoPixel
  • Adafruit бирдиктүү сенсор
  • Adafruit TSL2561
  • Adafruit LSM303DLHC

Булар орнотулуп, тигүү аяктагандан кийин, биз баарыбыз иштеп жатканына ынануу үчүн свитерибизди сынап көрүүгө даярбыз.

6 -кадам: Скрипттерди текшерүү

Test Scripts
Test Scripts

Долбоорубузду текшерүү үчүн биз Adafruit башкы тактабызды USB кабели аркылуу компьютериңизге туташтырышыбыз керек. Андан кийин Аспаптарга, Портко барып, тизмеден Flora Main тактаңызды тандаңыз.

Биз текшере турган биринчи нерсе - акселерометр туура иштеп жатабы. Файлга, мисалдарга, Adafruit LSM303DLHC, accensensorго өтүңүз. Бул сенсор туташып, координаттардын маанилерин окуй тургандыгын текшерүүчү скриптти ачат. Тактаңызга жүктөп, Arduino IDEнин жогорку оң жагындагы Сериялык Мониторду ачыңыз. Эгерде сиз сериялык монитордо акселерометрди жылдырып жатканда сүрөттөрдөгүдөй өзгөрүп баратканын көрсөңүз, ал иштеп жатат!

Биз сынай турган экинчи нерсе, эгерде NeoPixels иштеп жатса. Файлга, Мисалдарга, Adafruit NeoPixelsке өтүңүз, strandtest. Бул сценарийди иштетүүдөн мурун, пинди 9га жана пикселдердин санын 6га (же сиз долбооруңуз үчүн колдонуп жаткан нерсеге) өзгөртүңүз. Тактаңызга жүктөп бериңиз, эгер пикселдердин баары күйүп калса, сиз акыркы сценарийге даярсыз!

7 -кадам: Акыркы скрипт

Final Script
Final Script

Эми биздин акыркы кодду жүктөө убактысы келди. Жаңы долбоор файлына төмөндөгү кодду көчүрүңүз. Pin 9га, NeoPixels саны 6га коюлган. Эгерде сиз башка нерсени колдонуп жатсаңыз, бул скриптти иштетүүдөн мурун аларды өзгөртүңүз. Сиз R, G, & B маанилерин 0-255ке чейин тууралоо аркылуу сүйүктүү түстөрдү тууралай аласыз. Сиз ошондой эле жаңы сапты кошуу менен сүйүктүү түстөрдү кошо аласыз. Кыймылдын босогосу да жөнгө салынышы мүмкүн. Сан канчалык аз болсо, кыймылды аныктоо жана NeoPixelsти күйгүзүү оңой болот. Каалаган өзгөртүүлөрдү киргизгенден кийин, сактап, Flora Main Boardке жүктөңүз. Акселерометрди жылдырсаңыз, пикселдер күйүп турганын көрө аласыз. Компьютериңизден сууруп салсаңыз болорун көргөндөн кийин, биз батарейкабызга туташа алабыз.

#кошуу #кошуу #кошуу #кошуу #аныктоо PIN 9 #аныктоо PIXELCOUNT 6 // Параметр 1 = тилкедеги пикселдердин саны // Параметр 2 = пин саны (көбү жакшы, бирок биз 9ду колдонуп жатабыз) // Параметр 3 = пикселдин түрү желектер, керектүү учурда бирге кошуңуз: // NEO_RGB пикселдери RGB бит агымы үчүн зымдуу (v1 FLORA пиксел эмес, v2) 'v1' (v2 эмес) FLORA пикселдери, WS2811 драйверлери) // NEO_KHZ800 800 КГц бит агымы (көпчүлүк NeoPixel продуктылары w/WS2812 светодиоддорунда. биз колдонгон продукт) Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXELCOUNT, PIN, NEO_KB; NEO_GRB) Adafruit_LSM303_Accel_Unified accel = Adafruit_LSM303_Accel_Unified (54321); // R, G, Bди 0-255ке чейин тууралаңыз жана // көбүрөөк түстөр үчүн жаңы {nnn, nnn, nnn} кошуңуз // RGB uint8_t myFavoriteColors {] [3] 255, 255, 255}, // ак {255, 0, 0}, // кызыл {0, 255, 0}, // жашыл}; // астындагы сызыкты түзөтпөңүз #FAVCOLORS sizeof (myFavoriteColors) /3 // бул сан кыймылдын сезгичтигин жөнгө салат // төмөнкү сан = дагы сезимтал #define MOVE_THRESHOLD 5 // супер сезимтал учурдаvoid setup () {Serial.begin (9600); // Чипти аныктай албасак, инициализациялоого жана эскертүүгө аракет кылыңыз // Басып чыгарууну көрүү үчүн Serial Monitor колдонуңуз (! Accel.begin ()) {Serial.println ("Бизде көйгөй бар. Бул сен эмес, мен эмес … LSM303 инициализацияланбай жатат. Мен зымдарды тез текшерүүдөн баштайм "); while (1); } strip.begin (); strip.show (); // Пикселдерди "өчүрүү" кылып коюңуз} void loop () {/ * Жаңы сенсор окуясын алуу */ sensors_event_t окуясы; accel.getEvent (& event); // Serial.print ("Accel X:"); Serial.print (event.acceleration.x); Serial.print (""); // Serial.print ("Y:"); Serial.print (event.acceleration.y); Serial.print (""); // Serial.print ("Z:"); Serial.print (event.acceleration.z); Serial.print (""); // 3 огунун векторунун чоңдугун (узундугун) алыңыз сакталганВектор += окуя.ак ылдамдатуу.y*окуя.ак ылдамдатуу.y; storedVector += event.acceleration.z*event.acceleration.z; storedVector = sqrt (storedVector); // Serial.print ("Len:"); Serial.println (storedVector); // бир аз кечигүүнү күт (250); // жаңы маалыматтарды алуу! accel.getEvent (& event); кош newVector = event.acceleration.x*event.acceleration.x; newVector += event.acceleration.y*event.acceleration.y; newVector += event.acceleration.z*event.acceleration.z; newVector = sqrt (newVector); // Serial.print ("New Len:"); Serial.println (newVector); // биз дагы эле жылып жатабызбы? if (abs (newVector - storedVector)> MOVE_THRESHOLD) {Serial.println ("Flashy! Flash! Flash! McFlash!"); flashRandom (10, 2); // биринчи сан - "күтүү" кечигүүсү, кыскараак == кыскараак жаркыроо flashRandom (10, 4); // экинчи сан - бул бир эле учурда жаркырата турган канча неопиксел flashRandom (10, 6); }} void flashRandom (int wait, uint8_t howmany) {for (uint16_t i = 0; i <howmany; i ++) {// туш келди тандалган түстөр int c = random (FAVCOLORS); int white = myFavoriteColors [c] [0]; int red = myFavoriteColors [c] [1]; int green = myFavoriteColors [c] [2]; // кезеги менен күйгүзүлүүчү пикселдер (int i = 0; i <6; i ++) int j = strip.numPixels (); Serial.print ("Пиксел күйүк"); Serial.println (i); // азыр биз аны 3 кадам менен "өчүрөбүз" (int x = 0; x = 0; x--) {int w = white * x; w /= 3; int r = red * x; r /= 3; int g = жашыл * x; g /= 3; strip.setPixelColor (i, strip. Color (w, r, g)); strip.show (); кечиктирүү (күтүү); }} // Жарык диоддор бүткөндө өчөт (алар 0гө чейин өчөт)}

8 -кадам: Батарея пакети

Батарея пакети
Батарея пакети

Свитериңизди үзгүлтүксүз иштетүү үчүн, биз батарейканы колдонобуз. Тактага илинип калбашы үчүн, биз таңгакты байлоо керек. Батарея чөнтөгүм катары эски жаздык каптын бурчун колдондум. Мен ачык жагын тигип, үстүнкү бир жагын башкы тактага жетиштүү жакын свитерге тигип койгом, ал оңой сайылып, тартылбайт.

Батарея пакетин негизги тактага сайыңыз, башкы тактадагы кичинекей которгучту өчүрүп күйгүзүңүз жана батареяңызды күйгүзүңүз. Сиздин свитериңиз азыр иштеп, кийүүгө даяр болушу керек.

9 -кадам: Жыйынтык

Жыйынтык
Жыйынтык

Сиз азыр бардык досторуңузду жана үй -бүлөңүздү таң калтыра турган жеңил свитер жасадыңыз! Бирок бул жөн эле майрамдык долбоор эмес. Сүйүктүүңүздү жүрөккө жеңил свитер кылыңыз же Сент -Патрик күнүнө шамрок көйнөгүн күйгүзүңүз. Фантазияңызды колдонуңуз жана бизге эмнени жаратканыңызды билдириңиз!

Сунушталууда: