Turinys:

Pasirinktinės programinės įrangos mirksėjimas BLF A6 žibintuvėlyje: 5 žingsniai
Pasirinktinės programinės įrangos mirksėjimas BLF A6 žibintuvėlyje: 5 žingsniai

Video: Pasirinktinės programinės įrangos mirksėjimas BLF A6 žibintuvėlyje: 5 žingsniai

Video: Pasirinktinės programinės įrangos mirksėjimas BLF A6 žibintuvėlyje: 5 žingsniai
Video: Ariston Aqualtis не включается (ЗАГЛЮЧИЛА/Что делать?). 2024, Lapkritis
Anonim
Pasirinktinės programinės įrangos mirksėjimas prie BLF A6 žibintuvėlio
Pasirinktinės programinės įrangos mirksėjimas prie BLF A6 žibintuvėlio

Neseniai gavau BLF A6. Tai labai malonu, bet man nepatinka nė viena iš numatytųjų režimų grupių, todėl pakeičiau programinę -aparatinę įrangą, kad galėčiau naudoti pageidaujamus ryškumus. Informacijos buvo sunku rasti, todėl viską, ką išmokau, čia įdedu sau ir kitiems.

Prekės

BLF A6 (jis tikriausiai veiks su kitais „ATtiny“žibintuvėliais)

Pincetai / plonos replės / mažos žirklės / kažkas, norint atsukti vairuotojo plokštės tvirtinimo žiedą

Kompiuteris su blykste, pageidautina, kad veiktų „Linux“platinimas

USB ASP programuotojas / „Arduino“/ kažkas, kas gali atlikti AVR programavimą (matyt, rekomenduojamas USB ASP programuotojas, bet aš naudojau „Arduino“)

„SOIC8“klipas (galima apsieiti ir be jo, tačiau tai labai keblu ir nerekomenduojama)

(neprivaloma) Duonos lentos ir (arba) jungiamieji laidai, kad būtų lengviau prijungti

1 veiksmas: atsisiųskite programinę -aparatinę įrangą

BLF A6 (ir daugelio kitų žibintuvėlių) programinę -aparatinę įrangą rasite čia. Autorius apie tai kalba čia. Jį galite atsisiųsti paleisdami:

bzr filialas lp: ~ toykeeper/flashlight-firmware/blf-a6-final

terminale. (gali tekti įdiegti bzr)

Pastaba: ankstesniame šios „Instructable“redagavimo vietoje aš naudoju „bzr branch lp: flashlight-firmware“. Nuo to laiko aš sužinojau, kad tai atsisiunčia pasenusią versiją su netinkamomis neveikimo laiko kondensatoriaus vertėmis, todėl mygtukas spaudžia nepatogiai ilgai. (dėka šios temos „Reddit“)

Norimas aplankas yra blf-a6-final/ToyKeeper/blf-a6. Jame yra parengtas mirksėti.hex failas (blf-a6.hex) ir C kodas, kurį galite keisti. (blf-a6.c) Jei norite atnaujinti atsargų programinę-aparatinę įrangą, galite praleisti kitą veiksmą ir tiesiog naudoti blf-a6.hex. Tikriausiai veiks ir kai kuri kita tos saugyklos programinė įranga.

2 veiksmas: pakeiskite programinę -aparatinę įrangą

Atidarykite blf-a6.c norimame teksto redaktoriuje arba IDE. Įdomiausios linijos yra režimų grupės tarp 116 ir 131 eilučių. Jos atrodo taip:

// 1 režimo grupė #apibrėžia NUM_MODES1 7 // PWM lygius didelėje grandinėje (FET arba Nx7135) #define MODESNx1 0, 0, 0, 7, 56, 137, 255 // mažos grandinės PWM lygiai (1x7135) # apibrėžti MODES1x1 2, 20, 110, 255, 255, 255, 0 // Mano pavyzdys: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono mėginys: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM greitis kiekvienam režimui #define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // 2 režimo grupė #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 FAST, FAST, FAST, PHASE

Kiekvienai grupei MODESN yra PWM vertė, naudojama FET, o MODES1 - PWM vertė, naudojama 7135 kiekvienu režimu. Skaičius yra nuo 0 iki 255 ir atitinka šviesos ryškumą. Daugiau informacijos čia. (slinkite žemyn iki „Režimo reguliavimas:“) Nesu tikras, koks tiksliai yra PWM greitis. Jei kas nors žino, pasakykite man komentaruose. FET gali skleisti daugiau šviesos nei 7135, tačiau 7135 akumuliatoriaus veikimo metu šviesos lygis išlieka toks pat, o FET tampa tamsesnis, kai išsikrauna baterija.

Čia galite koreguoti PWM reikšmes, kad sukurtumėte režimus pagal savo skonį. Tikriausiai taip pat galite pakeisti režimų skaičių, bet aš to neišbandžiau, nes norėjau keturių režimų, o tai atsitinka kaip antrosios grupės numeris. Norėjau tamsesnio mėnulio šviesos režimo, todėl pirmąjį nustatiau į 0/1 ir manau, kad turbo režimas yra šiek tiek beprasmis, todėl jį pakeičiau 137/255 - šešių režimų grupės atitikmeniu septynių režimų grupėje. Jei reikia, tikriausiai galite pakeisti likusį kodą, bet aš to neišbandžiau.

Gavę norimą kodą, turite jį sukompiliuoti į.hex failą. Bent jau jums reikia gcc-avr ir avr-libc. Jei turite problemų, peržiūrėkite kitas programinės įrangos readme priklausomybes. Saugykloje yra kūrimo scenarijus, bet man nepavyko jo pasiekti. Vietoj to, aš atsisiunčiau seną versiją su

bzr filialas lp: žibintuvėlio programinė įranga

ir nukopijavau seną kūrimo scenarijų (kad galėčiau pradėti dirbti) per naują. Tada aš bėgau:

../../bin/build.sh 13 blf-a6

aplanke blf-a6. (turėtų būti geresnis būdas tai padaryti)../../bin/build.sh iškviečia scenarijų, 13 nurodo, kad jis kuriamas ATtiny13, o blf-a6 nurodo, kad jis skirtas BLF A6. (duh) Tai turėtų jums pasakyti, kokias komandas jis vykdo, ir suteikti jums išvestį. Manasis atrodo taip:

avr -gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89 -inline -DATTINY = 13 -I.. -I../.. -I../../.. -fshort -enums -o blf -a6.o -c blf -a6.cavr -gcc -Wall -g -Os -mmcu = attiny13 -fgnu89 -inline -o blf -a6.elf blf -a6.o avr -objcopy --set -section-flags =.eeprom = alloc, load-change-section-lma.eeprom = 0-įspėjimų be pakeitimų -O ihex blf-a6.elf blf-a6.hex Programa: 1022 baitai (99,8% pilna)) Duomenys: 13 baitų (20,3% pilna)

Komandos jau yra optimizuotos pagal dydį, taigi, jei sakoma, kad jos užpildytos daugiau nei 100%, pabandykite pakomentuoti

#define FULL_BIKING_STROBE

147 eilutėje naudoti mažesnį minimalų dviračių žibintą. Jei jis vis tiek netinka, tikriausiai turėsite kažkur pašalinti daugiau kodo. Kai kompiliavimas bus baigtas, aplanke turėtų būti failas blf-a6.hex. Tai yra jūsų sukurtas kodas, paruoštas mirksėti.

3 žingsnis: išardykite žibintuvėlį

Išardykite žibintuvėlį
Išardykite žibintuvėlį
Išardykite žibintuvėlį
Išardykite žibintuvėlį
Išardykite žibintuvėlį
Išardykite žibintuvėlį

Atsukite lemputės galą prieš laikrodžio rodyklę. Čia yra dvi varžtų jungtys. Tas, kuris yra arčiau žibintuvėlio lemputės galo, atveria atšvaitą ir šviesos diodą, o tas, kuris yra arčiau vidurio, atveria vairuotojo lentą. Norite, kad jis būtų arčiau vidurio.

Viduje turėtumėte pamatyti akumuliatoriaus spyruoklę ir fiksavimo žiedą su dviem skylėmis. Įkiškite pincetus / plonas reples / žirkles į skyles ir pasukite jas prieš laikrodžio rodyklę. Tai gana kieta, o naudojant du atskirus objektus tikriausiai nesuteiksite pakankamai sverto. Aš naudoju žirkus ant Šveicarijos armijos peilio.

Ištraukę žiedą, atlaisvinkite vairuotojo lentą. Jis vis dar pritvirtintas dviem laidais, todėl būkite atsargūs. Jie susukti kartu, todėl vienaip ar kitaip sukite plokštę, kol laidai atsilaisvins. Kai turite pakankamai veiksmų laisvės, apverskite lentą. Norite, kad mikroschema su užrašu „TINY13A“būtų aukštesnė ir prieinamesnė. Jei jis neteisingoje pusėje, pasukite jį į kitą pusę. Pritvirtinkite spyruoklę po šonu. Tai laikinai laikys jį vietoje ir bus lengviau patekti į lustą. Jei turite problemų dėl to, tikriausiai galite atsukti kitą jungtį ir išjungti du laidus iš kitos pusės, kad galėtumėte visiškai pašalinti plokštę, bet aš to nebandžiau.

4 veiksmas: prijunkite mirksinčią aparatūrą

Prijunkite mirksinčią aparatūrą
Prijunkite mirksinčią aparatūrą
Prijunkite mirksinčią aparatūrą
Prijunkite mirksinčią aparatūrą
Prijunkite mirksinčią aparatūrą
Prijunkite mirksinčią aparatūrą

Dabar naudojate SOIC8 spaustuką, kad prijungtumėte ATtiny13 mikroschemą ir savo programuotoją. Jei mano SOIC8 spaustuke yra raudona viela abiejų galų kairėje, arčiau manęs esanti kaiščių eilė spaustuko gale atitinka kaiščių eilę, esančią arčiau manęs jungties gale, kai jungtis nukreipta žemyn. (žr. mano super meninę schemą) Šiame vadove rekomenduojama naudoti USB ASP V2.0 programuotoją. Jei tai padarysite, prijunkite jį taip:

  • Prijunkite „ATtiny13“1 kaištį prie 5 USB ASP (iš naujo)
  • „ATtiny13“4 kaištis iki 10 USB ASP (įžeminimo)
  • „ATtiny13“5 kaištis iki 1 USB ASP (MOSI)
  • „ATtiny13“6 kaištis iki 9 USB ASP (MISO)
  • „ATtiny13“7 kaištis iki 7 USB ASP (SCK)
  • „ATtiny13“8 kaištis iki 2 USB ASP (VCC)

Jei, kaip ir aš, naudojate „Arduino“, turite šiek tiek daugiau pasiruošti. Atlikite šio vadovo nulį ir du veiksmus:

Atidarykite „Arduino IDE“ir įsitikinkite, kad „Arduino“yra prijungtas prie kompiuterio. Raskite IPT eskizą skiltyje Failas> Pavyzdžiai> 11. ArduinoISP> ArduinoISP ir įkelkite jį į „Arduino“. Tada prijunkite ATtiny13 prie jo taip:

  • „ATtiny13“1 kaištis iki 10 „Arduino“kaiščio (iš naujo)
  • 4 smeigtukas „ATtiny13“prie GND „Arduino“(žemė)
  • 5 „ATtiny13“kaištis iki 11 „Arduino“(MOSI) kaiščio
  • 6 „ATtiny13“kaištis iki 12 „Arduino“(MISO) kaiščio
  • „ATtiny13“7 kaištis prie „Arduino“(SCK) 13 kaiščio
  • 8 „ATtiny13“kaištis prie „Arduino“VCC / 5V / 3.3V (bet koks turėtų veikti, bet 5V yra patikimesnis) (VCC)

Aš taip pat įdiegiau aparatūros paketą, bet tikriausiai tai nebuvo būtina. Jei abejojate, pabandykite. Tai nepadarys jokios žalos. Tačiau nesudeginkite įkrovos tvarkyklės, nes ji tikriausiai užmuš jūsų žibintuvėlį.

5 žingsnis: „Flash It“

Norėdami atnaujinti programinę -aparatinę įrangą, turite įdiegti AVRDUDE. Norėdami patikrinti, ar jis veikia su mano „Arduino“, paleidžiu:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -n

Jei tai veikia, perkeliu į tuščią aplanką ir paleisiu:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -u -Uflash: r: flash -dump.hex: i -Ueeprom: r: eeprom -dump.hex: i -Ulfuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse -dump.hex: i

Norėdami sukurti esamos programinės įrangos atsarginę kopiją. Ir norėdamas jį paleisti, iš aplanko su modifikuotu blf-a6.hex paleidžiu:

avrdude -v -p attiny13 -c stk500v1 -P /dev /ttyUSB0 -b 19200 -u -Uflash: w: blf -a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

Kažkodėl turiu kaip programuotoją nurodyti stk500v1, ir jis neveikė, nebent nurodžiau prievadą ir duomenų perdavimo spartą. Jei naudojate „Arduino“ir abejojate, pabandykite atjungti „ATtiny13“nuo „Arduino“ir įkelti eskizą į „Arduino IDE“naudodami čia esančius nustatymus. Tai nepavyks, tačiau jame turėtų būti nurodyta, kokią komandą jis naudoja konsolės lange. Atributus galite nukopijuoti į savo AVRDUDE komandą.

Jei naudojate USB ASP programuotoją, paleiskite:

avrdude -v -p attiny13 -c usbasp -n

Norėdami pamatyti, ar tai veikia, ir:

avrdude -v -p attiny13 -c usbasp -u -Uflash: r: flash -dump.hex: i -Ueeprom: r: eeprom -dump.hex: i -Ulfuse: r: lfuse -dump.hex: i -Uhfuse: r: hfuse-dump.hex: i

Norėdami sukurti atsarginę kopiją ir:

avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf -a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m

Norėdami jį sužibėti.

-Uflash: w: blf-a6.hex reiškia failą, kurį jis mirksi. Pakeiskite blf-a6.hex failo pavadinimu, jei jis skiriasi.

-Ulfuse: w: 0x75: m ir -Uhfuse: w: 0xFF: m yra saugikliai. Jūsų gali skirtis, todėl dar kartą patikrinkite „flashlight-firmware/bin/flash-tiny13-fuses.sh“reikšmes.

Jei pateikiama klaida už diapazono ribų, tai reiškia, kad vaizdas yra per didelis, kad tilptų ant lusto, ir jūs turite pašalinti dalį kodo. Jei jis sėkmingai mirksi, jame turėtų būti rodomos kai kurios pažangos juostos, tada pasakykite „avrdude done. Ačiū“.

Jei sakoma „netinkamas įrenginio parašas“ir jūsų programuotojo trumpiklis nustatytas į 3.3v, pabandykite jį nustatyti į 5v.

Po to, kai jį užsidegsite, surinkite žibintuvėlį ir pažiūrėkite, ar jis veikia. Kasykla padarė, tačiau laikas yra Išjungtas Dėl tam tikrų ̶r̶e̶a̶s̶o̶n̶.̶ ilgą presai reikia apie tris sekundes, o ne 1.5. Nežinau, jei IT'S kažką daryti su Arduino arba dėl to, ̶I̶'̶v̶e̶ naudojamas klaidingą nustatymus ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶, jei turite bet kokios idėjos, ̶ Let Me žinoti, The ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Redaguoti: pataisiau. (žr. 1 veiksmą)

Rekomenduojamas: