Kazalo:

Utripanje vdelane programske opreme po meri na svetilko BLF A6: 5 korakov
Utripanje vdelane programske opreme po meri na svetilko BLF A6: 5 korakov

Video: Utripanje vdelane programske opreme po meri na svetilko BLF A6: 5 korakov

Video: Utripanje vdelane programske opreme po meri na svetilko BLF A6: 5 korakov
Video: НОВИНКА!!! Радиоприемник TECSUN PL320 #tecsun 2024, November
Anonim
Utripanje vdelane programske opreme po meri na svetilko BLF A6
Utripanje vdelane programske opreme po meri na svetilko BLF A6

Pred kratkim sem dobil BLF A6. To je zelo lepo, vendar mi ni všeč nobena od privzetih skupin načinov, zato sem vdelano programsko opremo spremenil tako, da je uporabil mojo želeno svetlost. Podatkov je bilo težko najti, zato vse, kar sem se naučil, postavljam zase in za druge.

Zaloge

BLF A6 (verjetno bo deloval z drugimi svetilkami na osnovi ATtiny)

Pincete / tanke klešče / majhne škarje / nekaj za odvijanje zadrževalnega obroča voznikove plošče

Računalnik za bliskanje, po možnosti z distribucijo Linuxa

USB ASP programer / Arduino / nekaj, kar lahko programira AVR (očitno je priporočljiv USB ASP programer, vendar sem uporabil Arduino)

Posnetek SOIC8 (mogoče je tudi brez, vendar je zelo zapleten in sploh ni priporočljiv)

(neobvezno) Ojačevalna plošča in/ali mostične žice za lažje povezovanje

1. korak: Prenesite vdelano programsko opremo

Vdelana programska oprema za BLF A6 (in številne druge svetilke) je na voljo tukaj. Avtor govori o tem tukaj. Prenesete ga lahko tako, da zaženete:

bzr veja lp: ~ igralec/svetilka-firmware/blf-a6-final

v terminalu. (morda boste morali namestiti bzr)

Opomba: pri prejšnjem urejanju tega navodila sem namesto tega uporabil "bzr branch lp: firmware-firmware". Od takrat sem izvedel, da se s tem prenese zastarela različica z napačnimi vrednostmi za izklopni kondenzator, zaradi česar je pritisk gumba neprijetno dolg. (zahvaljujoč tej temi na Redditu)

Mapa, ki jo želite, je blf-a6-final/ToyKeeper/blf-a6. Vsebuje sestavljeno datoteko.hex, pripravljeno za bliskanje (blf-a6.hex) in kodo C, ki jo lahko spremenite. (blf-a6.c) Če želite bliskovito posodobiti vdelano programsko opremo, lahko preskočite naslednji korak in uporabite blf-a6.hex. Verjetno bo delovala tudi nekatera druga vdelana programska oprema v tem skladišču.

2. korak: spremenite vdelano programsko opremo

Odprite blf-a6.c v želenem urejevalniku besedil ali IDE. Najbolj zanimive vrstice so skupine načinov med vrsticami 116 in 131. Izgledajo tako:

// Skupina načinov 1 #definira NUM_MODES1 7 // ravni PWM za veliko vezje (FET ali Nx7135) #define MODESNx1 0, 0, 0, 7, 56, 137, 255 // ravni PWM za majhno vezje (1x7135) # definiraj NAČINE1x1 2, 20, 110, 255, 255, 255, 0 // Moj vzorec: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Vzorec Krono: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47, … 6? = 68 // Hitrost PWM za vsak način #define MODES_PWM1 FAZA, FAST, FAST, FAST, FAST, FAST, FAZA // Skupina načinov 2 #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 FAST, FAST, FAST, PHASE

Za vsako skupino je MODESN vrednost PWM, uporabljena za FET, MODES1 pa vrednost PWM, ki se uporablja za 7135 v vsakem načinu. Številka je med 0 in 255 in ustreza jakosti svetlobe. Več informacij tukaj. (pomaknite se navzdol do "Regulacija načina:") Nisem prepričan, kakšna je hitrost PWM. Če kdo ve, naj mi pove v komentarjih. FET lahko proizvede več svetlobe kot 7135, vendar 7135 ohranja raven svetlobe bolj ali manj enako skozi življenjsko dobo baterije, medtem ko FET postane temnejši, ko zmanjka baterije.

Tu lahko prilagodite vrednosti PWM, da ustvarite načine po svojem okusu. Verjetno lahko spremenite tudi število načinov, vendar tega nisem poskusil, saj sem želel štiri načine, kar je slučajno številka v drugi skupini. Želel sem temnejši način mesečine, zato sem prvega nastavil na 0/1, meni pa se zdi turbo način nekoliko nesmiseln, zato sem ga zamenjal s 137/255, kar je enakovredno načinu šest v skupini sedmih načinov. Preostanek kode lahko po potrebi spremenite, vendar tega nisem poskusil.

Ko dobite želeno kodo, jo morate sestaviti v datoteko.hex. Vsaj potrebujete gcc-avr in avr-libc. Če imate težave, si oglejte druge odvisnosti v branju vdelane programske opreme. Repozitorij vsebuje gradbeni skript, vendar mi ni uspelo. Namesto tega sem staro različico prenesel z

bzr branch lp: vdelana programska oprema za svetilko

in prekopiral stari skript za gradnjo (ki sem ga lahko začel delati) nad novim. Potem sem tekel:

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

v mapi blf-a6. (to bi moral biti boljši način)../../bin/build.sh pokliče skript, 13 določa, da se gradi za ATtiny13, blf-a6 pa za BLF A6. (duh) Moral bi vam povedati, katere ukaze izvaja, in dati rezultate. Moj izgleda takole:

avr -gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89 -inline -DATTINY = 13 -I.. -I../.. -I../../.. -frat -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-no-change-warnings -O ihex blf-a6.elf blf-a6.hex Program: 1022 bajtov (99,8% polno) Podatki: 13 bajtov (20,3% polno)

Ukazi so že optimizirani glede na velikost, zato, če piše, da je več kot 100% poln, poskusite komentirati

#define FULL_BIKING_STROBE

na liniji 147 za uporabo manjšega minimalnega kolesarskega stroba. Če še vedno ne ustreza, boste verjetno morali nekje odstraniti več kode. Ko je sestavljanje končano, bi morala biti v mapi datoteka z imenom blf-a6.hex. To je vaša sestavljena koda, pripravljena za utripanje.

3. korak: Razstavite svetilko

Razstavite svetilko
Razstavite svetilko
Razstavite svetilko
Razstavite svetilko
Razstavite svetilko
Razstavite svetilko

Odvijte konec žarnice v nasprotni smeri urinega kazalca. Tu sta dva vijačna spoja. Tisti, ki je bližje koncu svetilke, odpira reflektor in LED, drugi pa bližje sredini odpira voznikovo ploščo. Želite tistega, ki je bližje sredini.

V notranjosti bi morali videti akumulatorsko vzmet in varovalni obroč z dvema luknjama. Pincete / tanke klešče / škarje vstavite v luknje in jih zavrtite v nasprotni smeri urinega kazalca. Je precej trd in uporaba dveh ločenih predmetov vam verjetno ne bo dala dovolj vzvoda. Škarje sem uporabil na švicarskem vojaškem nožu.

Ko izvlečete prstan, osvobodite vozniško ploščo. Še vedno je pritrjen z dvema žicama, zato bodite previdni. Zvita sta skupaj, zato ploščo tako ali drugače zavrtite, dokler se žice ne zrahljajo. Ko imate dovolj prostora, obrnite desko. Želite, da bo čip z napisom "TINY13A" višje in bolj dostopen. Če je na napačni strani, jo obrnite v drugo smer. Vzmet potisnite pod stran. S tem boste začasno ostali na mestu in olajšali dostop do čipa. Če imate s tem težave, lahko verjetno odvijete drugi spoj in dve žici odlepite z druge strani, tako da lahko v celoti odstranite ploščo, vendar tega nisem poskusil.

4. korak: Priključite utripajočo strojno opremo

Povežite utripajočo strojno opremo
Povežite utripajočo strojno opremo
Povežite utripajočo strojno opremo
Povežite utripajočo strojno opremo
Povežite utripajočo strojno opremo
Povežite utripajočo strojno opremo

Zdaj uporabite sponko SOIC8 za povezavo čipa ATtiny13 in programatorja. Z mojo zaponko SOIC8, če imam rdečo žico na levi strani obeh koncev, vrstica zatičev bližje meni na koncu sponke ustreza vrsti zatičev, ki so mi bližje na koncu priključka, ko je konektor obrnjen navzdol. (glej moj super umetniški diagram) Ta priročnik priporoča uporabo programerja USB ASP V2.0. Če želite, ga povežite tako:

  • Pin 1 na ATtiny13 na pin 5 na USB ASP (ponastavitev)
  • Pin 4 na ATtiny13 na pin 10 na USB ASP (ozemljitev)
  • Pin 5 na ATtiny13 na pin 1 na USB ASP (MOSI)
  • Pin 6 na ATtiny13 na pin 9 na USB ASP (MISO)
  • Pin 7 na ATtiny13 na pin 7 na USB ASP (SCK)
  • Pin 8 na ATtiny13 na pin 2 na USB ASP (VCC)

Če tako kot jaz uporabljate Arduino, se morate malo bolj pripraviti. Sledite korakom nič in dva v tem priročniku:

Odprite Arduino IDE in se prepričajte, da je vaš Arduino povezan z računalnikom. Skico ponudnika internetnih storitev poiščite v meniju Datoteka> Primeri> 11. ArduinoISP> ArduinoISP in jo naložite v svoj Arduino. Nato nanj povežite ATtiny13 tako:

  • Pin 1 na ATtiny13 na pin 10 na Arduinu (ponastavitev)
  • Pin 4 na ATtiny13 do GND na Arduinu (tla)
  • Pin 5 na ATtiny13 do pin 11 na Arduinu (MOSI)
  • Pin 6 na ATtiny13 do pin 12 na Arduinu (MISO)
  • Pin 7 na ATtiny13 na pin 13 na Arduinu (SCK)
  • Pin 8 na ATtiny13 do VCC / 5V / 3,3 V na Arduinu (vsak bi moral delovati, vendar je 5 V bolj zanesljiv) (VCC)

Namestil sem tudi paket strojne opreme, vendar verjetno ni bil potreben. Če ste v dvomih, poskusite. Ne bo škodilo. Toda zagonskega nalagalnika ne zažgite, ker vam bo verjetno opekel svetilko.

5. korak: utripajte

Če želite vdelano programsko opremo utripati, morate namestiti AVRDUDE. Če želite preveriti, ali deluje z mojim Arduinom, zaženem:

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

Če deluje, se premaknem v prazno mapo in zaženem:

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

Za izdelavo varnostne kopije obstoječe vdelane programske opreme. In če ga želite utripati, iz mape s spremenjenim blf-a6.hex, ki ga zaženem:

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

Iz nekega razloga moram kot programer določiti stk500v1, ki ni deloval, razen če sem navedel vrata in hitrost prenosa. Če uporabljate Arduino in ste v dvomih, poskusite prekiniti povezavo vašega ATtiny13 z Arduinom in naložiti skico v Arduino IDE z nastavitvami tukaj. Ne bo uspelo, vendar mora v oknu konzole povedati, kateri ukaz uporablja. Atribute lahko kopirate v ukaz AVRDUDE.

Če uporabljate programer USB ASP, namesto tega zaženite:

avrdude -v -p attiny13 -c usbasp -n

Če želite preveriti, ali deluje, in:

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

Če želite narediti varnostno kopijo in:

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

Za utripanje.

-Uflash: w: blf-a6.hex se nanaša na datoteko, ki jo utripa. Če je datoteka drugačna, zamenjajte blf-a6.hex z imenom datoteke.

-Ulfuse: w: 0x75: m in -Uhfuse: w: 0xFF: m so varovalke. Vaše so lahko drugačne, zato dvakrat preverite vrednosti v vdelani programski opremi svetilke/bin/flash-tiny13-fuses.sh.

Če prikaže napako izven dosega, pomeni, da je slika prevelika, da bi se prilegala čipu, zato morate odstraniti del kode. Če uspešno utripa, mora prikazati nekaj vrstic napredovanja, nato pa recite "avrdude done. Hvala."

Če piše "neveljaven podpis naprave" in je mostiček na vašem programerju nastavljen na 3,3 V, ga poskusite nastaviti na 5 V.

Ko ga utripate, znova sestavite svetilko in preverite, ali deluje. Mine storil, vendar je čas se odpravite na ̶r̶e̶a̶s̶o̶n̶.̶ dolgo stiskalnice morajo biti približno tri sekunde, namesto ̶1̶.̶5̶.̶ Ne vem, če svoj 'nekaj opraviti z Arduino ali ker Uporabil sem napačne nastavitve ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶, če ti sanja, ̶ Naj vedo v ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: popravil sem. (glej korak 1)

Priporočena: