Sisukord:
- Samm: vajalikud materjalid
- 2. samm: keskkonna seadistamine
- 3. samm: disaini ülevaade
- Samm: kohandatud plaastrite loomine XOD põhiteegist
- Samm: kohandatud plaastrite loomine C ++ abil
- 6. samm: ehitamine
- 7. samm: testimine, 1. osa
- 8. etapp: testimine, 2. osa
- 9. samm: Lisa häguse loogika kohta
Video: XOD-toitega laetav päikeseenergia lamp: 9 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
Enamikus kodukaupade ja riistvara kauplustes on saadaval odavad päikeseenergia aia-/kõnniteede lambid. Kuid nagu ütleb vana ütlus, saate tavaliselt selle, mille eest maksate. Tavalised laadimis- ja valgustusahelad, mida nad kasutavad, on lihtsad ja odavad, kuid saadav valgustugevus on kõike muud kui muljetavaldav (ja vaevalt piisav kõigile, kes kasutavad teie kõnniteed, et näha, kuhu nad lähevad!)
See on minu katse kavandada võrguväline valgustusmoodul, mis on märkimisväärne täiustus, kuid on sellegipoolest suhteliselt odav. Andes sellele mõned "ajud". XOD.io on uus IDE, mis ühildub Arduino sisseehitatud arendusplatvormiga, kus saate koodi graafiliselt "kirjutada". Keskkond muudab teie graafilise visandi kaasaegseks C ++ -ks, mis on kompaktse koodi genereerimisel märkimisväärselt tõhus ja genereerib allika, mis ühildub täielikult Arduino IDE aktsiaga, ilma et oleks vaja täiendavaid väliseid sõltuvusi. Nii saab keeruliste ülesannete täitmiseks kasutada isegi väikseid odavaid mikrokontrollereid, millel on piiratud programmi- ja andmesalvestusressursid.
See projekt näitab, kuidas kahte koos töötavat Arduino-ühilduvat ATTiny85 mikrokontrollerit saab kasutada lambi võimsusnõuete haldamiseks. Esimene protsessor tegeleb välisest riistvarast pärinevate keskkonnaandmetega ja teine püüab päikeselt päeva jooksul võimalikult palju energiat koguda ning seejärel juhtida suure võimsusega LED-i valgustust, kui akupatarei öösel tühjeneb. Teine protsessor täidab oma ülesande häguse loogika juhtimise kompaktse rakendamise kaudu. Mõlema kiibi tarkvara töötati välja eranditult XOD -keskkonnas.
Samm: vajalikud materjalid
Arduino IDE, uusim versioon, mille laiendus ATTinyCore on installitud "Boards" haldurist
Sparkfun USBTinyISP ATTiny programmeerija, 11801 või samaväärne Sparkfuni tooteleht
Pololu reguleeritav madalpinge võimendusmuundur väljalülitussisendiga, U1V11A või samaväärne Pololu tooteleht
Suure võimsusega valge või RGB LED koos jahutusradiaatoriga, tavaline anood, Adafruit 2524 või samaväärne Adafruit tooteleht
Mikrokiip ATTiny85 8-kontaktilises DIP-pakendis, 2 Mouseri tooteleht
8 kontaktiga DIP IC pesad, 2
Mahukondensaator, 16 v 220 uF
Väljundkondensaator, 6.3v 47uF
Voolut piiravad takistid, 50 oomi 1/4 vatti
i2c tõmbetakistid, 4,7k, 2
Paneeli pingejaoturi takistid, 1/4 vatti, 100k, 470k
Voolutakistus, 10 oomi 1⁄2 vatti 1% tolerants
Möödavoolukondensaatorid, 0,1 uF keraamilised, 2
2 3,7 v 100mAh liitiumioonaku, PKCELL LP401 või samaväärne aku
Silindripistiku sisendpesa paneelile, 1
Miniklemmiplokid 3”x3” jootepadjaplaat ja õhuke tahke südamikuga traat ühenduste tegemiseks
Testimiseks on peaaegu kindlasti vaja ostsilloskoopi, multimeetrit ja pingitoiteallikat
2. samm: keskkonna seadistamine
XOD-keskkond ei toeta karbist ATTiny protsessorite seeriat, kuid kasutades paari Arduino universumi kolmanda osapoole raamatukogu, on selle AVR-seeria toe lisamine lihtne. Esimene samm on teeki „ATTinyCore” installimine Arduino IDE rippmenüüst „Tööriistad → Tahvel → Tahvlihaldur”. Veenduge, et kaasatud pildil näidatud seaded on õiged - pidage meeles, et enne mis tahes koodi üleslaadimist peate vajutama nuppu "Burn bootloader", et muuta väljalülituspinge ja kella kiiruse seadistamise kaitsmed!
Selle raamatukogu lähtekood on saadaval aadressil
Veel üks kasulik raamatukogu hoidlast on “FixedPoints”, mis on Arduino toega protsessorite jaoks fikseeritud punktmateetika kompileeritav rakendamine. ATTiny -l on piiratud SRAM -i ja programmimälu ning see aitab palju lõpliku visandisuuruse kahanemisel, kui kasutada üldiste andmete salvestamiseks 2 -baidist täisarvu, mitte ujukoma tüüpi, mis nõuab AVR -il 4 baiti. Täitmise kiirust tuleks samuti parandada, kuna ATTiny-l pole riistvara korrutamise seadet, veel vähem riistvara ujukoma!
Lähtekood on saadaval aadressil:
XOD -i graafiliste visandite loomise, teisaldamise ja juurutamise õpetus aadressil: https://github.com/Pharap/FixedPointsArduino aitab palju mõista kaasatud lähtefailide loomist.
3. samm: disaini ülevaade
Plaadil on kaks ATTiny85 protsessorit ühendatud i2c liidese kaudu ja neid kasutatakse koos, et juhtida päikesepaneeli pinget, võimendusmuundurist akusse voolavat voolu, kui paneel on valgustatud, aku pinget ja akut temperatuur.
Võimendusmuundur on riiulist moodul, mis põhineb Texas Instruments TPS6120 IC-l, mis võib võtta sisendpinge kuni 0,5 volti ja tõsta selle vahemikku 2–5 volti. Anduri tuum koosneb mitmest funktsionaalsest plokist. Peakell hakkab tööle kohe, kui võimendusmuundurile antakse päikesepaneelide sisendist toide. See käivitab visandi käivitamise ja kõigepealt tuleb kindlaks teha, kas paneel on piisavalt valgustatud, et tagada aku laadimisvool.
Päikesepaneeli pinge edastatakse kahe digitaalse filtri kaudu ja kui see ületab teatud läve, tuvastab süsteem, et paneel on valgustatud, ja suunab põhikella voolutundlikku monitori. See on kiibi analoog -digitaalmuunduri kanal, mis on konfigureeritud erinevalt, mis tuvastab pinge 10 oomi 1% tolerantstakisti vahel, mis on järjestikku ühendatud võimendusmuunduri väljundi ja aku sisendi vahel. Kui paneel ei ole valgustatud, saadab see ATTiny teisele ATTiny'le signaali, öeldes, et see jälgib laadimisvõimsuse asemel LED -toiteallikat ning lülitab võimendusmuunduri välja ja isoleerib sisendi, nii et aku ei saada voolu läbi paneeli tagasi.
Teine ATTiny tuum täidab LED -kontrolleri ja aku laetuse jälgimise süsteemi. Paneeli pinge, aku pinge ja aku laadimisvoolu andmed saadetakse sellesse südamikku töötlemiseks hägusa loogika võrgu kaudu, mis üritab genereerida sobiva PWM-signaali, mida rakendada SHTDN-tihvtile, kontrollides seeläbi akule saadetava voolu kogust selle laadimiseks, kui see on valgustatud-maksimaalse võimsuspunkti jälgimise (MPPT.) põhivorm. Samuti saab see anduri südamikult signaali, mis ütleb, kas see peaks LED-i sisse või välja lülitama, sõltuvalt anduri südamiku päevast väljundist. öö flip flop.
Kui LED on öösel aktiivne, jälgib see ATTiny oma sõbralt talle saadetud aku pingeandmeid ja oma kiibil olevat temperatuuriandurit, et saada ligikaudne hinnang selle kohta, kui palju energiat LED-i surutakse (aku pinge väheneb ja kiibi temperatuur tõuseb, kui vool tõmmatakse selle tihvtidest välja.) LED-i PWM-plaastriga seotud udune loogikavõrk püüab otsustada, kui palju akut on veel saadaval, ja vähendada LED-i intensiivsust, kui aku on tühi.
Samm: kohandatud plaastrite loomine XOD põhiteegist
Selle disaini jaoks kasutati mitut kohandatud patch -sõlme, millest mõnda saab hõlpsasti täielikult koostada kaasasolevatest XOD -sõlmedest ja mõnda, mis rakendati C ++ -is.
Esimene kahest kohandatud patch-sõlmest piltidel on eksponentsiaalse liikuva keskmise filtri rakendamine. See on visandis järjestikku kasutatav madala üldkuluga madalpääsfiltr, mis kord filtreerib sissetuleva päikesepaneeli pinge loogilise südamiku jaoks ja veel kord päästiku toitmiseks, mis määrab pikaajalise ümbritseva valgustuse. Vt Vikipeedia kirjet eksponentsiaalse silumise kohta.
Pildil olev sõlme struktuur on vaid artikli ülekandefunktsiooni otsene graafiline esitus, mis on ühendatud vastavate sisendite ja väljundite linkide abil. Raamatukogust on edasilükkamissõlm, mis võimaldab luua tagasisideahelat (XOD hoiatab teid, kui loote tagasisideahela ilma silmusesse viivitust sisestamata, nagu on kirjeldatud XOD -i täitmismudelis.) Selle detailiga hoolitsetakse plaaster töötab hästi, see on lihtne.
Teine kohandatud plaastrisõlm on variatsioon XOD-ga kaasasoleval varrukal, mida toidetakse filtreeritud paneeli pingega. See lukustub kõrgelt või madalalt sõltuvalt sellest, kas sisendsignaal on teatud lävest üle või alla. Valatud sõlme kasutatakse Boole'i väljundväärtuste teisendamiseks impulsi andmetüübiks, et käivitada flip flop, kui olek läheb üle madalalt kõrgele. Loodetavasti peaks selle plaastrisõlme disain olema ekraanipildilt mõnevõrra iseenesestmõistetav.
Samm: kohandatud plaastrite loomine C ++ abil
Erinõuete puhul, kus vajalik sõlme funktsionaalsus oleks graafika hõlpsaks kujutamiseks liiga keeruline või mis tuginevad Arduino teekidele, mis ei ole Arduino varukeskkonnale omased, võimaldab XOD neil, kellel on teatud C/C ++ teadmised, hõlpsasti hammustada suurusi. koodi, mille saab seejärel plaastrisse integreerida samamoodi nagu mis tahes muu kasutaja loodud või varusõlm. Failimenüüst valiku "Loo uus plaaster" loomine loob töötamiseks tühja lehe ning sisend- ja väljundsõlmed saab lohistada tuumaraamatukogu jaotisest "sõlmed". Siis saab "mitte-rakendatud-xodis" sõlme lohistada ja sellel klõpsates avaneb tekstiredaktor, kus saab vajalikku funktsionaalsust rakendada C ++ -is. Siit saate teada, kuidas käsitleda sisemist olekut ning C ++ koodist sisend- ja väljundportidele juurdepääsu.
Näitena kohandatud plaastrite rakendamisest C ++ -is kasutatakse juhi südamiku jaoks veel kahte kohandatud plaastrit, et esitada hinnang juhi südamiku toitepinge ja südamiku temperatuuri kohta. Koos häguse võrguga võimaldab see ligikaudselt hinnata järelejäänud aku energiat, mis on saadaval LED -ide toiteks pimedas.
Temperatuurianduri plaastrit toidetakse ka toitepingeanduri väljundiga, et saada paremat hinnangut - südamiku temperatuuritundlikkus võimaldab meil saada ligikaudse hinnangu selle kohta, kui palju energiat LED -id põlevad, ning kombineerida toitepinge näitu, kui Aku tühjenemine annab täiendava ligikaudse hinnangu selle kohta, kui palju aku on alles. See ei pea olema ülitäpne; kui tuum "teab", et valgusdioodid võtavad palju voolu, kuid aku pinge langeb kiiresti, võib ilmselt öelda, et aku ei kesta enam kaua ja on aeg lamp välja lülitada.
6. samm: ehitamine
Ehitasin projekti väikesele prototüüpplaadile, millel olid vaskpadjad aukude jaoks. Pistikupesade kasutamine IC -de jaoks aitab palju programmeerimisel/muutmisel/testimisel; Sparkfuni USBTiny Interneti -teenuse pakkuja plaadil on sarnane pistikupesa, nii et kahe kiibi programmeerimine seisneb programmeerija ühendamises arvuti USB -porti, üleslaaditud XOD -koodi üleslaadimises kaasasolevatest Arduino.ino -failidest koos sobivate tahvli- ja programmeerimisseadetega ning seejärel eemaldage kiibid õrnalt programmeerija pesast ja sisestage need protoboardi pesadesse.
Pololu TPS6120 põhinev võimendusmuunduri moodul on tõusuplaadil, mis on jootetud tihvtide päiste protoboardisse, nii et on võimalik säästa ruumi, paigaldades mõned komponendid alla. Oma prototüübile panin kaks 4,7 k tõmbetakistit alla. Need on vajalikud kiipide vahel oleva i2c -siini korrektseks toimimiseks - side ei tööta ilma nendeta! Tahvli paremal küljel on päikesepaneeli pistiku ja sisendkondensaatori sisendpesa. Parim on proovida ühendada pistik ja see kork otse kokku jootetorude, mitte juhtmete ühendamise teel, et saada võimalikult väike takistus. Seejärel kasutatakse tahke jootet, et ühendada mälukondensaatori positiivne klemm otse võimendusmooduli sisendpinge klemmiga ja võimendusmooduli maandusnõel otse pistiku maandusnõelaga.
Kahe ATTinys pistikupesast paremal ja vasakul on 0,1uF despike/deglitching kondensaatorid. Neid komponente on samuti oluline mitte välja jätta ja need tuleks ühendada IC -de toite- ja maanduspistikutega võimalikult lühikese ja otsese tee kaudu. 10 -oomine voolutugevuse takisti on vasakul, see on ühendatud vastavalt võimendusmuunduri väljundiga ja mõlemad küljed on ühendatud anduri südamiku sisendtihvtiga - need tihvtid on seadistatud töötama diferentsiaalse ADC -na, et kaudselt mõõta voolu akusse. Ühendusi i2c siini IC-tihvtide ja võimendusmuunduri väljalülitustihvti jms vahel saab teha protobooki alumisel küljel asuva ühendustraadi abil, selleks sobib väga õhuke tugeva südamikuga haaketraat. See muudab muudatused lihtsamaks ja näeb ka palju korralikum välja, kui hüppajate jooksmine ülaosas olevate aukude vahel.
Kasutatud LED-moodul oli kolmevärviline RGB-seade, minu plaan oli, et kõik kolm LED-i oleksid aktiivsed, et toota valget värvi, kui aku oleks peaaegu täis laetud, ja kustutada sinine LED aeglaselt kollaseks, kui laeng on tühjenenud. Kuid seda funktsiooni tuleb veel rakendada. Üks valge LED, millel on üks voolu piirav takisti, töötab ka hästi.
7. samm: testimine, 1. osa
Pärast Arduino keskkonnast USB -programmeerija kaudu mõlema ATTiny IC -i programmeerimist kaasasolevate visandifailidega aitab enne päikesepaneelilt aku laadimist kontrollida, kas prototüübi kaks südamikku töötavad korralikult. Ideaalis on selleks vaja tavalist ostsilloskoopi, multimeetrit ja pingitoiteallikat.
Esmalt tuleb kontrollida, et enne IC -de, aku ja paneeli pistikupesasse ühendamist poleks plaadil kuskil lühiseid, et vältida võimalikke kahjustusi! Lihtsaim viis seda teha on kasutada pingitoiteallikat, mis võib selle olukorra korral piirata selle väljundvoolu ohutu väärtuseni. Kasutasin oma pingivarustuse komplekti 3 volti ja 100 mA piiri, mis oli ühendatud päikesepaneeli sisendpesa klemmidega positiivse ja negatiivse toitejuhtme külge. Kui installitud pole midagi muud kui passiivsed komponendid, ei tohiks toiteallika praegusel kuvaril sisuliselt olla registreeritud voolutugevust. Kui vool on märkimisväärne või toide läheb voolu piiravaks, on midagi valesti läinud ja plaati tuleb kontrollida, et veenduda, et pole polaarsusega vastupidiseid juhtmeid ega kondensaatoreid.
Järgmine samm on tagada, et võimendusmuundur töötab korralikult. Plaadil on kruvipotentiomeeter, toiteallikas on endiselt ühendatud ja neli muunduri kontakti on korralikult ühendatud, tuleb potentsiomeetrit keerata väikese kruvikeeraja otsaga, kuni mooduli väljundklemmi pinge on umbes 3,8–3,9 volti. See alalisvoolu väärtus ei muutu töötamise ajal, juhi tuum kontrollib keskmist väljundpinget mooduli väljalülitustihvti pulseerides.
8. etapp: testimine, 2. osa
Järgmine asi, mida tuleb kontrollida, on see, et i2c kommunikatsioon töötab hästi, kui plaat töötab pingilt, saab anduri südamiku IC paigaldada. Ostsilloskoobil peaksid füüsilise kiibi tihvtidel 5 ja 7 olema pulseerivad signaalid, see i2c draiver kiibil üritab oma sõbrale andmeid saata. Pärast juhtsüdamiku väljalülitamist saab paigaldada ja ühenduse uuesti ostsilloskoobiga kontrollida, peaks mõlemal liinil olema suurem impulsside jada. See tähendab, et kiibid suhtlevad õigesti.
See aitab akut veidi laadida, et lõplik täielik test teha. Selle eesmärgi saavutamiseks võib kasutada ka pingivarustust, kus voolupiiranguks on seatud umbes 50 mA ja pinge endiselt 3,8 volti, jättes LiPo aku mõneks minutiks otse ühendatuks.
Viimane samm on kogu süsteemi testimine - kui kõik on ühendatud, kui paneel on 10 või 15 sekundi jooksul kaetud, peaks tuli süttima juhi südamiku PWM -väljundi kaudu. Kui paneel on ereda päikesevalguse käes, peaks aku laadima võimendusmuunduri väljundist. Hägusat loogikavõrku saab kaudselt kontrollida, et näha, kas see töötab õigesti, vaadates võimendusmuunduri väljalülitusnuppu juhtivat PWM -liini; kui valgustus suureneb madala laetusega aku korral, peaks impulsi laius suurenema, mis näitab, et kui päikesevalgusest saab rohkem energiat, annab juhi tuum märku, et akusse tuleb saata rohkem energiat!
9. samm: Lisa häguse loogika kohta
Hägune loogika on masinõppetehnika, mida saab kasutada riistvaraliste süsteemide juhtimisel, kui paljud juhitava süsteemi parameetrid on ebakindlad, andes selgesõnalise sisendi väljundi juhtimislahendusele eesmärgi jaoks, mida on raske matemaatiliselt kirja panna. Selle saavutamiseks kasutatakse loogilisi väärtusi, mis jäävad vahemikku 0 (vale) kuni 1 (tõene), väljendades ebakindlust väärtuses, mis sarnaneb inimesega („enamasti tõsi” või „pole tõsi”), ning lubab halli ala 100% tõese ja 100% vale väite vahel. Selle saavutamiseks võetakse kõigepealt proovid sisendmuutujatest, millel otsus peab põhinema, ja need „hägustatakse”.
Iga häguse loogikasüsteemi süda on „hägune assotsiatiivne mälu”. See meenutab maatriksit, kus aku laadimisahela puhul salvestatakse 3x3 väärtuste kogum vahemikus 0 kuni 1. Maatriksi väärtusi saab laias laastus seostada sellega, kuidas inimene peaks mõtlema, milline peaks olema võimendusmuunduri SHTDN -tihvti juhtiv PWM -tegur, sõltuvalt sellest, kuidas ülaltoodud liikmesfunktsioon antud sisendite komplekti kvalifitseerib. Näiteks kui paneeli sisendpinge on kõrge, kuid patareisse tõmmatav vool on madal, tähendab see tõenäoliselt, et saab rohkem energiat ja PWM -seade pole optimaalne ja seda tuleks suurendada. Ja vastupidi, kui paneeli pinge langeb, kuid laadija üritab endiselt akusse suurt voolu suruda, läheb see samuti raisku, seega oleks parem vähendada PWM -signaali võimendusmuundurile. Kui sisendsignaalid on „hägustunud” häguseks kogumiks, korrutatakse need nende väärtustega, sarnaselt sellele, kuidas vektor korrutatakse maatriksiga, et saada teisendatud kogum, mis esindab seda, kui palju „teadmised” sisaldasid lahtrit maatriksi osa tuleks arvesse võtta lõpliku kombinatsiooni funktsioonis.
Kasutades sõlme „mitte-rakendatud-xodis”, mis võimaldab XOD-sõlmedel, mis rakendavad kohandatud funktsioone liiga keeruliseks, et neid poleks mõistlik teha varude ehitusplokkidest, ja väikest Arduino-stiilis C ++, assotsiatiivset mälu, kaalumisfunktsiooni ja fuzzifier , mis sarnaneb selles viites kirjeldatud plokkidega: https://www.drdobbs.com/cpp/fuzzy-logic-in-c/184408940, on lihtne teha ja nendega on palju lihtsam katsetada.
Soovitan:
COVID-19 inspireeritud päikeseenergia lamp: 5 sammu
COVID-19 inspireeritud päikeseenergialamp: ülemaailmne COVID-19 pandeemia ja sellest tulenev sulgemine pani mind mõtlema, kuidas midagi koos Arduino juppidega kaasa võtta. Ehkki see on väga lihtne juhend, ütlen ma seda ja veel ühte juhist
DIY päikeseenergia lamp V1: 4 sammu
DIY päikeseenergia lamp V1: Tere sõbrad, ma olen Ram. Tähemärgilt olen neitsi ja mu elukoht on India, Bangalore. Seal, kus on palju elektrikatkestusi ja muidugi üks India saastatumaid linnu, otsustasin selle ehituse teha ja hämmastav on see, et see on peaaegu ehitatud skrappritega: .Solar powered by
4 ühes kast (päikeseenergia laetav uimastamispüstol, toitepank, LED -valgus ja laser): 5 sammu (piltidega)
4 in 1 BOX (päikeseenergiaga laetav uimastamispüstol, toitepank, LED -valgus ja laser): Selles projektis räägin sellest, kuidas valmistada 4 ühes päikesepatarei, elektripank, LED -valgus ja amp; Laser kõik ühes karbis. Ma tegin selle projekti, sest tahan lisada kõik soovitud seadmed kasti, see on nagu ellujäämiskast, suur maht
Madala tehnoloogiaga päikeseenergia lamp koos taaskasutatud akudega: 9 sammu (piltidega)
Madala tehnoloogiaga päikeseenergia lamp koos taaskasutatud akudega: see õpetus võimaldab teil valmistada USB-laadijaga varustatud päikeselampi. See kasutab liitiumelemente, mida kasutatakse vanast või kahjustatud sülearvutist. See päevase päikesevalgusega süsteem suudab nutitelefoni täielikult laadida ja 4 tundi valgust. See tehnika
Päikeseenergia laetav sisekujundus: 7 sammu
Päikeseenergia laetav sisekujundus: Phoenix Fire Lily: päikeseenergia laetav aku, mis on ühendatud vilkuva LED-iga kunstliku liilialille sees, mis asub käsitsi valmistatud puidust vaasis