» Mga Tema » Pag-ayos, paggawa ng makabago »Paano mag-flash ng isang flashlight upang mabago ang mga mode ng operating

Paano mag-flash ng isang flashlight upang mabago ang mga mode ng operating


Ang may-akda ng materyal na ito ay hindi nagustuhan ang normal na mga mode ng operasyon ng flashlight BLF A6. Pagkatapos ay nagpasya siyang mag-flash ng software na bahagi ng flashlight, na nagtatakda ng mga mode nito. Tulad ng naka-on, hindi ito gaanong simple, mayroong isang minimum na impormasyon sa firmware at mga pinout at kailangan niyang kolektahin ito nang kaunti. At upang hindi siya mawala, nagpasya siyang tulungan ang iba at ayusin ang lahat sa isang artikulo.

Kaya, para sa trabaho kakailanganin mo ang sumusunod:
Flashlight BLF A6 (marahil ito ay gagana sa iba pang mga flashlight batay sa ATtiny).
Mga manlilibak / payat na mga plier / maliliit na gunting.
Ang isang computer para sa firmware, mas mabuti sa isang pamamahagi ng Linux.
USB ASP / Programmer Arduino / isang bagay na magagawa ng AVR programming (malinaw naman, ang USB ASP programmer ay mas mahusay, ngunit ginamit ng wizard ang Arduino).
High-speed Rail-to-Rail amplifier [SOIC-8] (magagawa mo nang wala ito, ngunit hindi ito nakakagambala).
Development board at jumper wires para sa koneksyon.

Firmware.
Ang firmware para sa BLF A6 (at maraming iba pang mga flashlight) ay magagamit dito. Ang isang forum ng talakayan ay magagamit sa ito ang link.
Maaari mong i-download ang firmware sa pamamagitan ng pagpapatakbo ng search "bzr branch lp: flashlight-firmware". Kailangan mo ng flashlight-firmware / ToyKeeper / blf-a6 folder. Naglalaman ito ng isang pinagsama-samang file. hex, handa na para sa firmware (blf-a6.hex), at C code, na maaari ring mabago (blf-a6.c). Kung nais mong mag-flash ng firmware ng stock, maaari mong laktawan ang susunod na hakbang at gumamit lamang ng blf-a6.hex. Ang ilan pang mga firmware sa repositoryo na ito ay marahil ay gagana rin.

Baguhin ang firmware.
Pag-iingat mga simbolo, upang hindi mapangit ang kahulugan, ay ibinibigay nang walang pagsasalin.
Buksan ang blf-a6.c sa iyong ginustong text editor o IDE. Ang pinaka-kagiliw-giliw na mga linya ay ang mga pangkat ng mode sa pagitan ng mga linya 94 at 109. Katulad nito:
// pangkat ng mode 1
#define NUM_MODES1 7
// Mga antas ng PWM para sa malaking circuit (FET o Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// Mga antas ng PWM para sa maliit na circuit (1x7135)
#define MODES1x1 3,20,110,255,255,255,0
// Ang aking halimbawang: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// halimbawang Krono: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// bilis ng PWM para sa bawat mode
#define MODES_PWM1 FASA, FAST, FAST, FAST, FAST, FAST, Fase
// pangkat ng mode 2
#define NUM_MODES2 4
#define MODESNx2 0,0,90,255
#define MODES1x2 20,230,255,0
#define MODES_PWM2 FAST, FAST, FAST, Fase

Para sa bawat pangkat, ang MODESN ay ang halaga ng PWM na ginamit para sa FET, at ang MODES1 ay ang halagang PWM na ginamit para sa 7135 sa bawat mode. Ang bilang ay nasa saklaw mula 0 hanggang 255 at tumutugma sa ningning ng ilaw. Higit pang impormasyon
dito. (mag-scroll pababa sa "Mode control:") Hindi alam ng master kung ano ang bilis ng PWM.Kung may nakakaalam, sabihin sa akin sa mga komento. Ang isang patlang na epekto transistor ay maaaring makagawa ng mas maraming ilaw kaysa sa 7135, ngunit ang 7135 ay nagpapanatili ng antas ng ilaw nang higit pa o mas kaunti sa buong buhay ng baterya, habang gumagamit ng isang patlang na epekto transistor, ang ilaw ay sumisid kapag naubos ang baterya.

Dito maaari naming ayusin ang mga halaga ng PWM upang lumikha ng mga mode ayon sa gusto namin. Maaari mo ring baguhin ang bilang ng mga mode, ngunit hindi ito ginawa ng panginoon sapagkat kailangan niya ng apat na mga mode, at ito ang numero sa pangalawang pangkat. Gusto niya ng isang mas madidilim na rehimen ng buwan, at samakatuwid ay itakda ang una sa 0/1. Isinasaalang-alang din niya ang turbo mode na walang kabuluhan, kaya pinalitan ko ito ng 137/255, na katumbas ng ika-anim na mode sa isang pangkat ng pitong mga mode.

Kapag mayroon kang code na kailangan mo, dapat mong isama ang isang file na .hex. Hindi bababa sa kailangan mo ng gcc-avr at avr-libc. Kung mayroon kang mga problema, tingnan ang iba pang mga dependencies sa readme file. Kasama sa repository ang isang script ng build, kaya ang kailangan mo lang gawin ay tumakbo:
../../bin/build.sh 13 blf-a6
sa folder na blf-a6. ../../Bin/build.sh ang script. 13 ay nagpapahiwatig na ito ay para sa ATtiny13, at ipinapahiwatig ng blf-a6 na ito ay para sa BLF A6.
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.c
avr-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-pagbabago-babala -O ihex blf-a6.elf blf-a6.hex
Program: 1022 byte (99.8% Buong)
data: 13 byte (20.3% Buong)
Ang mga koponan ay na-optimize ang laki, kaya kung nakasulat na ang mga ito ay higit sa 100% na buo, subukang tanggalin
#define FULL_BIKING_STROBE

Maliit ang linya ng 125 spells bisikleta ilaw ng strobe. Kung hindi ito sapat, kung gayon ang ibang bagay ay kailangang gupitin.
Kapag kumpleto ang compilation, ang folder ay dapat maglaman ng isang file na pinangalanan blf-a6.hex. Ito ay naipon na code, handa na para sa firmware.

Pag-aalis ng flashlight.
Alisin ang headlamp ng flashlight. Mayroong dalawang mga koneksyon sa tornilyo. Ang isa na mas malapit sa katawan ng flashlight ay inaayos ang reflector at LED, at ang isa na malapit sa gitna ay inaayos ang board. Kailangan namin ng isang average.

Sa loob makikita mo ang isang singsing na may isang tagsibol at dalawang butas sa mga gilid. Ipasok ang tweezer / manipis na mga pliers / gunting sa mga butas at paikutin ang mga ito nang hindi mabilang.

Kapag tinanggal ang singsing, magkakaroon ka ng access sa board. Nakalakip pa rin ito ng dalawang wires, kaya mag-ingat. Ang mga ito ay baluktot na magkasama, kaya paikutin ang board hanggang sa maluwag ang mga wire. Pagkatapos ay i-on ang board. Kinakailangan na ang chip na may inskripsyon na "TINY13A" ay mas madaling ma-access.

Kung ang mga wire ay maikli at hindi ito gumana, kailangan mong alisin ang board.






Koneksyon.
Ngayon ay kailangan mong ihanda ang board para sa firmware.
Ang wizard ay gumagamit ng SOIC8 upang ikonekta ang ATtiny13 chip at ang programmer.
Paano mag-flash ng isang flashlight upang mabago ang mga mode ng operating



Tingnan ang larawan habang ginagawa ng wizard ang koneksyon. Pansinin ang pulang linya sa pangalawang pigura.

Kung gagamitin mo ang USB ASP V2.0 programmer, kailangan mong ikonekta ito tulad nito:
Pin 1 sa ATtiny13 - Pin 5 sa USB ASP (reset)
Pin 4 sa ATtiny13 - Pin 10 sa USB ASP (Ground)
Pin 5 sa ATtiny13 - Pin 1 sa USB ASP (MOSI)
Pin 6 sa ATtiny13 - Pin 9 sa USB ASP (MISO)
Pin 7 sa ATtiny13 - Pin 7 sa USB ASP (SCK)
Pin 8 sa ATtiny13 - Pin 2 sa USB ASP (VCC)

Kung gumagamit ka ng Arduino, tulad ng wizard, pagkatapos ay sundin ang mga hakbang na ito:
Buksan ang Arduino IDE at siguraduhin na ang iyong Arduino ay konektado sa computer. Hanapin ang ISP sketch sa File> Mga Halimbawa> 11.ArduinoISP> ArduinoISP at i-upload ito sa Arduino. Pagkatapos ay ikonekta ang ATtiny13 dito tulad ng mga sumusunod:
Pin 1 sa ATtiny13 - Pin 10 sa Arduino (reset)
Pin 4 sa ATtiny13 - GND sa Arduino (Ground)
Pin 5 sa ATtiny13 - Pin 11 sa Arduino (MOSI)
Pin 6 sa ATtiny13 - Pin 12 sa Arduino (MISO)
Pin 7 sa ATtiny13 - Pin 13 sa Arduino (SCK)
Pin 8 sa ATtiny13 - VCC / 5V o 3.3V sa Arduino (ginustong 5V)

Firmware.
Hakbang 5: flash ito
Para sa firmware, dapat mong i-install ang AVRDUDE. Upang suriin kung gumagana ito sa Arduino, nagsusulat ang isang wizard ng isang utos:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Kung gumagana ito, pumunta sa walang laman na folder at magrehistro:
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
Gumawa ng isang backup na kopya ng umiiral na firmware. Upang mag-flash, mula sa folder na may binagong blf-a6.hex nagsisimula ito:
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
Kailangan mong tukuyin ang stk500v1 bilang isang programmer, at tukuyin ang bilis ng paglipat ng port at data. Kung gumagamit ka ng Arduino at may pag-aalinlangan, subukang i-disconnect ang ATtiny13 mula sa Arduino at i-upload ang sketch sa Arduino IDE gamit ang ang mga setting na ito. Hindi ito gagana, ngunit malalaman mo kung aling utos ang ginagamit sa window ng console. Susunod, maaari mong kopyahin ang mga katangian sa utos ng AVRDUDE.

Kung gumagamit ka ng isang USB ASP programmer, tumakbo:
avrdude -v -p attiny13 -c usbasp -n
Upang makita kung gumagana ito:
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 -Uhuse: r: hfuse-dump.hex: i
Gumawa ng isang backup:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uhfuse: w: 0xFF: m
Upang mag-flash:
-Uflash: w: blf-a6.hex. Palitan ang blf-a6.hex sa pangalan ng iyong file kung naiiba ito.
-Ulfuse: w: 0x75: m at -Uhfuse: w: 0xFF: m
Kung naganap ang isang error, nangangahulugan ito na ang file ng imahe ay masyadong malaki upang magkasya sa chip, at kakailanganin mong tanggalin ang bahagi ng code. Kung ang lahat ay normal, ang ilang mga tagapagpahiwatig ng pag-unlad ay dapat ipakita, at pagkatapos ay ang mga salitang "avrdude tapos na. Salamat."
Matapos mong i-flocked ang chip, tipunin ang flashlight at tingnan kung gumagana ito.
Ang tanong na tanong ay awtomatikong nai-publish sa panlipunan. network ng site - manatiling nakatutok para sa mga sagot doon:

Angkop para sa paksa

Kaugnay na mga paksa

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...