Satura rādītājs:
- 1. darbība: shēmas un aparatūra
- 2. darbība. Padariet PCB mitināšanas gaismas diodes
- 3. darbība: kastes izgatavošana
- 4. solis: kaklasaites sagatavošana
- 5. solis: šķiedru šķiedru līmēšana
- 6. solis: šķiedru šķiedru ievietošana caur kaklasaiti
- 7. solis: šķiedru šķiedru līmēšana pie kaklasaites
- 8. darbība: kods
- 9. solis: galaprodukts
Video: Zvaigžņotas debesis ar kaklasaiti: 9 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:56
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
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
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
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
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
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
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
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
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:
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar RPI attēlu un attēliem: 7 soļi (ar attēliem)
Kā: Raspberry PI 4 bez galvas (VNC) instalēšana ar Rpi-imager un Pictures: Es plānoju izmantot šo Rapsberry PI daudzos jautros projektos savā emuārā. Jūtieties brīvi to pārbaudīt. Es gribēju atkal izmantot savu aveņu PI, bet manā jaunajā vietā nebija tastatūras vai peles. Pagāja laiks, kopš es izveidoju aveņu
Arduino Halloween Edition - zombiju uznirstošais ekrāns (soļi ar attēliem): 6 soļi
Arduino Helovīna izdevums - zombiju uznirstošais ekrāns (soļi ar attēliem): Vai vēlaties Helovīnā nobiedēt savus draugus un radīt kliedzošu troksni? Vai arī vienkārši gribi uztaisīt labu palaidnību? Šis zombiju uznirstošais ekrāns to var izdarīt! Šajā pamācībā es iemācīšu jums, kā viegli izveidot izlecošus zombijus, izmantojot Arduino. HC-SR0
Interaktīvās akrila nakts debesis: 6 soļi
Interaktīvās nakts akrila debesis: Lielisks nakts ainas zīmējums var uzlabot jūsu interjera dizainu neatkarīgi no tā, vai tā ir jūsu istaba vai dzīvojamā istaba. Šis projekts piedāvā iespēju izvēlēties istabu ar savām rokām. Apkopojiet savu mākslas talantu un sekojiet maniem soļiem, lai pabeigtu
Skrūve - DIY bezvadu uzlādes nakts pulkstenis (6 soļi): 6 soļi (ar attēliem)
Bolt - DIY bezvadu uzlādes nakts pulkstenis (6 soļi): Induktīvās uzlādes (pazīstamas arī kā bezvadu uzlāde vai bezvadu uzlāde) ir bezvadu enerģijas pārneses veids. Tas izmanto elektromagnētisko indukciju, lai nodrošinātu elektroenerģiju pārnēsājamām ierīcēm. Visizplatītākā lietojumprogramma ir Qi bezvadu uzlādes st
Kamera atvieglotiem laika intervāla attēliem: 22 soļi (ar attēliem)
Kamera atvieglotiem laika intervāla attēliem: es pārbaudīju vienu no citām instrukcijām par laika nobīdes filmu veidošanu. Viņš diezgan labi aptvēra filmas daļu. Viņš pastāstīja par bezmaksas programmatūru, kuru varat lejupielādēt, lai izveidotu filmas. Es sev teicu: domāju, ka redzēšu, vai varu