Talaan ng mga Nilalaman:

Starry Sky Led Tie: 9 Mga Hakbang (na may Mga Larawan)
Starry Sky Led Tie: 9 Mga Hakbang (na may Mga Larawan)

Video: Starry Sky Led Tie: 9 Mga Hakbang (na may Mga Larawan)

Video: Starry Sky Led Tie: 9 Mga Hakbang (na may Mga Larawan)
Video: 3-часовой марафон паранормальных и необъяснимых историй - 3 2024, Nobyembre
Anonim
Image
Image
Starry Sky Led Tie
Starry Sky Led Tie
Starry Sky Led Tie
Starry Sky Led Tie

Ilang sandali ang nakakaraan ay natagpuan ko ang isang laruan ng mga bata na may fiberoptic sa isang dolyar na tindahan, at nagsimulang mag-isip tungkol sa kung ano ang magagawa ko rito.

Ang isa sa mga nakatutuwang ideya na mayroon ako, ay ang paggawa ng isang kurbatang may epekto ng isang mabituing kalangitan.

Mayroon pa akong ilang mga arduino pro mini, adafruit board at baterya na nakalalagay na marahil ay magkasya sa proyektong ito.

Kaya't sa sandaling natagpuan ko ang isang magandang malawak na kurbatang sa isang pawnshop sa aking bayan at nakakita ng isang kahon na maaaring magkasya sa hardware, nagpasya akong pumunta para dito at subukan at itayo ito.

Ipinapakita sa iyo ng itinuturo na ito kung paano ko ito nagawa.

Ito ay tumatakbo sa isang arduino pro mini, adafruit powerboost 500 charger, emmerich icr 18650nh-sp at 5 white LED's. Ginagawa ng code ang random na pagbabago ng pagbabago ng LED. (Ang unang 40 segundo ng video ay 3x bilis)

Hakbang 1: Mga Skematika at Hardware

Mga Skematika at Hardware
Mga Skematika at Hardware
Mga Skematika at Hardware
Mga Skematika at Hardware

Ginagamit ko ang sumusunod na hardware:

- PCB na may Ice white LEDs at 220 Ohm resistors.

- Arduino pro mini (gumamit ako ng knockoff)

- Adafruit Powerboost 500 charger

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

- Mga hibla ng optic (sa iba't ibang laki)

Hakbang 2: Paggawa ng PCB Pag-host sa mga LED

Paggawa ng PCB Pag-host sa LED
Paggawa ng PCB Pag-host sa LED
Paggawa ng PCB Hosting sa LED's
Paggawa ng PCB Hosting sa LED's
Paggawa ng PCB Pag-host sa LED
Paggawa ng PCB Pag-host sa LED

Pinutol ko ang isang strip off isang PCB upang hawakan ang mga LED at ginamit ang mga LED pin upang maghinang ito sa pangunahing PCB.

Nakakonekta ang lahat ng mga cathode (-) sa GND, at ginamit ang kalahati ng mga pin upang maghinang na natigil ito sa pangunahing PCB.

Nakakonekta ang lahat ng mga anode (+) sa mga resistor, at may mga kable sa arduino.

Ang mga LED ay dapat na konektado sa isa sa mga sumusunod na port ng PWM: 3, 5, 6, 9, 10, 11

Silly me nagawa ng maraming mga pagkakamali sa proyektong ito at nakalimutan upang suriin ang tamang mga port ng PWM, kaya't kailangan kong lumutas ng ilang paglaon. Nasubukan sa Mataas / Mababang kaya napansin ko lang ito mamaya.

Nagsimula ako sa 7 LED's, ngunit mayroon lamang 6 na port ng PWM at ang isa sa mga resolusyon na LED ay namatay. Iningatan ko lang ang 5 gumaganang LED's at hindi gumagamit ng ika-6.

Hakbang 3: Paggawa ng Kahon

Paggawa ng Kahon
Paggawa ng Kahon
Paggawa ng Kahon
Paggawa ng Kahon
Paggawa ng Kahon
Paggawa ng Kahon
Paggawa ng Kahon
Paggawa ng Kahon

Gumamit ako ng isang Bosch GRO (tulad ng isang Dremel) at isang drill upang gupitin ang hugis ng baterya, ang pindutan, ang micro-usb port, ang mga header mula sa Arduino at mga optic fibers. (gumamit ng dust mask!)

Nakadikit ang baterya sa kaso ng 2 banda.

Ginamit na mga tornilyo upang mai-mount ang Adafruit board at ang PCB.

Ang alitan mula sa pagbubukas at pagsara ay nasira ang ilang mga wire. Kailangan kong resolder ang mga ito at gumamit ng pandikit upang maiwasan itong mangyari muli.

Hakbang 4: Paghahanda ng Tie

Paghahanda ng Tie
Paghahanda ng Tie
Paghahanda ng Tie
Paghahanda ng Tie
Paghahanda ng Tie
Paghahanda ng Tie

Inalis ang pagtahi mula sa ilalim na bahagi ng kurbatang upang magkasya sa goma sheet.

Upang maitago ang hardware at ma-access pa rin ito kung kinakailangan nagpasya akong gumamit ng isang siper.

Hindi ako mahusay sa isang makina ng pananahi, kaya't ang aking matamis na ina ay naglagay ng isang siper sa likod ng kurbatang.

Matapos iyon ay tapos na, idinikit ko ang goma sa kurbatang. Natatakot akong gumamit ng sobrang pandikit na magbabad sa tela at makikita mula sa harap, kaya't sinubukan kong pantayin ito at hindi gaanong gumamit. Sa pangkalahatan maganda ang hitsura nito, ngunit sa ilang mga lugar napansin ko ang sobra o masyadong maliit na pandikit, sanhi na dumaan ito sa tela o hindi naidikit nang mabuti ang tela. Sa kabutihang palad ito ay halos nakikita lamang mula sa malayo na distansya sa maliwanag na ilaw.

Tapos na ang kahon at kurbatang. Oras upang kola ang fiberoptics!

Hakbang 5: Pagdidikit sa Fiberoptics

Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics
Pagdidikit ng Fiberoptics

Ang laruan ay may isang malaking bundle fiber optic wires na madaling masira. Sinubukan kong idikit ang mga ito isa-isa sa una, ngunit sa lalong madaling panahon napansin na mas mahusay na gumawa ng maliliit na mga bundle at idikit ang mga iyon sa LED nang sabay-sabay. Gagawin nitong mas madali upang mapanatili itong matatag hanggang sa matuyo ang pandikit. Ginulo ang unang LED na iniisip ito.

Siguraduhing gumamit ng isang transparent na pandikit! Ang isa na ginamit ko ay pinatuyong napakabagal at ang mabilis na pagpapatayo ng pandikit na sinubukan ko sa unang LED na naging puti, na ginagawang ilang mga hibla mula sa unang LED na hindi gaanong maliwanag.

Nagdikit ako ng maliliit na itim na sheet ng goma upang maiwasan ang pagdulas ng ilaw sa itaas at upang paghiwalayin ang mga LED.

Pinigilan ng isa sa mga sheet ang kaso mula sa pagsara kaya nagdagdag ako ng isang goma upang mapanatiling nakasara ang takip.

Hakbang 6: Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie

Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie
Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie
Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie
Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie
Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie
Paglalagay ng Fiberoptics Sa Pamamagitan ng Tie

Simula sa ilalim, kinurot ko ang mga butas gamit ang isang karayom at isa-isang inilalagay ang mga hibla. Ang mga hibla ng bawat LED ay kumalat nang random sa kurbatang.

Inilagay ko ang isang itim na strip sa likuran na dapat na umakyat hanggang sa mas maliit na bahagi ng kurbatang upang mapanatili ang bigat ng kahon, ngunit pagkatapos kong mailagay ang lahat ng mga wire at naramdaman ang pag-igting ng mga wire ay nagpasya akong nakadikit lahat ng bagay sa kurbatang ay isang mas mahusay na ideya at putulin ang strip off.

Dahil ang mga wire ng fiber optic mula sa laruan ay masyadong maikli, mahirap na akma ang mga ito sa buong kurbatang. Limitado ako sa pagpoposisyon ng kahon at nahihirapan akong gawin ang lahat bilang flat hangga't gusto ko.

Hakbang 7: Pagdidikit ng Fiberoptics sa Tie

Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie
Pagdidikit ng Fiberoptics sa Tie

Idinikit ko ang lahat ng mga wire ng fiber optic sa goma upang maiwasan ang pagkuha ng mga wire mula sa goma at upang patagin ang kurbatang.

Upang matiyak na hindi ko kola ang clamp sa kurbatang kapag nilalagay ang presyon dito naglalagay ako ng ilang papel sa pagitan. Hindi ito ganoon kahusay ngunit gumagana nang maayos. At hindi mo ito nakikita kapag sarado ito.

Matapos matuyo ang pandikit pinutol ko ang mga wire sa harap at pinutol ng kaunti ang sheet ng goma sa itaas lamang ng pinakamataas na kawad, sanhi ng medyo mahaba ang kurbatang.

Ang mga larawan na may puting shirt ay ginawa bago ko putulin ang huling piraso ng goma.

Hakbang 8: Ang Code

Sa ibaba ng code na isinulat ko para sa kurbatang.

Ang lahat ng mga LED ay may isang itinakdang "average" (hindi talaga isang average ngunit isang gitnang ningning).

Sa sandaling maabot ang average na iyon, magpapasya ito na may pagkakataong 3/4 upang pumunta sa isang mas mababang ningning. Ito rin ay random na nagtatakda ng isang bagong minimum na ningning, maximum na ningning, oras ng paghihintay para sa minimum at maximum na ningning at ang bilis ng pagtaas o pagbawas sa bawat pag-ikot (1-255) mula sa 5 mga preset na halaga. Pagkatapos ito ay gagawa ng isang ikot hanggang sa maabot muli ang average. 2 LED's lamang ang maaaring nasa isang mataas na cycle nang sabay.

Ang bawat estado ay kinakatawan ng isang halaga ng integer (1-7) na tinutukoy kung ito ay magiging avg-low, low-avg, naghihintay ng mababa, nag-a-update, atbp.

Para sa impormasyon tungkol sa pag-upload ng code sa arduino, mangyaring tingnan ang www.arduino.cc

/ * Starry Sky Tie * * Ito ay isang script upang sapalarang mawala ang 5 LEDs mula sa isang average hanggang sa isang mas mababang * o mas mataas na ningning na may mga random na setting ng mas mababa, mas mataas at tiyempo * upang magmukhang isang bituin na kalangitan kapag ginamit sa fiberoptics. * Sa kasong ito ipapatupad ito sa isang kurbatang. * * Up / down na pagkakataon = 1/4 pataas, 3/4 pababa, na may maximum na 2 * aakyat sa max sa parehong oras. * * Ang average ay mananatiling pareho. * Minimum, maximum at mga pagpipilian sa tiyempo ay nagbago nang random * mula sa 5 mga pagpipilian sa tuwing umabot muli ang LED sa average. * * Nilikha ni Billy Jaspers, Mayo 2019. *

/ Ipahayag ang mga pin

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

// Mga variable ng oras

unsigned mahabang kasalukuyangTime; unsigned mahabang waitingTime [5]; unsigned long lastRound;

// LED Variable

int brightMin [5] = {10, 10, 10, 10, 10}; // Minimum brightness int brightAvg [5] = {200, 200, 200, 200, 200}; // Average brightness int brightMax [5] = {240, 240, 240, 240, 240}; // Maximum brightness int timeWaitLow [5] = {1000, 1000, 1000, 1000, 1000}; // Waiting time int timeWaitAvg [5] = {5000, 5000, 5000, 5000, 5000}; // Waiting time int timeWaitMax [5] = {4000, 3000, 3000, 3000, 3000}; // Waiting time int increment [5] = {2, 5, 4, 5, 2}; // Encrement in brightness int currentBright [5] = {200, 230, 210, 210, 235}; // Kasalukuyang ningning

// Mga Posibleng LED na Posibilidad

int brightMinPos [5] = {5, 20, 40, 5, 20}; // Minimum brightness posibilidad int brightMaxPos [5] = {240, 245, 230, 225, 245}; // Maximum brightness posibilidad int timeLowPos [5] = {3000, 5000, 4000, 2000, 1000}; // Waiting time on low brightness posibilidad int timeHighPos [5] = {3000, 1000, 500, 2000, 4000}; // Waiting time on high brightness posibilidad int timeAvgPos [5] = {3000, 5000, 4000, 7000, 8000}; // Naghihintay ng oras sa average na mga posibilidad ng ningning int incrementPos [5] = {2, 4, 5, 3, 1}; // pagtaas sa mga posibilidad ng ningning

// Mga variable

startup ng bool = totoo; // Kailangan bang simulan ang mga setting ng pagsisimula?

// Mga variable ng direksyon

/ * 0 = Naghihintay sa Karaniwan 1 = pagpunta sa Mababang 2 = naghihintay Mababang 3 = pagpunta Mababa sa Avg 4 = pagpunta sa Max 5 = naghihintay sa Max 6 = pagpunta Mataas sa Avg 7 = Pag-update ng mga variable * / int statusLED [5] = {0, 0, 0, 0, 0}; int halagaHighLED = 0; int refreshRate = 50; status ng boolWaiting [5] = {false, false, false, false, false}; // Naghihintay na ba ang Led?

// Random variable

mahabang randomNumber; // Long to store random number long randomNumberTwo; // Mahaba upang maiimbak ang pangalawang random na numero

// counter

int i = 0; // Counter para sa pangunahing loop

walang bisa ang pag-setup () {

Serial.begin (115200); // Start serial randomSeed (analogRead (A0)); // Itakda ang randomseed

// Ipahayag ang mga output

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

// Sumulat ng data sa mga LED

walang bisa ang magsulatToLED () {analogWrite (LED01, currentBright [0]); analogWrite (LED02, currentBright [1]); analogWrite (LED03, currentBright [2]); analogWrite (LED04, currentBright [3]); analogWrite (LED05, currentBright [4]); }

// Pangunahing loop

void loop () {if (startup) {// Startup setting lastRound = millis (); // Itakda ang hulingRound para sa boot writeToLED (); // Isulat ang data ng pagsisimula sa LED startup = false; // Patayin ang startup} kasalukuyangTime = millis (); // Itakda ang kasalukuyang oras

kung (currentTime - lastRound> = refreshRate) {

para sa (i = 0; i <5; i ++) {kung (statusLED == 7) {// -7- Pag-update sa Led randomNumber = random (5); brightMin = brightMinPos [randomNumber]; // Set random value for minimum brightness randomNumber = random (5); brightMax = brightMaxPos [randomNumber]; // Itakda ang random na halaga para sa maximum na liwanag randomNumber = random (5); timeWaitLow = timeLowPos [randomNumber]; // Itakda ang random na halaga para sa mababang oras ng paghihintay randomNumber = random (5); timeWaitMax = timeHighPos [randomNumber]; // Set random value for high waiting time randomNumber = random (5); timeWaitAvg = timeAvgPos [randomNumber]; // Itakda ang random na halaga para sa average na oras ng paghihintay na randomNumber = random (5); pagtaas = incrementPos [randomNumber]; // Itakda ang random na halaga para sa halaga ng pagtaas na randomNumber = random (2); // Itakda ang random na halaga para sa direksyon na randomNumberTwo = random (2); // Itakda ang random na halaga para sa direksyon kung (randomNumber == 1 && randomNumberTwo == 0 && amountHighLED = brightAvg ) {statusLED = 0; // Kung sa pinakamababang punto: Pumunta sa Waiting Avg} iba pa {currentBright = currentBright + increment ; // Else: Higher Brightness}} iba pa kung (statusLED == 2) {// -2- Waiting Low kung (! StatusWaiting ) {// Kung hindi naghihintay: waitingTime = millis (); // Itakda ang katayuan sa paghihintay ng oras Naghihintay = totoo; // Start waiting} iba kung (statusWaiting && currentTime-waitingTime > = timeWaitLow ) {// Kung naghihintay AT timeWaitAvg ay lumipas: statusWaiting = false; // Stop waiting statusLED = 3; // Itakda ang statusLed sa Naghihintay para sa pag-update}} kung iba pa (statusLED == 1) {// -1- Pupunta sa Avg sa Mababang kung (currentBright <= brightMin ) {statusLED = 2; // Kung sa pinakamababang punto: Pumunta sa Waiting Low} iba pa {currentBright = currentBright -increment ; // Else: Lower Brightness}} iba pa kung (statusLED == 6) {// -6- Going Max to Avg if (currentBright = timeWaitMax ) {// Kung naghihintay AT timeWaitAvg ay lumipas: statusWaiting = false; // Stop waiting statusLED = 6; // Itakda ang statusLed sa Naghihintay para sa pag-update}} kung iba pa (statusLED == 4) {// -4- Going Avg to Max if (currentBright > = brightMax ) {statusLED = 5; // Kung sa pinakamababang punto: Pumunta sa Waiting High} iba pa {currentBright = currentBright + increment ; // Else: Higher Brightness}} iba pa kung (statusLED == 0) {// -0- Naghihintay sa Average kung (! StatusWaiting ) {// Kung hindi naghihintay: waitingTime = millis (); // Itakda ang katayuan sa paghihintay ng oras Naghihintay = totoo; // Start waiting} iba kung (statusWaiting && currentTime-waitingTime > = timeWaitAvg ) {// Kung naghihintay AT timeWaitAvg ay lumipas: statusWaiting = false; // Stop waiting statusLED = 7; // Itakda ang statusLed sa Naghihintay para sa pag-update}}} i = 0; lastRound = millis (); // Itakda kapag natapos ang huling pag-ikot. isulatToLED (); // Isulat ang lahat ng data sa LED}}

Hakbang 9: Pangwakas na Produkto

Image
Image
Pangwakas na Produkto
Pangwakas na Produkto
Pangwakas na Produkto
Pangwakas na Produkto

Sa tingin ko ito ay umepekto nang maayos. Ang kurbatang ay hindi masyadong makapal, matigas, mahaba o mabibigat at kamangha-mangha ang epekto ng bituin.

Inirerekumendang: