Satura rādītājs:

Zvaigžņotas debesis ar kaklasaiti: 9 soļi (ar attēliem)
Zvaigžņotas debesis ar kaklasaiti: 9 soļi (ar attēliem)

Video: Zvaigžņotas debesis ar kaklasaiti: 9 soļi (ar attēliem)

Video: Zvaigžņotas debesis ar kaklasaiti: 9 soļi (ar attēliem)
Video: ПРИРОДА КЫРГЫЗСТАНА: ущелье Кашка-Суу. БОЛЬШОЙ ВЫПУСК #Кыргызстан 2024, Novembris
Anonim
Image
Image
Zvaigžņotas debesis ar kaklasaiti
Zvaigžņotas debesis ar kaklasaiti
Zvaigžņotā debess Led kaklasaite
Zvaigžņotā debess Led kaklasaite

Pirms kāda laika dolāru veikalā es atradu bērnu rotaļlietu ar šķiedru optiku un sāku domāt, ko ar to darīt.

Viena no manām trakajām idejām bija kaklasaites veidošana ar zvaigžņotu debesu efektu.

Man joprojām bija daži arduino pro mini, adafruit dēļi un baterijas, kas, iespējams, atbilstu šim projektam.

Tiklīdz manas pilsētas lombardā atradu jauku plašu kaklasaiti un atradu kastīti, kas varētu būt piemērota aparatūrai, es nolēmu to meklēt un mēģināt to uzbūvēt.

Šī pamācība parāda, kā es to izdarīju.

Tas darbojas ar arduino pro mini, adafruit powerboost 500 lādētāju, emmerich icr 18650nh-sp un 5 baltām gaismas diodēm. Kods padara gaismas diodes spilgtuma maiņu nejaušu. (Video pirmās 40 sekundes ir 3x ātrākas)

1. darbība: shēmas un aparatūra

Shēmas un aparatūra
Shēmas un aparatūra
Shēmas un aparatūra
Shēmas un aparatūra

Es izmantoju šādu aparatūru:

- PCB ar ledus baltām gaismas diodēm un 220 omu rezistoriem.

-Arduino pro mini (es izmantoju knockoff)

-Adafruit Powerboost 500 lādētājs

-Emmerich Li-ion accu ICR-18650NH-SP

- optiskās šķiedras (dažādos izmēros)

2. darbība. Padariet PCB mitināšanas gaismas diodes

Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana
Gaismas diožu izvietošana

Es nogriezu PCB sloksni, lai turētu gaismas diodes, un izmantoju LED tapas, lai to pielodētu pie galvenās PCB.

Savienoja visus katodus (-) ar GND un izmantoja pusi no tapām, lai to pielodētu, pielīmējot pie galvenās PCB.

Savienoja visus anodus (+) ar rezistoriem un ar kabeļiem pie arduino.

Katrai gaismas diodei jābūt savienotai ar vienu no šādiem PWM portiem: 3, 5, 6, 9, 10, 11

Dumjš es pieļāvu daudz kļūdu ar šo projektu un aizmirsu pārbaudīt pareizos PWM portus, tāpēc dažus vēlāk nācās atrisināt. Pārbaudīts ar augstu/zemu, tāpēc es to pamanīju tikai vēlāk.

Es sāku ar 7 gaismas diodēm, bet bija tikai 6 PWM porti, un viens no tālākpārdotajiem gaismas diodēm nomira. Es tikko paturēju 5 darba gaismas diodes un neizmantoju sesto.

3. darbība: kastes izgatavošana

Kastes izgatavošana
Kastes izgatavošana
Kastes izgatavošana
Kastes izgatavošana
Kastes izgatavošana
Kastes izgatavošana
Kastes izgatavošana
Kastes izgatavošana

Es izmantoju Bosch GRO (piemēram, Dremel) un urbi, lai izgrieztu akumulatora formu, pogu, mikro-USB portu, Arduino galvenes un optiskās šķiedras. (izmantojiet putekļu masku!)

Līmēja akumulatoru pie korpusa ar 2 joslām.

Adafruit plates un PCB montāžai izmantoja skrūves.

Berze no atvēršanas un aizvēršanas sabojāja dažus vadus. Man vajadzēja tos atkausēt un izmantot līmi, lai tas neatkārtotos.

4. solis: kaklasaites sagatavošana

Kaklasaites sagatavošana
Kaklasaites sagatavošana
Kaklasaites sagatavošana
Kaklasaites sagatavošana
Kaklasaites sagatavošana
Kaklasaites sagatavošana

Noņēma saiti no kaklasaites apakšējās daļas, lai tā atbilstu gumijas loksnei.

Lai paslēptu aparatūru un joprojām varētu tai piekļūt, ja nepieciešams, es nolēmu izmantot rāvējslēdzēju.

Man nav labi ar šujmašīnu, tāpēc mana mīļā mamma kaklasaites aizmugurē uzlika rāvējslēdzēju.

Kad tas bija izdarīts, es līmēju gumijas loksni kaklasaitē. Es baidījos izmantot pārāk daudz līmes, kas piesātinātu audumu un būtu redzama no priekšpuses, tāpēc es centos to izlīdzināt un neizmantot pārāk daudz. Kopumā tas izskatās labi, bet dažās vietās es pamanīju pārāk daudz vai pārāk maz līmes, jo tā izplūda caur audumu vai ne pārāk labi pielīmēja. Par laimi, spilgtā gaismā tas ir tik tikko redzams no tuvuma.

Kastīte un kaklasaite tagad ir pabeigta. Laiks pielīmēt šķiedru optiku!

5. solis: šķiedru šķiedru līmēšana

Šķiedru optikas līmēšana
Šķiedru optikas līmēšana
Šķiedru optikas līmēšana
Šķiedru optikas līmēšana
Šķiedru optikas līmēšana
Šķiedru optikas līmēšana
Šķiedru optikas līmēšana
Šķiedru optikas līmēšana

Rotaļlietai bija viens liels saišķis optisko šķiedru vadu, kas viegli sadalījās. Sākumā es mēģināju tos pielīmēt pa vienam, bet drīz pamanīju, ka labāk būtu izveidot mazus saišķus un pielīmēt tos uzreiz pie gaismas diodes. Tas atvieglos tā noturību, līdz līme ir sausa. Izjauca pirmo LED, kas to saprata.

Noteikti izmantojiet caurspīdīgu līmi! Tas, ko izmantoju, žāvēja ļoti lēni, un ātri žūstošā līme, ko izmēģināju pirmajā gaismas diodē, kļuva balta, padarot dažas pirmās gaismas diodes šķiedras mazāk spilgtas.

Es līmēju mazas melnas gumijas loksnes, lai novērstu gaismas noplūdi uz augšu un atdalītu gaismas diodes.

Viena no loksnēm neļāva korpusu aizvērt, tāpēc es pievienoju gumiju, lai vāks būtu aizvērts.

6. solis: šķiedru šķiedru ievietošana caur kaklasaiti

Šķiedru optikas izlaišana caur kaklasaiti
Šķiedru optikas izlaišana caur kaklasaiti
Šķiedru optikas izlaišana caur kaklasaiti
Šķiedru optikas izlaišana caur kaklasaiti
Šķiedru optikas izlaišana caur kaklasaiti
Šķiedru optikas izlaišana caur kaklasaiti

Sākot no apakšas, es ar adatu saspiedu caurumus un izvadīju šķiedras pa vienai. Katras gaismas diodes šķiedras nejauši izplatās pa kaklasaiti.

Es pielīmēju aizmugurē melnu sloksni, kurai vajadzēja iet līdz pat kaklasaites mazākajai daļai, lai saglabātu kastes svaru, bet pēc tam, kad es izliku visus vadus un jutu vadu spriegojumu, es nolēmu pielīmēt viss līdz kaklasaitei bija labāka ideja un nogrieza sloksni.

Tā kā rotaļlietas optiskās šķiedras vadi bija tik īsi, bija grūti tos piestiprināt pie kaklasaites. Es biju ierobežots kastes pozicionēšanā un man bija grūti visu padarīt tik līdzenu, kā es gribēju.

7. solis: šķiedru šķiedru līmēšana pie kaklasaites

Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites
Šķiedru šķiedru līmēšana pie kaklasaites

Es pielīmēju visus optiskās šķiedras vadus pie gumijas loksnes, lai novērstu vadu izvilkšanu no gumijas loksnes un kaklasaiti padarītu līdzenu.

Lai pārliecinātos, ka, pieliekot spiedienu, es nelīmēju skavu pie kaklasaites, es starp tām ievietoju papīru. Tas neizskatās tik lieliski, bet darbojas labi. Un jūs to neredzat, kad tas ir aizvērts.

Pēc līmes žāvēšanas es nogriezu vadus priekšpusē un nedaudz nogriezu gumijas loksni tieši virs augstākās stieples, jo kaklasaite bija mazliet par garu.

Fotogrāfijas ar baltu kreklu tiek izgatavotas, pirms es nogriezu pēdējo gumijas gabalu.

8. darbība: kods

Zem koda, ko uzrakstīju kaklasaitei.

Visām gaismas diodēm ir noteikts “vidējais” (faktiski nav vidējais, bet vidējais spilgtums).

Tiklīdz tas sasniegs šo vidējo, tas nolems ar iespēju 3/4 pāriet uz zemāku spilgtumu. Tas arī nejauši nosaka jaunu minimālo spilgtumu, maksimālo spilgtumu, gaidīšanas laiku minimālajam un maksimālajam spilgtumam un ātrumu, kas palielinās vai samazinās katru kārtu (1-255) no 5 iepriekš iestatītajām vērtībām. Tad tas veiks ciklu, līdz atkal sasniegs vidējo. Tikai 2 gaismas diodes var būt vienā ciklā vienlaikus.

Katru stāvokli attēlo vesela skaitļa vērtība (1–7), kas nosaka, vai tas ir vidējais, zemais, vidējais gaidīšanas laiks, atjauninājums utt.

Lai iegūtu informāciju par koda augšupielādi arduino, lūdzu, skatiet vietni www.arduino.cc

/ * Zvaigžņotā debess kaklasaite * * Šis ir skripts, lai nejauši izgaismotu 5 gaismas diodes no vidējā uz zemāku * vai lielāku spilgtumu ar nejaušiem zemākiem, augstākiem un laika iestatījumiem *, lai tās izskatītos kā zvaigžņotas debesis, ja tās tiek izmantotas kopā ar šķiedru optiku. * Šajā gadījumā tie tiks īstenoti neizšķirti. * * Iespēja uz augšu/uz leju = 1/4 uz augšu, 3/4 uz leju, vienlaikus maksimāli 2 * pieaugot līdz maksimumam. * * Vidējais rādītājs paliek nemainīgs. * Minimālās, maksimālās un laika iespējas mainās nejauši * no 5 iespējām katru reizi, kad gaismas diode atkal sasniedz vidējo. * * Izveidoja Billy Jaspers, 2019. gada maijs. *

/ Deklarēt tapas

int LED01 = 3; int LED02 = 5; int LED03 = 6; int LED04 = 9; int LED05 = 11;

// Laika mainīgie

neparakstīts ilgs strāvas laiks; neparakstīts ilgs gaidīšanas laiks [5]; neparakstīts ilgi lastRound;

// LED mainīgie

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimālais spilgtums int brightAvg [5] = {200, 200, 200, 200, 200}; // Vidējais spilgtums int brightMax [5] = {240, 240, 240, 240, 240}; // Maksimālais spilgtums int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Gaidīšanas laiks int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Gaidīšanas laiks int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Gaidīšanas laiks ar pieaugumu [5] = {2, 5, 4, 5, 2}; // Spilgtuma pieaugums int currentBright [5] = {200, 230, 210, 210, 235}; // Pašreizējais spilgtums

// LED mainīgo iespējas

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimālās spilgtuma iespējas int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maksimālās spilgtuma iespējas int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Gaidīšanas laiks pie zema spilgtuma iespējām int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Gaidīšanas laiks pie lielām spilgtuma iespējām int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Gaidīšanas laiks pie vidējām spilgtuma iespējām int inkrementāPos [5] = {2, 4, 5, 3, 1}; // spilgtuma iespēju palielināšana

// Mainīgie

bool startup = taisnība; // Vai sākuma iestatījumi ir jāsāk?

// Virziena mainīgie

/* 0 = Gaidīšana vidēji 1 = pāreja uz vidējo līdz zemajai 2 = gaidīšana zema 3 = pāreja uz zemu līdz vidējai 4 = pāreja uz vid. Līdz maks. 5 = gaidīšana pie maksimuma 6 = pāreja uz augstu līdz vid. 7 = mainīgo mainīšana*/ int statusLED [5] = {0, 0, 0, 0, 0}; int summaHighLED = 0; int refreshRate = 50; bool statusWaiting [5] = {false, false, false, false, false}; // Vai Led gaida?

// Nejaušie mainīgie

garš izlases numurs; // Ilgi, lai saglabātu nejaušu skaitli garš randomNumberTwo; // Ilgi jāglabā otrais izlases numurs

// skaitītāji

int i = 0; // Galvenās cilpas skaitītājs

void setup () {

Serial.begin (115200); // Sākt sēriju randomSeed (analogRead (A0)); // Iestatīt randomseed

// Deklarēt rezultātus

pinMode (LED01, OUTPUT); pinMode (LED02, OUTPUT); pinMode (LED03, OUTPUT); pinMode (LED04, OUTPUT); pinMode (LED05, OUTPUT); }

// Datu ierakstīšana gaismas diodēs

void writeToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// Galvenā cilpa

void loop () {if (startup) {// Startēšanas iestatījumi lastRound = millis (); // Iestatīt lastRound sāknēšanas rakstīšanaiToLED (); // Ierakstiet sākuma datus uz LED startup = false; // Izslēgt startēšanu} currentTime = millis (); // Iestatīt pašreizējo laiku

if (currentTime - lastRound> = refreshRate) {

par (i = 0; i <5; i ++) {if (statusLED == 7) {// -7- Led randomNumber = random (5) atjaunināšana; brightMin = brightMinPos [izlases numurs]; // Iestatīt izlases vērtību minimālajam spilgtumam randomNumber = random (5); brightMax = brightMaxPos [izlases numurs]; // Iestatiet izlases vērtību maksimālajam spilgtumam randomNumber = random (5); timeWaitLow = timeLowPos [izlases numurs]; // Iestatīt nejaušu vērtību zemam gaidīšanas laikam randomNumber = random (5); timeWaitMax = timeHighPos [izlases numurs]; // Iestatīt nejaušu vērtību augstam gaidīšanas laikam randomNumber = random (5); timeWaitAvg = laiksAvgPos [izlases numurs]; // Iestatīt izlases vērtību vidējam gaidīšanas laikam randomNumber = random (5); pieaugums = pieaugumsPos [izlases numurs]; // Iestatīt nejaušu vērtību pieauguma vērtībai randomNumber = random (2); // Iestatīt nejaušu vērtību virzienam randomNumberTwo = random (2); // Iestatīt nejaušu virziena vērtību, ja (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Ja zemākajā punktā: dodieties uz Gaidīšanas vid.} Else {currentBright = currentBright +pieaugums ; // Cits: lielāks spilgtums}} cits, ja (statusLED == 2) {// -2- Gaida zemu, ja (! StatusWaiting ) {// Ja negaida: gaidīšanas laiks = millis (); // Iestatīt gaidīšanas laika statusuWaiting = true; // Sāc gaidīt} else if (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Ja gaidīšana UN timeWaitAvg ir pagājis: statusWaiting = false; // Pārtraukt gaidīšanas statusuLED = 3; // Iestatīt statusLed uz Gaida atjauninājumu}} cits, ja (statusLED == 1) {// -1- Vidējā vērtība tiek pazemināta, ja (currentBright <= brightMin ) {statusLED = 2; // Ja zemākajā punktā: pārejiet uz gaidīšanas laiku} else {currentBright = currentBright -augums ; // Cits: Samaziniet spilgtumu}} cits, ja (statusLED == 6) {// -6- Maksimālā vērtība palielināsies līdz vid., Ja (currentBright = timeWaitMax ) {// Ja gaidīšana UN timeWaitAvg ir pagājis: statusWaiting = false; // Beigt gaidīšanas statusuLED = 6; // Iestatīt statusLed uz Gaida atjauninājumu}} cits, ja (statusLED == 4) {// -4- Vidējā vērtība tiks mainīta uz maks., Ja (currentBright > = brightMax ) {statusLED = 5; // Ja zemākajā punktā: pārejiet uz gaidīšanas brīdi} else {currentBright = currentBright +pieaugums ; // Cits: lielāks spilgtums}} cits, ja (statusLED == 0) {// -0- Gaida vidēji, ja (! StatusWaiting ) {// Ja negaida: gaidīšanas laiks = milis (); // Iestatīt gaidīšanas laika statusuWaiting = true; // Sāc gaidīt} else if (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Ja gaidīšana UN timeWaitAvg ir pagājis: statusWaiting = false; // Beigt gaidīšanas statusuLED = 7; // Iestatīt statusLed uz Gaida atjauninājumu}}} i = 0; lastRound = milis (); // Iestatiet, kad pēdējā kārta ir pabeigta. writeToLED (); // Ierakstiet visus datus gaismas diodēs}}

9. solis: galaprodukts

Image
Image
Galaprodukts
Galaprodukts
Galaprodukts
Galaprodukts

Es domāju, ka tas izdevās labi. Kaklasaite nav pārāk bieza, stīva, gara vai smaga, un zvaigznes efekts izskatās pārsteidzošs.

Ieteicams: