Innholdsfortegnelse:

Arduino Fireflies: 11 trinn (med bilder)
Arduino Fireflies: 11 trinn (med bilder)

Video: Arduino Fireflies: 11 trinn (med bilder)

Video: Arduino Fireflies: 11 trinn (med bilder)
Video: Arduino - Fireflies in a jar 2024, Juli
Anonim
Image
Image
Hva du trenger
Hva du trenger

En av tingene jeg ser frem til med somre i Pennsylvania er ildfluer i hagen min. Jeg lærte meg nylig Adruino -programmering med det formål å lage dette enkle prosjektet. Det er et flott program å starte med og er enkelt nok for enhver programmerer, nybegynner til ekspert, å bygge, endre og ha det gøy med på bare noen få minutter. La oss komme i gang.

Trinn 1: Hva du trenger

Hva du trenger
Hva du trenger

For å få feilene dine til å blinke, trenger du disse komponentene:

  • Arduino. Jeg begynte med Nano, men enhver Arduino-kompatibel mikrokontroller vil gjøre det.
  • Gule lysdioder, 5 mm. Du kan bruke opptil 6 av dem.
  • Motstander. Du trenger en motstand per LED for å begrense strømmen. Jeg brukte 470 ohm, men alt over 150 ohm burde være greit for å beskytte mikrokontrolleren.
  • Brødbrett.
  • Jumper wire.

For å fullføre prosjektet for hagen din trenger du:

  • Værbestandig prosjektboks.
  • 9 volt batteri med kontakt. (Se notatene nederst i denne delen.)
  • Bytte om. (Jeg valgte disse vanntette bryterne. Hvis du ikke bruker dette ute, vil en hvilken som helst bryter gjøre det.)
  • Noen meter med ledning for å plassere lysdiodene rundt hagen. Jeg brukte omtrent 10 fot Cat5 Ethernet -ledning per LED.
  • Et lite brødbrett eller noe perf -brett.
  • En værbestandig kabelgjennomføring som LED -ledningene går gjennom. (Du kan utelate dette hvis du ikke bruker dette også ute.)
  • Varmekrympeslange for å beskytte LED -bug -rumpene dine.
  • Grønne krok og sløyfe (dvs. borrelås) for å feste LED-ildfluene på planter og stolper i hagen din.
  • Mannlige overskrifter for å koble komponenter til det lille brødbrettet.

Verktøy:

  • Borekroner til prosjektboksen. (Benytt anledningen til å skaffe deg en fin bit. Du vil være glad du gjorde det).
  • Varm limpistol.
  • Loddejern.
  • Roterende verktøy (dvs. Dremel) for å skjære ut plass i prosjektboksen hvis du trenger det.

Noen få notater her:

1. Batterivalget var for en rask og enkel oppstart. Å bruke et 9-volts batteri permanent er litt sløsing. Det er bedre å bruke en 4x AA-batteriholder for lengre levetid (men du trenger en større prosjektboks for å passe den).

2. Hvis du velger å dekonstruere en Cat 5 Ethernet -kabel for ledningene, må du kontrollere at de er av kobberkjerne og vikle dem pent rundt noen PVC for å holde dem organisert mens du jobber. Igjen brukte jeg omtrent 10 fot ledning per LED. Hvis du vil spre lysene vidt og bredt, bruk for all del lengre ledninger!

3. Til slutt er alle koblingene jeg har gitt bare forslag. Vennligst les gjennom hele denne instruksjonsboken før du bygger eller kjøper noe, da får du en bedre forståelse av hvordan du personlig vil fortsette.

Trinn 2: Bygg kretsen

Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen
Bygg kretsen

Dette prosjektet bruker pulsbreddemodulasjonspinnene på din Arduino. Mikrokontrolleren har 6 av disse pinnene, og du er velkommen til å bruke så mange du vil. Kretsen er ganske rett frem. Koble all strøm fra pulsbreddemodulasjon (PWM) pinnene D3, D5, D6, D9, D10 og D11 til de positive endene på lysdiodene dine. Koble de negative endene til motstandene og deretter til et felles grunnlag. (Motstandene kan gå foran eller bak lysdioden. Det spiller ingen rolle med mindre du vil sikre deg mot kortslutning i høyere strøm.) Jeg inkluderte noen skjemaer for å hjelpe med ledninger. (Diagrammene ble laget ved hjelp av Fritzing designprogramvare.)

Trinn 3: Koden

Image
Image

Hvis du er en erfaren programmerer, finner du denne koden forenklet. Det er en flott kode å begynne å lære med, da den introduserer deg for bruk av variabler, pinmodes, funksjoner og til og med en tilfeldig generator. Koden er ikke så kompakt som den kan være, da jeg er sikker på at den samme effekten kan oppnås med matriser osv.

Kodekommentarene beskriver logikken i hver seksjon. Hele koden er innebygd her, og du kan laste ned skissen nedenfor.

/*

Dette skriptet blinker 6 lysdioder (selvfølgelig gule) i tilfeldig rekkefølge med tilfeldige intervaller ved bruk av PWM. Hver LED styres av sin egen funksjon. */ int led1 = 3; // LED koblet til PWM pin 3, etc. Jeg brukte alle 6 PWM pins. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; lang randnum; // randnum kontrollerer tidsintervallet mellom blink og lang randbug; // randbug kontrollerer hvilken feil som lyser. ugyldig oppsett () {pinMode (led1, OUTPUT); // Innstilling av alle PWM -pinner som utganger. pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); } void loop () {randbug = tilfeldig (3, 12); // randbug velger tilfeldig en funksjon som skal utføres, // velger dermed tilfeldig en feil for å lyse opp. hvis (randbug == 3) {bug1 (); } if (randbug == 5) {bug2 (); } if (randbug == 6) {bug3 (); } if (randbug == 9) {bug4 (); } hvis (randbug == 10) {bug5 (); } if (randbug == 11) {bug6 (); }} / * * Hver av disse funksjonene fungerer på samme måte. "for sløyfer" øker og senker * utgangen til den pinnen for å kontrollere LED -lysstyrken. * 'randnum' er et tilfeldig tidsintervall mellom 10 og 3000 ms * og velger et tidsintervall mellom feilblink. * 'forsinkelse 10' er bare for fade -effekten. */ void bug1 () {randnum = tilfeldig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led1, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug2 () {randnum = tilfeldig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led2, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug3 () {randnum = tilfeldig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led3, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug4 () {randnum = tilfeldig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led4, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug5 () {randnum = tilfeldig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led5, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug6 () {randnum = tilfeldig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led6, fadeValue); forsinkelse (10); } forsinkelse (randnum); }

Trinn 4: Bygg boksen

Bygge Bug Butts!
Bygge Bug Butts!

Når du har blinket din Arduino med kode og fått ildfluene til å fungere slik du vil, vil du kanskje sette dem i hagen; det betyr en prosjektboks og noe varmekrymping for å holde Arduino og lysdioder tørre. La oss lage!

Trinn 5: Bygg feilmeldinger

Bygge Bug Butts!
Bygge Bug Butts!
Bygge Bug Butts!
Bygge Bug Butts!
Bygge Bug Butts!
Bygge Bug Butts!
  • Trim LED -lampen til ca 5 mm.
  • Strip og tinn endene på ledningene du bruker, også ca 5 mm.
  • Skyv 1 mm varmekrympeslange over hver trådende.
  • Lodd LED -en til ledningen. (På dette tidspunktet bør du velge hvilken ledning i paret ditt som skal være din positive og hvilken som vil være negativ. Jeg valgte den solide ledningen som positiv og den hvite ledningen som negativ. Oppretthold den strategien gjennom prosjektet for å unngå hodepine senere!)
  • Skyv varmekrympingen oppover helt over ledningen og LED -ledningene. Kjør en rask flamme over dem for å krympe dem til ledningene.
  • Skyv et annet varmekrympe over LED -en og ledningene med LED -linsen som stikker ut enden og smelt den på plass.
  • Skyv noen varmeelementer inn på ledningen gjennom hele lengden og smelt den på noen få meter for å holde ledningen ryddig.

Trinn 6: Forbered prosjektboksen

Forbered prosjektboksen
Forbered prosjektboksen
Forbered prosjektboksen
Forbered prosjektboksen
  • Bruk et roterende verktøy med en slipetrommel for å rense all unødvendig plast i prosjektboksen. (Vær forsiktig så du ikke kutter bort eventuelle skruefester du trenger for å sette boksen sammen igjen.)
  • Bestem hvor du vil at bryteren skal være og LED -ledninger skal komme ut. Jeg foreslår sidene, men bruk det som fungerer med dine behov.
  • Bruk den passende størrelsen til å lage hull for kabelgjennomføringen og bryteren.

Merk: På bildet ovenfor ser du at jeg har laget en "dummy -kabel". Dette er en bunt med 6 par av ledningen jeg brukte til lysdiodene med varmekrymping for å sette dem sammen. Jeg brukte den for å sikre at kabelgjennomføringen passet fint med selve kabelflokken og også for å teste vannbestandigheten til boksen når bryteren, kabelgjennomføringen og lokket var på. (Etter å ha vært nedsenket i 24 timer i 6-tommers vann, hadde den veldig lite fuktighet inni. Jeg vil gjerne kalle denne boksen "værbestandig.")

Trinn 7: Ta med kraften

Ta med kraften!
Ta med kraften!
Ta med kraften!
Ta med kraften!
  • Bestem hvor mye batteri og bryterledning du trenger for å nå Arduino ved å grovt plassere alle tre komponentene i prosjektboksen. Trim ledningene til bryteren og 9V batterikontakt. Strip og tinn endene. Skyv litt varmekrymping på plass for neste trinn.
  • Klipp bort to mannlige toppstifter fra stripen din (men hold dem fast).
  • Lodd den røde ledningen til 9V batterikontakten til den ene enden av bryteren. Lodd den andre enden av bryteren til en mannlig toppnål. Lodd det svarte batteriledningen til den andre hannstiften.
  • Som vist i diagrammet ovenfor, går toppnålene inn i brødbrettet for å drive Nano på VIN (positiv) og GND (negativ). VIN -pinnen kan håndtere 7 til 12 volt. Hvis du planlegger å drive Arduino på en annen måte enn et 9V -batteri, bruker du en annen forsyningspinne.

Trinn 8: Endre Nano om nødvendig

Endre Nano om nødvendig
Endre Nano om nødvendig

Siden prosjektboksen min var ganske grunne, måtte jeg fjerne ICSP -toppnålene for å passe. Disse pinnene er et sekundært grensesnitt med din Arduino. Hvis du fjerner dem, vil det ikke skade Nano, ettersom du alltid kan laste inn skript via USB -porten.

Merk: Hvis Nano -en din måtte komme til å trenge hodestifter som skal loddes på, må du bare utelate disse pinnene når du monterer Arduino.

Trinn 9: Koble til innsiden

Image
Image
Koble til innsiden
Koble til innsiden
Koble til innsiden
Koble til innsiden
  • Fest kabelforskruningsporten til prosjektboksen i hullet du boret for den. Hvis du er forvirret om hvordan du bruker en kabelgjennomføring, viser denne videoen jeg fant på YouTube at en ble satt sammen. (spol frem til 0:57.) Din kan ha en gummiskive. Dette går mellom prosjektboksen og den ytre mutteren på kabelgjennomføringen.
  • Saml de løse endene på LED -ledningene. Ta deg tid til å klippe dem til like lange strimler og tinn endene. Før endene gjennom hetten på kabelgjennomføringen og bruk et stykke varmekrymping for å sette endene sammen, og la det være nok lengde til å nå brødbrettet på innsiden av esken.
  • Før trådbunten gjennom kabelgjennomføringsporten inn i prosjektboksen og vri pakningslokket for å låse ledningene på plass, helst rundt varmekrympingen du pleide å sette dem sammen.
  • Skill jordledningene fra de positive ledningene (husk hvilke du valgte tidligere). Lodd sammen alle jordledningene til ett felles underlag. Fest en kort ledning fra den gjengen og avslutt den med 1 hannhodet. Bruk varmekrymping for å beskytte dine loddefester.
  • Lodde hannoverskrifter på endene av hver positiv ledning. Igjen, bruk varmekrymping.
  • Sett inn de positive endehodene i brødbrettet for å koble til PWM -pinnene på Arduino.
  • Sett den felles grunnen inn i brødbrettet slik at den passerer gjennom en strømbegrensende motstand og deretter til GND på Arduino.
  • Sett i batteriet og sett bryteren gjennom hullet i esken du boret tidligere. Monter gummiskiven mellom prosjektboksen og skruehetten. Koble strømledningene til brødbrettet.
  • Fest eller skru lokket på esken. Du er ferdig!

Merk: Legg merke til skjemaene og i utviklingsstadiene jeg brukte en strømbegrensende motstand per LED. Vanligvis bør hver LED få sin egen motstand, siden mer enn én LED lyser samtidig. Koden tillater ikke at mer enn én LED tennes om gangen, derfor er det fint å bruke bare en motstand for å beskytte Arduino. Dette sparer også plass på det lille brødbrettet eller tid lodder hver LED med en in-line motstand. Når det er sagt … ADVARSEL !!! Hvis du planlegger å endre koden slik at mer enn én LED lyser om gangen, trenger du separate motstander for hver LED.

Trinn 10: Bruk den

Bruk det
Bruk det

Bruk borrelåsstropper eller klatter med varmt lim for å feste lysdiodene på planter, gjerder, rosa flamingoer eller noe annet i hagen din. Bruk dem inne ved å stikke dem inn i vinreoler, bak gardiner eller til og med henge ledningene fra taket for en 3D -flytende effekt i mørket! Disse ville være et flott preg for fester, bryllup, film og fotografering.

Trinn 11: Gå videre …

Som nevnt tidligere, er dette en tidlig versjon av dette prosjektet, men det er fullt av så mye potensial! Kjør flere lysdioder ved å koble til et skiftregister (Se denne instruksjonen av JColvin91 for å lære hvordan.) Legg til en lyssensor, solcellelader og tidtaker for en "set it and forget it" -funksjon! Rot med koden for å legge til din egen bluss på feilene. Del hva du lager og nyt !!

OPPDATERING: I de siste to ukene siden denne instruksjonsboken ble publisert, har mange bidragsytere foreslått strålende forbedringer på kode, maskinvare og utførelse av dette prosjektet. Jeg anbefaler på det sterkeste at hvis du planlegger å bygge dette, leser du gjennom kommentarene og svarene for ideer om hvordan du lager disse lynfeilene på måter jeg ikke hadde planlagt. Det er i ånden med åpen kildekode at jeg ønsker alle ideer som hjelper utvikle dette prosjektet velkommen til mer enn jeg trodde var mulig … og jeg takker alle som fikk det til.

Gå. Gjøre!!!

Anbefalt: