Mainos

Voit tehdä kaikenlaisia ​​asioita vilkkuvilla merkkivaloilla, ja tässä yksinkertaisessa projektissa teemme pienen laitteen, joka syttyy viesteihin ilmassa, kun heilautat sitä edestakaisin. Se on helpompaa kuin luulet, ja osien kokonaiskustannukset ovat alle 5 dollaria.

Tämä projekti hyödyntää optista illuusiota, jota kutsutaan vision pysyvyydeksi, tekstin saattamiseksi ilmaan. Olet todennäköisesti törmännyt tähän ilmiöön, kun joku siirtää valaistua kipinöitä nopeasti yöllä. Käytämme Arduinoa ja joitain LED-valoja jäljittelemään tätä vaikutusta. Tämä projekti on helppo rakentaa, sillä on vähän komponentteja ja vähän juottoa (jos haluat jostain neuvoja juotosraudan käytön aloittamisesta, tutustu tämä opas Opi juottamaan näiden yksinkertaisten vinkkien ja projektien avullaOletko pelotella sinua hieman ajatuksesta kuumasta raudasta ja sulasta metallista? Jos haluat aloittaa työskentelyn elektroniikan kanssa, sinun on opittava juottamaan. Autamme meitä. Lue lisää ).

Tarvitset

  • Arduino (käytin 2 dollarin nanoa, koska se on kompakti ja halpa, mutta minkä tahansa mallin pitäisi olla hieno).
  • 5x Punaiset LEDit.
  • 5x 220 ohmin vastukset.
  • 1x 9v akkupidike.
  • 1x keinukytkin.
  • 1x pala protoboardia.
  • Kotelo valmiille tuotteelle (käytin pientä mustaksi maalattua pahvilaatikkoa).

Tarvitset myös juotosraudan ja jonkin juotteen kaiken kokoamiseksi.

Jotkut juotoskärjet ovat valinnaisia, mutta niistä voi olla hyötyä, jos teet juotosvirheitä. Leipälauta ja jotkut kytkentäjohdot ovat hyödyllisiä myös piirin testaamiseen.

Projektin edellyttämät komponentit

johdotus

Johdotus ei voisi olla yksinkertaisempaa. Kytke ensin Arduino, LEDit ja vastukset kuvan mukaan.

pov fritzing

Nastat D2 - D6 menevät vastaavasti jokaiselle vastukselle, jotka on kiinnitetty kunkin ledin positiiviseen anodiin (pitkä jalka). Katodi on kytketty maahan, joka yhdistyy takaisin Arduinoon. Kun se on valmis, sen pitäisi näyttää noin:

pov leipälauta

Se on se: piiri on valmis! Lisäämme paristokotelon ja kytkimen siihen myöhemmin, mutta tämä on kaikki, mitä meidän on testattava, toimiiko se.

Koodi

Kiinnitä nyt Arduino tietokoneeseen ja avaa Arduino IDE. Jos olet uusi Arduinon käyttäjä ja haluat hyvää opasta menemään, tämä linkki Arduinon aloittaminen: Aloittelijan opasArduino on avoimen lähdekoodin elektroniikan prototyyppialusta, joka perustuu joustavaan, helppokäyttöiseen laitteistoon ja ohjelmistoon. Se on tarkoitettu taiteilijoille, suunnittelijoille, harrastajalle ja kaikille, jotka ovat kiinnostuneita luomaan interaktiivisia esineitä tai ympäristöjä. Lue lisää on hyödyllinen.

Avaa uusi luonnos ja kopioi tämä koodi. Koodi muutettiin Tämä projekti ja voit ladata sen kokonaan tässä Gist.

// kuinka kauan jokainen led pysyy. int delayTime = 1; // kuinka kauan kunkin int charBreak = 3 välillä; // kuinka kauan odottaa viestin valmistumisen jälkeen, ennen kuin se toistuu. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; tyhjä asennus () { pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); pinMode (LED4, OUTPUT); pinMode (LED5, OUTPUT); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int paitsi [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int-tila [] = {0, 0, 0, 0, 0}; tyhjä näyttölinja (sisäinen rivi) { int myline; myline = linja; if (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} if (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } tyhjä näyttöChar (char c) { if (c == 'a') {varten (int i = 0; i <5; i ++) {displayLine (a [i]); viivytys (delayTime);} displayLine (0);} if (c == 'b') {varten (int i = 0; i <5; i ++) {displayLine (b [i]); viivytys (delayTime);} displayLine (0);} if (c == 'c2') {varten (int i = 0; i <5; i ++) {displayLine (c2 [i]); viivytys (delayTime);} displayLine (0);} if (c == 'd') {varten (int i = 0; i <5; i ++) {displayLine (d [i]); viivytys (delayTime);} displayLine (0);} if (c == 'e') {varten (int i = 0; i <5; i ++) {displayLine (e [i]); viivytys (delayTime);} displayLine (0);} if (c == 'f') {varten (int i = 0; i <5; i ++) {displayLine (f [i]); viivytys (delayTime);} displayLine (0);} if (c == 'g') {varten (int i = 0; i <5; i ++) {displayLine (g [i]); viivytys (delayTime);} displayLine (0);} if (c == 'h') {varten (int i = 0; i <5; i ++) {displayLine (h [i]); viivytys (delayTime);} displayLine (0);} if (c == 'i') {varten (int it = 0; se <5; se ++) {displayLine (i [it]); viivytys (delayTime);} displayLine (0);} if (c == 'j') {varten (int i = 0; i <5; i ++) {displayLine (j [i]); viivytys (delayTime);} displayLine (0);} if (c == 'k') {varten (int i = 0; i <5; i ++) {displayLine (k [i]); viivytys (delayTime);} displayLine (0);} if (c == 'l') {varten (int i = 0; i <5; i ++) {displayLine (l [i]); viivytys (delayTime);} displayLine (0);} if (c == 'm') {varten (int i = 0; i <5; i ++) {displayLine (m [i]); viivytys (delayTime);} displayLine (0);} if (c == 'n') {varten (int i = 0; i <5; i ++) {displayLine (n [i]); viivytys (delayTime);} displayLine (0);} if (c == 'o') {varten (int i = 0; i <5; i ++) {displayLine (o [i]); viivytys (delayTime);} displayLine (0);} if (c == 'p') {varten (int i = 0; i <5; i ++) {displayLine (p [i]); viivytys (delayTime);} displayLine (0);} if (c == 'q') {varten (int i = 0; i <5; i ++) {displayLine (q [i]); viivytys (delayTime);} displayLine (0);} if (c == 'r') {varten (int i = 0; i <5; i ++) {displayLine (r [i]); viivytys (delayTime);} displayLine (0);} if (c == 's') {varten (int i = 0; i <5; i ++) {displayLine (s [i]); viivytys (delayTime);} displayLine (0);} if (c == 't') {varten (int i = 0; i <5; i ++) {displayLine (t [i]); viivytys (delayTime);} displayLine (0);} if (c == 'u') {varten (int i = 0; i <5; i ++) {displayLine (u [i]); viivytys (delayTime);} displayLine (0);} if (c == 'v') {varten (int i = 0; i <5; i ++) {displayLine (v [i]); viivytys (delayTime);} displayLine (0);} if (c == 'w') {varten (int i = 0; i <5; i ++) {displayLine (w [i]); viivytys (delayTime);} displayLine (0);} if (c == 'x') {varten (int i = 0; i <5; i ++) {displayLine (x [i]); viivytys (delayTime);} displayLine (0);} if (c == 'y') {varten (int i = 0; i <5; i ++) {displayLine (y [i]); viivytys (delayTime);} displayLine (0);} if (c == 'z') {varten (int i = 0; i <5; i ++) {displayLine (z [i]); viivytys (delayTime);} displayLine (0);} if (c == '!') {varten (int i = 0; i <5; i ++) {displayLine (paitsi [i]); viivytys (delayTime);} displayLine (0);} if (c == '?') {varten (int i = 0; i <5; i ++) {displayLine (kysymys [i]); viivytys (delayTime);} displayLine (0);} if (c == '.') {varten (int i = 0; i <5; i ++) {displayLine (eos [i]); viivytys (delayTime);} displayLine (0);} if (c == '') {varten (int i = 0; i <5; i ++) {displayLine (välilyönti [i]); viivytys (delayTime);} displayLine (0);} viive (charBreak); } tyhjä näyttöString (char * s) {varten (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Vaihda tässä oleva teksti muuttaaksesi näytössä näkyvää tekstiä. // Varmista, että pidät suluissa ja lainausmerkeissä. DisplayString ( ".. hei ..."); viive (40); }

Tallenna luonnos ja lähetä se taulullesi. Jos saat virheitä, varmista, että olet valinnut oikean kortti- ja yhdysportin. LEDien pitäisi alkaa vilkkua. Jos he eivät tee sitä, tarkista kaikki yhteydet leipäpöydälläsi. Koodin alussa ilmoitetut kokonaisluvut määrittävät, kuinka nopeasti teksti näytetään. Mitä suurempi numero, sitä nopeammin sinun täytyy heilauttaa laitetta. Huomasin, että täällä käytetyt numerot toimivat hyvin.

Nyt tehdä pikatesti. Irrota Arduino USB-kaapelista ja kiinnitä akun pidike arduinon VIN- ja GND-napoihin

pov fritz kanssa taistelu

Nyt kun voit siirtää sitä ympäri, kokeile varovasti kääntää ledit edessäsi. Sinun pitäisi nähdä joitain kirjaimia muodostuvan ilmassa, jos se on riittävän tumma ympärilläsi. Huomasin, että se auttoi puhelimen asettamisessa tarttumaan tähän.

leipätesti

Se toimii! Nyt tehdä siitä hieman pysyvämpi.

Silitysraudat valmiina!

Aseta Arduino-kortti, vastukset ja LEDit protolevyllesi seuraavasti:

asetettu alukselle

Voit tietysti tehdä ulkoasusta niin kompakti kuin haluat, kunhan piiri pysyy samana. Varmista, että jätät ainakin yhden rivin protoboard-kosketinta Arduinon molemmille puolille komponentteja ja virtalähdettä varten. Jos olet elektroniikan aloittelija, tässä on joitain hienoja vinkkejä sinulle Aloittelijan elektroniikka: 10 taitoa, jotka sinun täytyy tietääMonet meistä eivät ole koskaan edes koskettaneet juotinta - mutta asioiden tekeminen voi olla uskomattoman palkitsevaa. Tässä on kymmenen DIY-elektroniikan perustaidoista, jotka auttavat sinua pääsemään alkuun. Lue lisää .

Juotostamme LED-katodit yhdessä linjassa yhteisen kentän luomiseksi, aivan kuten teimme LED-matriisi Päivitä jouluseppeleesi liikkeellä aktivoidulla LED-matriisillaTämä DIY-jouluseppele käyttää Arduino- ja LED-matriiseja tuottamaan hämmästyttävän valaistusnäytön, joka tekee vaikutuksen ystävillesi ja perheellesi. Lue lisää .

rivikatodit

Käännä jokainen katodi siten, että se päällekkäin seuraavan kanssa, ja juota ne yhdeksi katkeamattomaksi viivaksi. Nyt meidän on juotettava anodimme vieressä olevien vastusten jalkoihin. Löysin helpoin tapa tehdä tämä oli juottaa molemmat jalat vastaavaan tyynyyn ja aseta sitten rauta niiden välissä molempien liitosten lämmittämiseksi, ennen kuin lopulta lisää juotetta siltojen välisen raon täyttämiseksi niitä.

Tarkista jokainen liitäntä, että se on kunnolla kiinni, ja katkaise sitten viiranleikkureilla ylimääräiset jalat vastuksista ja LEDistä.

vastukset anodeille

Nyt toistetaan sama tehtävä, mutta tällä kertaa kytkemällä vastuksiemme toinen pää Arduinon jalkoihin. Tämä on juotosten hienoin osa. Jokainen vastus kiinnittyy paljon pelkästään Arduino-tappiinsa, tai piiri ei toimi haluamallaan tavalla. Tein täällä useita virheitä ja jouduin käyttämään juotoskärryä ei-toivotun juotteen poistamiseen useita kertoja.

Kun olet tehnyt kaikki oikeat yhteydet, tarkista, että yksikään niistä ei ole päällekkäin naapureidensa kanssa. Jos sinulla on käyttöoikeus yleismittariin täällä, voit käyttää jatkuvuusmoodia tarkistaaksesi, että jokaisella nastalla on vain katkaisematon virta vastukseen. Jos sinulla on vasta yleismittari, siellä on hieno aloitusopas tässä artikkelissa. 7 DIY-tekniikan taitoa opettaa lapsesi, koska koulut eivät tule Lue lisää

jatkuvuuskuva

Kun olet tarkistanut jokaisen liitännän, leikkaa ylimääräinen pituus vastuksien jaloista

Virran lisääminen

Aja nyt pala johtoa Arduinon GND-nastasta reikään vieressä olevaan reikään, jossa juotettujen katodijohtosi päättyy, ja aseta akunpidikkeen musta johdin sen viereen.

gnd johdot ylhäällä

Juota nyt lanka GND-nastaan, samoin kuin vastusten kanssa, ja juotos molemmat johdot katodirivin loppuun, jotta luodaan yhteinen maa piirille.

Kiinnitä lopuksi johto arduinon VIN-nastaan ​​ja aseta kytkin langan ja akun välillä. Anteeksi kuvassa liimalla varustetusta kytkimestä, jouduin purkamaan valmiin koneen kuvaamaan tätä vaihetta!

vaihda vin

Kun kaikki on juotettu yhteen, aseta akku sisään ja napsauta kytkintä. Onnittelut! Piiri on valmis. Jos et näe mitään valaisevaa, tarkista jokainen juotosliitos huolellisesti nähdäksesi, missä voi olla katko tai oikosulku.

liite

Nyt kun meillä se toimii, laitetaan se laatikkoon. Tässä käytettiin maalattua pahvilaatikkoa, vaikka voit tehdä jotain pysyvämpää harrastekaupasta ostetun laatikon tai jopa vanhan tupperware-laatikon avulla. Voit hankkia lisää 3D-arvoja jopa 3D-tulostuksella omallasi yksi näistä halvoista 3D-tulostimista. 5 halpaa 3D-tulostinta, jonka voit itse ostaa tänäänMuutama vuosi sitten jopa halvimmat 3D-tulostimet olivat epämukavasti lähellä 1 000 dollarin markkaa - voit nyt saada laadukkaan 3D-tulostimen niinkin alhaalta kuin 400 dollaria. Lue lisää

Pienennä protolevyä koon mukaan pisteyttämällä se ja napsauttamalla huolellisesti pois tarvitsemasi osat.

proto gif

Sijoita piiri kotelon sisälle ja merkitse, mihin LEDien ja kytkimen on pistävä läpi. Voit vaihtoehtoisesti merkitä myös sen, missä Arduino-levyn USB-liitin kohtaa reunan, jotta voit kytkeä sen muuttaaksesi tekstiä avaamatta laatikkoa. Poraa tai leikkaa tarvittavat reiät koteloon.

tee reikiä

Lisää nyt vähän kuumaa liimaa ledien reunoihin ja kiinnitä ne paikoilleen. Liimoin palan sientä piirin alle niin, että se istuisi tiukasti laatikossa. Kiinnitä kytkin koteloon. Käytin kuumaa liimaa, vaikka ruuvit tai pultit tekisivätkin paljon vahvemman liitoksen. Voit myös liimata akun pidikkeen piirilevyn takaosaan estääksesi sen liikkumisen sisällä esine on käytössä, mutta varmista, että kotelon metalliset koskettimet eivät kosketa juotosliitoksiasi!

mittaa kytkin

Työ on valmis!

Sulje kotelo ja olet valmis! Jos haluat muuttaa tekstiä, liitä USB-kaapeli Arduino-korttiin ja muuta suluissa oleva teksti sen jälkeen DisplayString että silmukka menetelmä. Löydä pimeä paikka ja pidä hauskaa!

hitaampi

Oletko aiemmin rakentanut POV-koneen ja tiedät tapoja parantaa suunnittelua? Suunnitteletko itse yhden rakentamista? Kerro meille projektistasi alla olevissa kommenteissa, haluaisimme kuulla sen!

Ian Buckley on freelance-toimittaja, muusikko, esiintyjä ja videotuottaja, joka asuu Berliinissä, Saksassa. Kun hän ei kirjoita tai näyttämöllä, hän söpöi DIY-elektroniikkaa tai -koodia toivossa tullakseen hulluksi tiedemieheksi.