Talaan ng mga Nilalaman:

Madaling Infinity Mirror Sa Arduino Gemma at NeoPixels: 8 Hakbang (na may Mga Larawan)
Madaling Infinity Mirror Sa Arduino Gemma at NeoPixels: 8 Hakbang (na may Mga Larawan)

Video: Madaling Infinity Mirror Sa Arduino Gemma at NeoPixels: 8 Hakbang (na may Mga Larawan)

Video: Madaling Infinity Mirror Sa Arduino Gemma at NeoPixels: 8 Hakbang (na may Mga Larawan)
Video: LED Зеркало с Иллюзией Бесконечности! Легко повторить! Целый час DIY! 2024, Hulyo
Anonim
Madaling Infinity Mirror Sa Arduino Gemma at NeoPixels
Madaling Infinity Mirror Sa Arduino Gemma at NeoPixels

Narito! Tumingin ng malalim sa kaakit-akit at mapanlinlang na simpleng infinity mirror! Ang isang solong strip ng LEDs ay sumisikat papasok sa isang mirror sandwich upang likhain ang epekto ng walang katapusang pagsasalamin. Ang proyektong ito ay ilalapat ang mga kasanayan at diskarte mula sa aking intro Arduino Class, at isasama ang lahat sa isang pangwakas na form gamit ang isang mas maliit na board ng Arduino Gemma.

Manood ng isang webinar ng proyektong ito! Suriin ang webinar na pinamunuan ko noong Hunyo 28th 2017 upang makita akong kumpletuhin ang build na ito!

Upang makasabay sa ginagawa ko, sundan ako sa YouTube, Instagram, Twitter, Pinterest, at mag-subscribe sa aking newsletter.

Hakbang 1: Mga Panustos

Mga gamit
Mga gamit

Upang sundin kasama ang araling ito kakailanganin mo:

  • Matalas na kutsilyo ng utility
  • Pinuno ng metal o T-square
  • Pagputol ng banig o scrap karton
  • Printer para sa template o circle-drawing compass
  • Plastik na pagmamarka ng kutsilyo (opsyonal ngunit maganda)
  • Mainit na natunaw na pandikit na baril, o E6000 / Quick Hold craft adhesive
  • Clothespin (opsyonal, upang magamit bilang isang pandikit clamp)
  • 4 "bilog na salamin
  • See-through na plastic ng salamin
  • Itim na board ng foam, 3/16 "kapal
  • Arduino Uno at solderless breadboard sa isang tumataas na plato
  • USB A-B cable
  • Maliit na pushbutton (na nahinang mo nang mas maaga)
  • Mga wire ng Breadboard
  • RGBW NeoPixel strip (o iba pang WS2812b RGBW LED strip) (19 pixel, gumagamit ng parehong strip na na-solder mo nang mas maaga)
  • Panghinang at panghinang
  • Mga striper ng wire
  • Flush diagonal cutter
  • Tool na pangatlong kamay
  • Multimeter (opsyonal)
  • Maliit na plang ng needlenose
  • Mga Tweezer
  • Arduino Gemma board
  • Micro USB cable
  • USB hub, kung ang iyong computer ay mayroong mga USB 3 port lamang (tulad ng mga mas bagong Mac)
  • USB extension cable (opsyonal)
  • USB power adapter
  • Lipoly baterya at charger (opsyonal)

Pinapasadahan ka ng proyektong ito sa pamamagitan ng pagbuo ng isang enclosure ng electronics mula sa foamcore board, na nangangailangan ng isang protektadong ibabaw ng trabaho (pagputol ng banig o maraming mga layer ng scrap karton), pinuno ng metal, at matalim na kutsilyo ng utility. Maaari kang gumamit ng isang mainit na glue gun upang tipunin ang mga piraso, o pumili para sa isang adhesive ng bapor tulad ng E6000. Ang isang bilog na salamin na salamin ay nasa gitna ng infinity mirror, at isang piraso ng see-through mirror plastic ang lihim na sangkap para sa infinity tunnel effect. Kung wala kang isang kutsilyo sa pagmamarka ng plastik, maaari kang gumamit ng isang pares ng matibay na gunting upang gupitin ang salamin na plastik, ngunit mag-iwan ng isang mas malawak na margin kaysa sa inaakalang kakailanganin mo, dahil ang mirror film ay may gawi na kaunti sa paligid ng gunting- gupitin ang mga gilid. Mag-ingat kapag gumagamit ng matalim na tool, panatilihin ang isang mangkok ng tubig na yelo sa malapit sa anumang proyekto ng mainit na pandikit para sa mabilis na paggamot sa burn, at gumamit ng wastong bentilasyon para sa anumang mga adhesive.

Larawan
Larawan

Arduino Gemma - Ang proyekto ng infinity mirror na ginagawang maliit ang Arduino circuit sa pamamagitan ng pagpapalit sa Arduino Uno ng isang Arduino Gemma. Ang Gemma ay isang maliit na board na itinayo sa paligid ng ATTiny85 microcontroller, na may mas kaunting memorya at mas kaunting mga tampok kaysa sa Unm's Atmega328, ngunit mas maliit din ito at mas mababang gastos. Ang mga malalaking pad ay napakadali upang maghinang (at tahiin sa may kondaktibo na thread, ngunit iyon ang isang paksa para sa ibang klase). Gumagamit ang Gemma ng isang micro USB cable upang kumonekta sa iyong computer, at mayroong isang port ng JST para sa pagkonekta ng isang baterya. Malalaman mo kung paano i-program ang Gemma mula sa Arduino software at itayo ito sa huling proyekto. Maaari mo ring gamitin ang isang Adafruit Gemma sa halip, ngunit kakailanganin mong magsagawa ng isang karagdagang hakbang upang mai-configure ang Arduino software.

Larawan
Larawan

RGBW NeoPixel strip - Ang digital na madaling address na strip na ito ay naglalaman ng mga chips ng WS2812b na nagkokontrol sa mga compound ng LED na pula, berde, asul, at puti. Ang NeoPixel ay ang tatak ng Adafruit ngunit maaari mo ring makita ang strip na ito sa pamamagitan ng paghahanap para sa "WS2812b RGBW strip" sa site ng iyong paboritong tagapagtustos. Ang sample code na ibinigay sa klase na ito ay hindi gagana sa RGB (walang puti) strip, analog LED strip, o sa anumang iba pang uri ng digital control chip (tulad ng APA104 aka DotStar)

Hakbang 2: Gupitin ang Mga Frame ng Frame

Gupitin ang mga Frame ng Frame
Gupitin ang mga Frame ng Frame

Maghanda para sa ilang papercraft! Ang hakbang na ito ay nagsasangkot ng matalim na mga tool at nangangailangan ng pansin sa detalye, kaya tiyaking nakapagpahinga ka nang mabuti, ngunit hindi rin masyadong maraming caffeine. Gumamit ng maliwanag na ilaw at isang malaki, malinis na ibabaw ng trabaho na protektado ng isang cutting mat o scrap karton.

Kung bago ka sa pagputol at pagdikit ng board ng foamcore, kumuha ng dagdag para sa pagsasanay at mga pagkakamali- isang tatlong-pakete ng 16x20in boards ay dapat na sapat (at maaari kang gumawa ng iba pang mga proyekto dito kung mayroon kang labis na natira). Upang maiwasan ang pinsala, gumamit ng isang matalim na talim, isang metal na pinuno, isang mabagal na tulin, at maraming pag-iingat. Normal na gawing muli ang ilang mga piraso dahil sa isang errant na slip slip o snag.

Mayroong dalawang paraan upang likhain ang mga hugis na iyong gagupitin: i-print ang template, o iguhit ang mga hugis gamit ang isang bilog na pagguhit ng bilog. Walang natatanging kalamangan sa alinman, ngunit ang iyong mga kasanayan at tool ay maaaring mabaluktot sa iyo sa isang paraan o sa iba pa. Ang template ay magagamit bilang isang naka-tile na PDF para sa papel na laki ng sulat, na magkakasama mong i-tape at gagamit ng isang pandikit na stick upang sundin ito sa iyong foamcore. Mayroon ding isang hanggang sa bersyon ng template file kung sakaling nais mong i-print ito sa isang malaking format na printer o gumawa ng mga pagbabago.

Larawan
Larawan
Larawan
Larawan

Talagang simple na iguhit ang mga hugis sa pamamagitan ng kamay, gayunpaman, nangangako ako! Gumuhit muna ng isang bilog upang tumugma sa laki ng iyong salamin sa pamamagitan ng pagtatakda ng compass sa radius nito (4 "mirror = 2" radius) at pagguhit ng isang bilog sa iyong foamcore na hindi bababa sa 5 pulgada mula sa bawat gilid. Oo naman, maaari mo lamang subaybayan ang paligid ng salamin, ngunit pagkatapos ay kailangan mong hanapin at markahan ang gitna! Ang kumpas ay gumagawa ng isang indentation sa gitnang punto na madaling gamitin para sa paggawa ng pangalawang bilog na concentric.

Larawan
Larawan
Larawan
Larawan

Ngayon palawakin ang iyong compass sa 4 at iguhit ang mas malaking bilog sa paligid ng una. Ito ang kumpletong ilalim / likod ng iyong salamin - lagyan ito ng tulad.

Larawan
Larawan
Larawan
Larawan

Ang tuktok / harap na piraso ay kailangang medyo malaki lamang, kaya palawakin ang iyong compass sa 4 3/16 at iguhit ito sa isang ligtas na distansya mula sa ilalim na piraso.

Larawan
Larawan
Larawan
Larawan

Ang window ng pagtingin ay dapat na bahagyang mas maliit kaysa sa salamin, kahit na hindi ito mahalaga eksakto kung magkano. Itakda ang iyong compass sa halos 1/8 pulgada na mas maliit kaysa sa mirror radius, at pagkatapos ay iguhit ang bilog gamit ang parehong gitnang punto bilang mas malaking harap / tuktok na perimeter.

Larawan
Larawan

Lagyan ng label ang piraso na ito sa loob ng mas maliit na bilog, na kung saan ay mapuputol sa loob ng ilang sandali.

Larawan
Larawan
Larawan
Larawan

Kasama sa isang mahabang bahagi ng iyong foamcore, markahan at gupitin ang isang strip sa 1/2 "ang lapad, at isa pa sa 1" ang lapad.

Larawan
Larawan

Yakapin ng makitid na strip ang salamin at susuportahan ang iyong NeoPixel strip, habang ang mas malawak ay bubuo sa panlabas na pader ng pabilog na frame.

Larawan
Larawan
Larawan
Larawan

Sa pagputol ng mga bilog! Ang ilang pagkapino at pasensya ay kapaki-pakinabang dito. Gusto kong gumamit ng isang mas maliit na kutsilyo ng bapor para sa paggupit ng mga bilog dahil sa palagay ko mas may kontrol ako. Ang partikular na kutsilyo na ginagamit ko dito ay tumatagal ng regular na mga X-acto blade, at nakita ko ito sa aisbook ng scrapbooking.

Una, gaanong i-drag ang iyong kutsilyo sa buong bilog ng ilalim na piraso, butas lamang sa tuktok na layer ng papel. Sa panahon ng pagpasa na ito malaya ka na anggulo ang talim subalit higit na komportable at gumagawa ng pinaka tumpak na hugis.

Gupitin muli ang bilog, na sinusubaybayan ang linya na iyong ginawa sa nakaraang pass. Sa oras na ito, bigyang pansin ang iyong anggulo ng talim, na dapat ay 90 degree (tuwid pataas at pababa). Mahigpit na pindutin habang ginagawa mo ang hiwa na ito, at ilayo ang iyong mga daliri sa daanan ng talim. Kunin ang iyong board at suriin upang malaman kung tinapos mo ang lahat ng mga paraan sa pamamagitan ng. Gumawa ng isa pang pass sa iyong talim upang maputol ang anumang natitirang mga spot kasama ang perimeter.

Larawan
Larawan
Larawan
Larawan

Susunod, gupitin ang tuktok na piraso, at pagkatapos ay gupitin ang panloob na bilog. Ang piraso na ito ay nakikita nang higit pa sa anupaman, kaya bigyan ito ng kaunting dagdag na paglilinis upang maituwid ang anumang mga gilid na hindi pantay.

Larawan
Larawan
Larawan
Larawan

Para sa hubog na singsing sa loob, gumawa ng mga cross-cut tuwing 1/4 o higit pa kasama ang mas payat na foamcore strip, ngunit huwag gupitin ang lahat! Mas madali kaysa sa tunog nito - gumawa lamang ng dalawang ilaw na pumasa at makukuha mo ang mabilis na mag-hang nito. Pinapayagan ng mga pagbawas na ito na mabaluktot ang piraso habang nagbibigay ng isang makinis na panloob na ibabaw.

Larawan
Larawan
Larawan
Larawan

Ang panlabas na piraso ng frame ay kailangang ilagay ang pinakamahusay na mukha sa labas, kaya gagawa kami ng mga cross cut sa isang bahagyang naiibang pattern. Unang prep para sa lap joint sa pamamagitan ng pagmamarka ng isang linya 3/16 "mula sa gilid. Gumawa ng banayad na cross-cut kasama ang strip, alternating makapal at manipis na mga seksyon tungkol sa 3/8" at 1/8 ", ayon sa pagkakabanggit.

Larawan
Larawan

Upang alisin ang materyal kung saan ang gilid ay malalagay, ilagay ang strip kasama ang gilid ng paggupit sa ibabaw at i-slide ang iyong kutsilyo nang pahalang upang malaglag ang labis na bula, naiwan ang ilalim na layer ng papel na buo.

Larawan
Larawan

Alisin ngayon ang mga manipis na seksyon sa pamamagitan ng paglabas sa kanila ng isang pares ng sipit o pliers. Naglalabas sila nang may kasiya-siyang tunog ng popping. Sa sobrang puwang na iyon, ang strip ay maaari na ngayong mag-curve sa kanyang sarili at mabuo ang malinis na panlabas na shell ng proyekto!

Larawan
Larawan
Larawan
Larawan

Gupitin ang isang piraso ng iyong see-through mirror na plastik upang mas malaki kaysa sa iyong salamin, ngunit mas maliit kaysa sa panlabas na frame. Huwag abala na subukang gupitin ito sa isang bilog. Kung mayroon kang isang kutsilyo sa pagmamarka ng plastik, pinakamahusay iyan. I-drag ang gouge kasama ang iyong pinuno ng ilang beses, pagkatapos ay i-snap ang plastik kasama ang iskor. Gayunpaman ang isang kutsilyo ng utility ay madaling pinuputol din ang manipis na materyal na ito, kahit na may ilang pag-flaking ng materyal na mirror sa kahabaan ng cut edge, na kung saan ay maitatago sa loob ng frame.

Hakbang 3: Magtipon ng Frame

Magtipon ng Frame
Magtipon ng Frame
Magtipon ng Frame
Magtipon ng Frame

Protektahan ang ibabaw ng iyong trabaho gamit ang ilang scrap material. Painitin ang iyong pandikit at maghanda ng isang mangkok ng tubig na yelo upang manatiling malapit, kung sakaling masunog ang iyong sarili. Maaari kang gumamit ng iba't ibang (mga) adhesive para sa proyektong ito kung nais mo.

Larawan
Larawan
Larawan
Larawan

Mag-apply ng isang manika ng pandikit sa gitna ng ilalim na bilog at idikit dito ang iyong salamin. Paikutin at i-squish ang salamin laban sa foamcore ng dahan-dahan, ihanay ito sa minarkahang bilog. Pagkatapos ay idikit ang iyong manipis na strip sa perimeter ng salamin at gupitin ang anumang labis, nag-iiwan ng isang maliit na agwat para dumaan ang mga wire.

Larawan
Larawan
Larawan
Larawan

Ilagay ang iyong harapan na "donut" na piraso ng mukha sa ibabaw ng trabaho at kola sa lapped edge. Paulit-ulit na pinindot ang mga piraso na ito nang magkasama at pababa sa ibabaw ng trabaho habang ipinapikit mo ang paligid, kaya't ang gilid sa harap ay naging maganda at malinis. Ang panlabas na gilid ay hindi maglilibot at ok lang- mapipili mong isara ang puwang na ito sa paglaon kung nais mo.

Larawan
Larawan
Larawan
Larawan

Ituro ang mga wire ng NeoPixel strip sa pamamagitan ng maliit na puwang sa mirror rim, at idikit ito sa interior. Opsyonal na gumamit ng isang clothespin upang i-clamp ang strip habang ang pandikit ay lumalamig. Subukang iwasang makakuha ng mainit na pandikit sa salamin, ngunit kung gagawin mo ito ay ok lang! Ang isang maliit na rubbing alkohol ay magpapalabas ng paghawak nito sa mga hindi malalakas na ibabaw tulad ng baso.

Larawan
Larawan
Larawan
Larawan

Linisin ang lugar ng iyong pinagtatrabahuhan upang alisin ang alikabok at mga piraso ng foamcore. Gumamit ng isang telang libreng tela upang punasan ang salamin ng ganap na malinis, pagkatapos ay kunin ang iyong see-through mirror at balatan ang proteksiyon na takip mula sa isang gilid. Maglagay ng isang maliit na halaga ng pandikit sa apat na puntos sa paligid ng panloob na dingding (panatilihin ang paggalaw ng iyong pandikit mula sa pag-drag sa salamin upang maiwasan ang mga stray strand), at idikit ang see-through mirror sa lugar. Ngayon ang iyong mapanimdim na mga ibabaw ay tinatakan at protektado mula sa alikabok.

Larawan
Larawan

Bask sa doble na masasalamin sa pamamagitan ng pag-plug ng iyong NeoPixel strip sa iyong Arduino board na tumatakbo ang sample na NeoPixel code na inilarawan sa aking Arduino Class na aralin sa paksa.

Hakbang 4: Circuit Diagram & Pseudocode

Circuit Diagram at Pseudocode
Circuit Diagram at Pseudocode

Kahit na malugod kang sumangguni sa diagram na ipinakita dito sa buong konstruksyon mo, lubos kong hinihikayat kang iguhit ang iyong sarili. Magkakaroon ka ng isang sanggunian na sulyap habang itinatayo mo ang iyong breadboard at pangwakas na mga prototype, at ang paglalagay ng diagram sa iyong mga circuit ay magiging madali upang mag-disenyo ng iyong sariling mga proyekto sa hinaharap. Ang layunin ng isang diagram ng circuit ay upang ipakita ang lahat ng mga koneksyon sa kuryente sa isang circuit, hindi kinakailangan ang kanilang mga pisikal na posisyon o oryentasyon.

Ang mga koneksyon ay ang mga sumusunod:

NeoPixel 5V -> Arduino 5V

NeoPixel GND -> Arduino GND

NeoPixel Din (data sa) -> Arduino digital I / O pin (mai-configure)

isang gilid ng saglit na switch ng pushbutton -> Arduino digital I / O pin (mai-configure)

iba pang bahagi ng panandaliang switch ng pushbutton -> Arduino GND

Pinagsasama ng circuit na ito ang NeoPixel strip na may isang pushbutton para sa pagpapalitaw ng iba't ibang mga LED na animasyon, at gagamit ng isang panloob na resistor na pull-up tulad ng nakita mo sa aralin ng input / output. Gamit ang lahat ng impormasyong ito, maaari kaming magsulat ng isang mababasa ng tao na mockup sa aming programa ng Arduino, na tinawag na "pseudocode:"

Mga variable: NeoPixel number ng pin, pindutan ng numero ng pin, kung gaano karaming mga LED, gaano maliwanag ang mga LED

Mga oras na gawain: ipasimulan ang pin na pindutan bilang pag-input na may panloob na resistor na pull-up, ipasimula ang NeoPixel strip, ilarawan ang mga LED na animasyon

Pag-loop ng mga gawain: suriin upang makita kung ang pindutan ay pinindot at kung mayroon ito, lumipat sa ibang LED animasyon

Maaaring mukhang simple ito, ngunit ang paglalaan ng oras upang magsulat ng pseudocode para sa iyong proyekto ay makakatulong sa iyo na isulat ang iyong huling Arduino sketch na mas mabilis at may kaunting pagkalito. Gumagana ito ng kaunti tulad ng isang listahan ng dapat gawin pati na rin ang isang gabay sa sanggunian para sa kapag lumalangoy ka sa code at hindi matandaan kung ano ang sinusubukan mong makamit!

Hakbang 5: Prototype ng Breadboard

Prototype ng Breadboard
Prototype ng Breadboard

Grab ang iyong Arduino at breadboard, at tiyakin na ang USB cord ay hindi naka-plug. Ang iyong NeoPixels ay naka-plug in pa rin mula sa mas maaga? Malaki! Kung hindi, ikonekta ang mga ito: 5V sa power rail, Din sa Arduino pin 6, GND sa ground rail.

Pagkatapos ay magdagdag ng isang pansamantalang pushbutton sa iyong breadboard, pag-straddling sa gitnang linya ng paghati. Ikonekta ang isang binti sa ground rail, at ang kalapit na paa sa Arduino pin 2. I-download ang code para sa proyektong ito nang direkta o sa module ng Autodesk Circuits sa itaas, i-click ang pindutang "Code Editor", pagkatapos ay "I-download ang Code" at buksan ang file sa Arduino, o kopyahin at i-paste ang code sa isang bagong blangko na Arduino sketch.

Larawan
Larawan

I-plug ang iyong USB cable at i-upload ang code sa iyong Arduino board. Pindutin ang pindutan; dapat itong mag-trigger ng isang bagong animation upang i-play sa buong NeoPixels. Ang 5V rail ay sapat para sa ilang mga pixel na ito sa limitadong ningning, ngunit para sa mga proyekto sa hinaharap na may higit pang mga LED, kakailanganin mo ng isang hiwalay na supply ng kuryente, tulad ng tinalakay sa aralin sa mga kasanayan ng aking intro na Arduino Class.

Hakbang 6: Code

Suriin natin ang code nang mas detalyado:

#define BUTTON_PIN 2 // Digital IO pin na konektado sa pindutan. Ito ay magiging

// hinihimok ng isang pull-up risistor kaya ang switch ay dapat // hilahin ang pin sa lupa sandali. Sa isang mataas -> mababang // paglipat ng pindutan ng pindutin ang ipapatupad. #define PIXEL_PIN 6 // Digital IO pin na konektado sa NeoPixels. #define PIXEL_COUNT 19 #define BRIGHTNESS 100 // 0-255 // Parameter 1 = bilang ng mga pixel sa strip // Parameter 2 = pin number (karamihan ay may bisa) // Parameter 3 = mga flag na uri ng pixel, idagdag nang magkasama kung kinakailangan: / / NEO_RGB Ang mga pixel ay naka-wire para sa RGB bitstream // Ang NEO_GRB Ang mga pixel ay naka-wire para sa GRB bitstream, tama kung ang mga kulay ay napalitan sa pagsubok bitstream (hal. High Density LED strip), tama para sa neopixel stick Adafruit_NeoPixel strip = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, NEO_GRBW + NEO_KHZ800); bool oldState = MATAAS; int showType = 0;

Katulad ng NeoPixel halimbawa code, ang unang seksyon na ito ay nagtatakda ng NeoPixel strip at ang mga variable para sa pushbutton pin, pixel control pin, atbp.

walang bisa ang pag-setup () {

pinMode (BUTTON_PIN, INPUT_PULLUP); strip.setBightness (BRIGHTNESS); strip.begin (); strip.show (); // Initialize all pixel to 'off'} Itinatakda ng pagpapaandar ng pag-setup ang pin 2 sa isang input na may internal na pull-up resistor, naitakda ang global na ningning ng mga pixel, at sinisimulan ang koneksyon ng data ng pixel.

void loop () {

// Kunin ang kasalukuyang estado ng pindutan. bool newState = digitalRead (BUTTON_PIN); // Suriin kung nagbago ang estado mula mataas hanggang mababa (pindutin ang pindutan). kung (newState == LOW && oldState == TAAS) {// Maikling pagkaantala upang i-debounce ang pindutan. pagkaantala (20); // Suriin kung mababa pa rin ang pindutan pagkatapos ng pag-debounce. newState = digitalRead (BUTTON_PIN); kung (newState == LOW) {showType ++; kung (showType> 6) showType = 0; startShow (showType); }} // Itakda ang huling pindutan ng estado sa dating estado. oldState = newState; }

Sinuri muna ng pagpapaandar ng loop ang kasalukuyang estado ng pindutan at iniimbak ito sa isang variable ng boolean (maaaring isa sa dalawang mga estado: MATAAS o Mababa). Pagkatapos ito ay sumusuri at dobleng mga tseke upang makita kung ang estado na iyon ay napupunta mula sa Mataas hanggang sa mababa. Kung nagawa ito, ang showType ay nadagdagan ng isa, at ang function ng startShow ay tinawag, kasama ang kasalukuyang showType na ipinasa dito bilang isang argument (ang showType ay napipigilan sa 0-6). Ang variable oldState ay nai-update upang ipakita ang kung ano ang huling pindutan ng estado ay.

walang bisa startShow (int i) {

switch (i) {case 0: colorWipe (strip. Color (0, 0, 0), 50); // Black / off break; kaso 1: colorWipe (strip. Color (255, 0, 0), 50); // Red break; kaso 2: colorWipe (strip. Color (0, 255, 0), 50); // Green break; kaso 3: colorWipe (strip. Color (0, 0, 255), 50); // Blue break; kaso 4: pulseWhite (5); pahinga; kaso 5: bahaghariFade2White (3, 3, 1); pahinga; kaso 6: fullWhite (); pahinga; }}

Ang function ng startShow ay naglalaman ng isang switch / statement ng kaso, na kung saan ay isang magarbong mabilis na paraan upang mag-stack ng isang bungkos ng kung / iba pang mga pahayag. Kinukumpara ng switch case ang variable i sa mga halaga ng bawat kaso, pagkatapos ay pinapatakbo ang code sa pahayag na iyon. Ang keyword

pahinga;

lumabas sa pahayag ng switch / case. Ginagamit ang switch / case na ito upang tumawag sa iba't ibang mga pag-andar ng animasyon tuwing pinindot mo ang pindutan.

Larawan
Larawan

Ngayon na mayroon kang isang functional prototype ng breadboard, oras na upang gawin itong isang tapos na proyekto sa pamamagitan ng paggamit ng isang Arduino Gemma, na mas maliit, hindi gaanong tampok, at mas mababang gastos kaysa sa Arduino Uno. Maaari mo ring gamitin ang isang Adafruit Gemma sa halip, ngunit kakailanganin mong magsagawa ng isang karagdagang hakbang upang mai-configure ang Arduino software.

Una, baguhin ang variable ng NeoPixel pin mula 6 hanggang 1 sa iyong code:

#define PIXEL_PIN 1 // Ang Digital IO pin na konektado sa NeoPixels.

I-plug ang iyong Arduino Gemma sa iyong computer gamit ang isang USB cable, at piliin ang "Arduino Gemma" bilang uri ng iyong board sa menu ng Arduino Tools.

Larawan
Larawan

Ang mga limitadong pag-andar ng ATTiny85 microcontroller onboard ay hindi sumusuporta sa isang serial port sa parehong paraan tulad ng Uno, kaya hindi mo kailangang pumili ng anuman mula sa menu ng Port. Gayunpaman, tiyaking piliin ang "Arduino Gemma" sa ilalim ng item ng menu ng Programmer.

Larawan
Larawan

Ang board ay nangangailangan ng kaunting tulong na nalalaman kapag sinusubukan mong i-program ito, kaya pindutin ang pindutan ng pag-reset sa board, at habang ang pulang LED ay pumipilit, pindutin ang I-upload na pindutan upang mai-load ang iyong sketch sa Gemma. Kung ang iyong pulang LED ay hindi pulso kapag pinindot mo ang reset button, ang iyong USB cable ay maaaring power-only, at dapat na palitan para sa isang USB cable na may mga koneksyon sa kuryente at data. Ang isa pang kadahilanan na maaaring hindi pulso ang iyong LED ay kung gumagamit ka ng isang USB 3 port (lahat ng mga mas bagong Mac), na may problema sa pagkilala sa Gemma bootloader. Gumamit ng isang USB 2 port sa iyong computer o isang USB hub sa pagitan ng iyong computer at Gemma.

Hakbang 7: Solder Circuit

Larawan
Larawan
Larawan
Larawan

Upang patakbuhin ang circuit sa iyong Gemma, idiretso namin ang mga wire nang direkta sa mga pad sa board. I-snip ang konektor ng breadboard at i-strip, i-twist, at i-lata ang mga lead ng mga NeoPixel strip wires. Ang mga wire ng panghinang papunta sa mga dayagonal na lead ng isang pushbutton sa parehong pamamaraan (maaari mong gamitin ang pindutan mula sa araling panghinang). I-twist at maghinang magkasama ang dalawang mga wire sa lupa.

Larawan
Larawan
Larawan
Larawan

Ang mga malalaking butas ng Gemma ay ginagawang madali upang tipunin ang circuit na ito nang walang karagdagang mga bahagi- i-thread lamang ang mga tinned wires sa pamamagitan ng mga butas at ibalot ang labis sa paligid ng solder pad. Ang mga koneksyon ay ang mga sumusunod:

  • NeoPixel 5V -> Gemma Vout
  • NeoPixel Din -> Gemma 1 ~ (digital pin 1)
  • NeoPixel GND -> isang bahagi ng pushbutton -> Gemma GND
  • iba pang bahagi ng pushbutton -> Gemma 2 (digital pin 2)

I-set up ang iyong circuit board sa isang tool na pangatlong kamay at painitin ang mga koneksyon sa iyong panghinang na bakal bago maglagay ng mas maraming panghinang upang malamon ang pad at kawad. Matapos ang lahat ng mga koneksyon cool, i-trim ang labis na kawad sa iyong flush snips.

Larawan
Larawan
Larawan
Larawan

Mainit na pandikit ang iyong Gemma sa lugar na may USB port na nakaharap sa gilid ng bilog.

Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan
Larawan

Ilapat ang harap / tuktok na takip at manipulahin ang gilid upang maupuan nang malinis ang mga piraso. Maaaring kailanganin mong i-trim ang iyong bilog sa ibaba nang kaunti lamang upang gawin itong magkasya, at gayundin hilahin ang gilid na bukas upang mapaunlakan ang asawa nito. Kola ang pushbutton sa lugar kahit saan mo gusto.

Hakbang 8: Gamitin Ito

Mag-plug sa isang USB cable, pindutin ang pushbutton, at mag-enjoy! Maaari mong ilipat ang mga kulay at mga animasyon sa pamamagitan ng pagbabago ng code. Gumamit ng isang USB power adapter kung nais mong i-mount ito sa isang pader. Sa puntong ito maaari kang gumawa ng isa pang maliit na piraso ng foamcore upang isara ang natitirang puwang, kung nais mo. Ang ilang mga iminungkahing paggamit: isabit ito sa iyong dingding, itago ito sa iyong mesa, ibigay ito sa isang kaibigan!

Larawan
Larawan

Madali mong mapapatakbo ang proyektong ito sa isang panloob na baterya sa halip na ikonekta ang isang USB cable. Ang oryentasyon kung saan mo ididikit ang Gemma ay matutukoy ang pag-access sa port ng baterya, kaya baka gusto mong muling idikit ito sa ibang anggulo. 19 RGBW pixel beses 80ma max kasalukuyang gumuhit (plus ~ 10ma para sa Gemma) ay katumbas ng 1530ma, na nangangahulugang kailangan namin ng isang baterya na may hindi bababa sa maraming mAh. Gayunpaman ang code para sa salamin ay hindi malapit sa paggamit ng lahat ng apat na mga pixel na LEDs sa buong liwanag na magkasama, kaya sa totoo lang ang maximum na kasalukuyang gumuhit ay mas mababa. Ang isang malusog na kompromiso sa baterya ay isang 1200mAh rechargeable lipoly na baterya.

Larawan
Larawan

Salamat sa pagsunod kasama ang proyektong Arduino na ito! Upang malaman ang higit pang mga pangunahing kaalaman, suriin ang aking pambungad na Arduino Class. Hindi ako makapaghintay na makita ang iyong mga bersyon sa mga komento at maligayang pagdating sa iyong mga saloobin at puna.

Inirerekumendang: