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

Arduino Light Up цамц: 9 алхам
Arduino Light Up цамц: 9 алхам

Видео: Arduino Light Up цамц: 9 алхам

Видео: Arduino Light Up цамц: 9 алхам
Видео: Девочка — шашлычок ► 1 Прохождение Silent Hill Origins (PS2) 2024, Долдугаар сарын
Anonim
Image
Image

Муухай цамцтай үдэшлэг бол баярын гол чимэглэл юм. Жил бүр та тоглоомоо дээшлүүлж, олж болох хамгийн сайн цамц өмсөх ёстой. Гэхдээ энэ жил та нэгийг нь илүү сайн хийж, хамгийн сайн цамц хийж чадна. Бид Adafruit Wearables ашиглан найз нөхөд, гэр бүлийнхэндээ гайхалтай сэтгэгдэл төрүүлэх сайхан гэрэлтсэн цамц бүтээдэг.

Adafruit нь Wearables -ийн эргэн тойронд хэд хэдэн гайхалтай төслүүдийг бүтээсэн тул бид энэ төслийг тэдний Sparkle юбка төслөөс хэрэгжүүлэхийн тулд өөрчилсөн кодыг ашиглаж байна.

Энэхүү гарын авлагад та:

  • Wearables -ийг ашиглаж сурах
  • Flora -ийн үндсэн самбар, акселерометр, NeoPixels -ийг кодлоод Arduino ашиглан гэрэлтүүлээрэй

Алхам 1: Эхлэх

Эхлэх
Эхлэх

Бид Adafruit Flora Wearables, батерейны багц, дамжуулагч утас, баярын цамц ашиглах гэж байна. Мөн танд ердийн утас, зүү, хумсны будаг хэрэгтэй болно. Цаг хугацаа өнгөрөхөд энэ бүхэн утга учиртай болно. Манай хувилбар нь Санта Клаусын нүдийг гэрэлтүүлэх боловч бид бүх шашин шүтлэг, баяр ёслол, итгэл үнэмшлийг дэмждэг тул бүтээлч байгаарай!

  • Adafruit ургамлын төв зөвлөл (https://www.adafruit.com/product/659)
  • Ургамлын хурдатгал хэмжигч (https://www.adafruit.com/product/1247)
  • Ургамал 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: Оёдлын зөвлөмж

Оёдлын чухал хэсэг нь гурван зүйл юм; шорт байхгүй/оёдол огтлолцохгүй, оёдол дуусах үед нягт зангилаа, өмсдөг эд зүйлстэй сайн холболт.

Богино өмд/оёдол огтлолцол байхгүй

Оёдол нь хөндлөн гарахгүйн тулд өмсөх хэрэгслүүдээ байрлуулахаа мартуузай. Шугамууд огтлолцохгүй байх нь ойлгомжтой. Бүх оёдол тусдаа үлдэхийг баталгаажуулсан зохион байгуулалттай болсны дараа оёхдоо нягт байх ёстой. Хэрэв та хэтэрхий сул зогсолт хийвэл энэ нь утас хүрэх болно. Оёдол хийж дууссаны дараа илүүдэл үзүүрийг нь хайчилж ав, ингэснээр утас байхгүй болно.

Хатуу зангилаа

Оёдлын шугамыг дуусгах үед нягт зангилаа нь оёдол нь сулрахгүй байх болно. Заль мэх нь зангилаан дээр тунгалаг хумсны будаг бүхий жижиг хүүхэлдэй түрхээд хатаана. Энэ нь цавуутай адил зангилааг бэхлэхэд тусална. Цахилгаан дамжуулагч утас нь ердийн утас шиг зангиддаггүй тул хумсны будаг хэрэглэхийг зөвлөж байна, эс тэгвээс оёдол нь сулрах болно.

Сайн холболтууд

Зүү дээрх гогцоонууд нягт байгаа эсэхийг шалгаарай. Энэ нь хэрэв таны хэлхээ ажиллахгүй бол асуудал нь холболт биш гэдгийг бид мэднэ. Үргэлж сайн холболт байхын тулд та тээглүүрийг 2-3 удаа давтаж болно.

Зөвлөмж/заль мэх

Хувцасаа асаах, унтраах үед асахгүй байгаа эсэхийг шалгаарай. Энэ бол утаснууд хүрч, богиносох хамгийн хялбар арга юм. Хувцасыг эвтэйхэн асаахаас нааш зайныхаа хайрцгийг бүү асаагаарай.

Алхам 4: Бүрэлдэхүүн хэсгүүдийг оёх

Бүрэлдэхүүн хэсгүүдийг оёх
Бүрэлдэхүүн хэсгүүдийг оёх
Бүрэлдэхүүн хэсгүүдийг оёх
Бүрэлдэхүүн хэсгүүдийг оёх

Бидний хавсаргах ёстой хамгийн эхний зүйл бол Flora Main Board юм. Самбарыг цамцандаа хийхээр төлөвлөөгүй хоёр голоор тогтмол утас ашиглан оё. Энэ нь самбарыг бэхжүүлж, дамжуулагч утас ашиглан оёход хялбар болгоно. Хөдөлгөөнгүй байхын тулд хэд хэдэн энгийн гогцоо хийхэд хангалттай.

Дараа нь та Flora Main Board болон Accelerometer -ийн дөрвөн холболтыг оёх хэрэгтэй. Энэ нь Power, Ground, SCL, SDA байх болно. Хэрэв та Accelerometer -ийг үндсэн самбарын зүүн дээд буланд байрлуулбал холболтууд шууд эгнээнд орно. Тиймээс та хоёр самбарыг холбох дөрвөн тусдаа оёдол авах болно. Задрахгүйн тулд хоёр төгсгөлийн зангилаанд бага зэрэг тунгалаг хумсны будаг ашиглаарай. Самбар дээрх бага зэрэг хумсны будаг нь тэднийг гэмтээхгүй.

Эцэст нь та Flora Main самбараас 3V, газардуулга, өгөгдлийн холболтыг NeoPixels -т холбох хэрэгтэй. NeoPixels -ийн доод ба дээд хэсэгт байгаа тул та газар, хүч чадлын хувьд хоёр урт, тасралтгүй оёдол хийж болно. Pin 9 -ийн өгөгдлийн холболтын хувьд та NeoPixel тус бүрээс дараагийн оёдол хийх хэрэгтэй.

Алхам 5: Arduino IDE

Flora Main Board нь Arduino-тэй нийцтэй тул бид кодондоо Arduino IDE-ийг ашиглах болно. Та энэ линкээр дамжуулан хамгийн сүүлийн хувилбарыг татаж авах боломжтой.

Энэ линкээр дамжуулан вэб хувилбар бас бий.

Манай NeoPixels болон Accelerometer -ийг ашиглахын тулд дөрвөн номын санг нэмж оруулах шаардлагатай байна. Sketch, Номын сан оруулах, Номын санг удирдах хэсэгт очно уу. Тус бүрийн хувьд та үүнийг нэрээр нь хайж, хамгийн сүүлийн хувилбарыг сонгоод суулгах дээр дарна уу.

  • Adafruit NeoPixel
  • Adafruit нэгдсэн мэдрэгч
  • Adafruit TSL2561
  • Adafruit LSM303DLHC

Эдгээрийг суулгаж оёх ажил дууссаны дараа бид бүх зүйл ажиллаж байгаа эсэхийг шалгахын тулд цамцаа туршихад бэлэн байна.

Алхам 6: Туршилтын скриптүүд

Туршилтын скриптүүд
Туршилтын скриптүүд

Төслөө шалгахын тулд бид Adafruit -ийн үндсэн самбарыг USB кабель ашиглан компьютерт холбох хэрэгтэй. Дараа нь Tools, Port руу очиж жагсаалтаас Flora Main самбараа сонгоно уу.

Бидний шалгах хамгийн эхний зүйл бол акселерометр зөв ажиллаж байгаа эсэхийг шалгах явдал юм. Файл, Жишээ, Adafruit LSM303DLHC, accensensor руу очно уу. Энэ нь мэдрэгч холбогдсон эсэхийг шалгаж, координатын утгыг уншдаг скриптийг нээх болно. Самбар дээрээ байршуулаад Arduino IDE -ийн баруун дээд хэсэгт байрлах Цуваа мониторыг нээнэ үү. Хэрэв та акселерометрийг хөдөлгөж байх үед зураг дээрх шиг цуваа дэлгэц дээр утгууд өөрчлөгдөж байгааг харах юм бол энэ нь ажиллаж байна!

Бидний шалгах хоёрдахь зүйл бол NeoPixels ажиллаж байгаа эсэх юм. Файл, Жишээ, Adafruit NeoPixels, strandtest руу очно уу. Энэ скриптийг ажиллуулахаасаа өмнө Pin -ийг 9 болгож, пикселийн тоог 6 болгож өөрчил (эсвэл таны төсөлд ашиглаж байгаа зүйл). Самбар дээрээ байршуулаарай, хэрэв пикселүүд бүгд гэрэлтэх юм бол та эцсийн скриптэд бэлэн болно!

Алхам 7: Эцсийн скрипт

Эцсийн скрипт
Эцсийн скрипт

Одоо эцсийн кодоо ачаалах цаг боллоо. Доорх кодыг шинэ төслийн файл руу хуулж оруулна уу. Pin -ийг 9, NeoPixels -ийн тоог 6 болгож тохируулсан. Хэрэв та өөр зүйл хэрэглэж байгаа бол энэ скриптийг ажиллуулахаасаа өмнө тэдгээрийг солино уу. Та R, G, & B-ийн утгыг 0-255 хүртэл тохируулснаар дуртай өнгөө тохируулж болно. Та мөн шинэ мөр нэмж өөр дуртай өнгө нэмж болно. Хөдөлгөөний босгыг бас тохируулж болно. Энэ тоо бага байх тусам хөдөлгөөнийг илрүүлж NeoPixels -ийг асаахад хялбар болно. Хүссэн өөрчлөлтөө хийсний дараа хадгалж, Flora Main Board дээрээ байршуулна уу. Хэрэв та акселерометрийг хөдөлгөж байвал пикселүүд гэрэлтэж байгааг харах боломжтой байх ёстой. Та үүнийг компьютерээсээ салгаж, бид батерейныхаа багцад холбогдох боломжтой болохыг олж мэдсэний дараа.

#include #include #include #dexine PIN 9 #тодорхойлох PIXELCOUNT 6 // Параметр 1 = зурвас дахь пикселийн тоо // Параметр 2 = зүү дугаар (ихэнх нь сайн боловч бид 9 ашиглаж байна) // Параметр 3 = пикселийн төрөл туг, шаардлагатай бол нэмж оруулаарай: // NEO_RGB пикселүүд нь RGB bitstream -д утастай байдаг (v1 FLORA пиксел, v2 биш) // NEO_GRB пикселүүд нь GRB бит урсгалд холбогддог (бидний ашиглаж буй NeoPixel бүтээгдэхүүний ихэнх бүтээгдэхүүн) // NEO_KHZ400 400 KHz (сонгодог 'v1' (v2 биш) FLORA пикселүүд, WS2811 драйверууд) // NEO_KHZ800 800 KHz битийн урсгал (ихэнх NeoPixel бүтээгдэхүүнүүд/WS2812 LED. бидний хэрэглэж буй бүтээгдэхүүн) Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXELCOUNT, PIN, NEOO_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 // энэ тоо нь хөдөлгөөний мэдрэмжийг тохируулдаг // доод тоо = илүү мэдрэмтгий #тодорхойлох MOVE_THRESHOLD 5 // хэт мэдрэмтгий одоогоор хүчингүй тохиргоо () {Serial.begin (9600); // Хэрэв бид чипийг илрүүлж чадаагүй бол эхлүүлж, анхааруулж үзээрэй // Цуваа мониторыг ашиглан хэвлэхийг харахын тулд хэрэв (! Accel.begin ()) {Serial.println ("Бидэнд асуудал гарлаа. Энэ бол та биш, би биш … LSM303 -ийг эхлүүлэх боломжгүй байна. Би утсыг хурдан шалгаж үзье "); байхад (1); } strip.begin (); strip.show (); // пикселийг 'унтраах' болгож тохируул} void loop () {/ * Шинэ мэдрэгчийн үйл явдал авах */ sensors_event_t event; accel.getEvent (& үйл явдал); // Serial.print ("Accel X:"); Цуваа.хэвлэх (event.acceleration.x); Serial.print (""); // Serial.print ("Y:"); Цуваа.хэвлэх (үйл явдал.хурдац.y); Serial.print (""); // Serial.print ("Z:"); Цуваа.хэвлэх (event.acceleration.z); Serial.print (""); // 3 тэнхлэгтэй векторын давхар хадгалагдсанVector = event.acceleration.x*event.acceleration.x; хадгалагдсанVector += event.acceleration.y*event.acceleration.y; хадгалагдсанVector += event.acceleration.z*event.acceleration.z; хадгалагдсанVector = sqrt (хадгалагдсанВектор); // Serial.print ("Len:"); Serial.println (хадгалагдсанВектор); // жаахан хүлээх (250); // шинэ мэдээлэл авах! accel.getEvent (& үйл явдал); давхар 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 ("Шинэ Лен:"); Serial.println (newVector); // бид одоохондоо хөдөлж байна уу? if (abs (newVector - storedVector)> MOVE_THRESHOLD) {Serial.println ("Flashy! Flash! Flash! McFlash!"); flashRandom (10, 2); // эхний тоо бол 'хүлээх' саатал, богино num == богино анивчсан гэрэл 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 цагаан = myFavoriteColors [c] [0]; int улаан = myFavoriteColors [c] [1]; int green = myFavoriteColors [c] [2]; // дарааллаар асаах пикселүүд (int i = 0; i <6; i ++) int j = strip.numPixels (); Serial.print ("Pixel асаалттай"); Serial.println (i); // одоо бид үүнийг 3 алхамаар "бүдгэрүүлэх" болно (int x = 0; x = 0; x--) {int w = white * x; w /= 3; int r = улаан * x; r /= 3; int g = ногоон * x; g /= 3; strip.setPixelColor (i, зурвас Өнгө (w, r, g)); strip.show (); хойшлуулах (хүлээх); }} // LED -ууд дууссаны дараа унтарна (тэдгээр нь 0 болж бүдгэрнэ)}

Алхам 8: Батерейны багц

Зайны багц
Зайны багц

Цамцаа тасралтгүй асааж байхын тулд бид батерейны багц ашиглах болно. Бид савлагаанд зориулж бэхэлгээ хийх хэрэгтэй бөгөөд ингэснээр тэр зөвхөн самбар дээр өлгөгдөхгүй. Би хуучин дэрний уутны буланг зайныхаа халаас болгон ашигласан. Би нээлттэй талыг нь оёж, дээд талын нэг талыг үндсэн самбартай ойрхон цамц руу оёж, амархан залгаж, татаж авахгүй болно.

Батерейны багцыг үндсэн самбар дээр холбож, үндсэн самбар дээрх жижиг унтраалгыг унтрааж асаагаад зайгаа асаагаарай. Таны цамц одоо ажиллаж, өмсөхөд бэлэн байх ёстой.

Алхам 9: Дүгнэлт

Дүгнэлт
Дүгнэлт

Та одоо бүх найз нөхөд, гэр бүлийнхэндээ сэтгэгдэл төрүүлэх хөнгөн цамц хийлээ. Гэхдээ энэ бол зөвхөн баярын төсөл биш юм. Гэгээн Патрикийн өдөрт зориулан валентинээ зүрхэн цайвар цамц эсвэл шамрок цамц хийж өгөөрэй. Уран зөгнөлөө ашиглаж, бүтээсэн зүйлээ бидэнд мэдэгдээрэй!

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