» Temes » Reparació, modernització »Com llampar una llanterna per canviar els modes de funcionament

Com llampar una llanterna per canviar els modes de funcionament


A l’autor d’aquest material no li van agradar els modes de funcionament normals de la llanterna BLF A6. Aleshores va decidir fer servir la part del programari de la llanterna, ajustant els seus modes. Tot i així, no és tan senzill, hi ha un mínim d’informació sobre el firmware i els pinouts i va haver de recollir-la mica en mica. I perquè no es perdés, va decidir ajudar els altres i arreglar tot en un article.

Per tant, per al treball, necessitareu el següent:
Llanterna BLF A6 (probablement funcionarà amb altres llanternes basades en ATtiny).
Pinces / alicates fines / tisores petites.
Un ordinador per a firmware, preferiblement amb una distribució Linux.
USB ASP / Programador Arduino / alguna cosa que pot fer la programació AVR (òbviament, el programador USB ASP és millor, però l'assistent va utilitzar Arduino).
Amplificador ferroviari a ferrocarril d’alta velocitat [SOIC-8] (podeu prescindir-ne, però és molt inconvenient).
Cablejat de placa de desenvolupament i pont per a la connexió.

Firmware.
El firmware per a BLF A6 (i moltes altres llanternes) està disponible aquí. Hi ha disponible un fòrum de discussió l’enllaç.
Podeu descarregar el firmware executant la cerca "bzr branch lp: flashlight-firmware". Necessiteu una carpeta de llanterna-firmware / ToyKeeper / blf-a6. Conté un fitxer compilat. hex, llest per al firmware (blf-a6.hex) i codi C, que també es poden canviar (blf-a6.c). Si voleu fer servir el firmware per accions, podeu saltar el següent pas i només heu d'utilitzar blf-a6.hex. Probablement funcionarà també algun altre firmware d’aquest dipòsit.

Canviar el firmware.
Precaució els símbols, per no distorsionar el significat, es donen sense traducció.
Obriu blf-a6.c al vostre editor de text o IDE preferit. Les línies més interessants són els grups de modes entre les línies 94 i 109. Semblen així:
// Grup de modes 1
#defineu NUM_MODES1 7
// Nivells de PWM per al gran circuit (FET o Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// Nivells PWM per al circuit petit (1x7135)
# definir MODES1x1 3.20.110.255.255.255,0
// La meva mostra: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Mostra Krono: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// Velocitat PWM per a cada mode
#define MODES_PWM1 FASE, RÀPID, RÀPID, RÀPID, RÀPID, RÀPID, FASE
// Grup de modes 2
#defineu NUM_MODES2 4
#define MODESNx2 0,0,90,255
# definir MODES1x2 20.230.255,0
#define MODES_PWM2 RÀPID, RÀPID, RÀPID, FASE

Per a cada grup, MODESN és el valor PWM que s'utilitza per a FET i MODES1 és el valor PWM que s'utilitza per a 7135 en cada mode. El nombre està en el rang de 0 a 255 i correspon a la brillantor de la llum. Més informació
aquí. (desplaceu-vos cap avall fins a "Control de mode:") El mestre no està segur de quina és la velocitat del PWM.Si algú ho sap, digueu-me als comentaris. Un transistor d’efecte de camp pot produir més llum que 7135, però 7135 manté el nivell de llum més o menys igual durant tota la vida de la bateria, mentre que quan s’utilitza un transistor d’efecte de camp, la llum s’enfosqueix quan la bateria s’esgota.

Aquí podem ajustar els valors PWM per crear modes al nostre gust. També podeu canviar el nombre de modes, però el mestre no ho va fer perquè necessita quatre modes i aquest és el número del segon grup. Volia un règim de llum de la lluna més fosc i, per tant, va establir el primer a 0/1. També considera el mode turbo una mica inútil, així que el vaig substituir per 137/255, que equival al sisè mode en un grup de set modes.

Quan tingueu el codi que necessiteu, heu de compilar-lo en un fitxer .hex. Almenys necessiteu gcc-avr i avr-libc. Si teniu problemes, mireu altres dependències al fitxer readme. El repositori inclou un script de creació, per la qual cosa només heu de executar:
../../bin/build.sh 13 blf-a6
a la carpeta blf-a6. ../../Bin/build.sh és el guió. 13 indica que és per ATtiny13, i blf-a6 indica que és per a BLF A6.
avr-gcc -Wall -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-en línia -DATTINY = 13 -I .. -I ../ .. -I ../../ .. -fshort -enums -o blf-a6.o -c blf-a6.c
avr-gcc -Wall -g -Os -mmcu = attiny13 -fgnu89-en línia -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
Programa: 1022 bytes (99,8% complet)
dades: 13 bytes (20,3% complet)
Els equips ja estan optimitzats de mida, així que si s’escriu que estan més del 100% complets, prova de suprimir
#define FULL_BIKING_STROBE

Línia 125 encanteris petits bicicleta llum estroboscópica. Si no n'hi ha prou, caldrà tallar una altra cosa.
Quan s'ha completat la compilació, la carpeta ha de contenir un fitxer anomenat blf-a6.hex. Aquest és el codi compilat, preparat per al firmware.

Desmuntar la llanterna.
Desenrossegueu el far de la llanterna. Hi ha dues connexions de cargol. El que està més a prop del cos de la llanterna fixa el reflector i el LED, i el que està més a prop del centre fixa la placa. Necessitem una mitjana.

Al seu interior es pot veure un anell en forma de molla i dos forats al llarg de les vores. Introduïu pinces / alicates fines / tisores als forats i gireu-les en sentit antihorari.

Un cop s’hagi tret l’anell, tindreu accés al tauler. Encara es fixa amb dos fils, així que vés amb compte. Estan torçades entre si, de manera que gireu el tauler fins que els cables quedin fluixos. A continuació, gireu el tauler. Cal que el xip amb la inscripció "TINY13A" fos més accessible.

Si els cables són curts i no funciona, haureu de retirar el tauler.






Connexió.
Ara necessiteu preparar el tauler per al firmware.
L’assistent utilitza SOIC8 per connectar el xip ATtiny13 i el programador.
Com llampar una llanterna per canviar els modes de funcionament



Vegeu la foto mentre l'assistent crea la connexió. Observeu la línia vermella a la segona figura.

Si utilitzeu el programador USB ASP V2.0, heu de connectar-lo així:
Pin 1 a ATtiny13 - Pin 5 a USB ASP (restablir)
Pin 4 a ATtiny13 - Pin 10 a USB ASP (Terra)
Pin 5 a ATtiny13 - Pin 1 a USB ASP (MOSI)
Pin 6 a ATtiny13 - Pin 9 a USB ASP (MISO)
Pin 7 a ATtiny13 - Pin 7 a USB ASP (SCK)
Pin 8 a ATtiny13 - Pin 2 a USB ASP (VCC)

Si utilitzeu Arduino, com l'assistent, seguiu aquests passos:
Obriu l’ID Arduino i assegureu-vos que el vostre Arduino està connectat a l’ordinador. Cerqueu el croquis ISP a Fitxer> Exemples> 11.ArduinoISP> ArduinoISP i pengeu-lo a Arduino. A continuació, connecteu ATtiny13 a ell de la següent manera:
Pin 1 a ATtiny13 - Pin 10 a Arduino (restablir)
Pin 4 on ATtiny13 - GND a Arduino (Terra)
Pin 5 a ATtiny13 - Pin 11 a Arduino (MOSI)
Pin 6 a ATtiny13 - Pin 12 a Arduino (MISO)
Pin 7 a ATtiny13 - Pin 13 a Arduino (SCK)
Pin 8 a ATtiny13 - VCC / 5V o 3.3V a Arduino (preferit 5V)

Firmware.
Pas 5: feu clic a la pantalla
Per al firmware, heu d’instal·lar AVRDUDE. Per comprovar si això funciona amb Arduino, l'assistent escriu un ordre:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Si això funciona, aneu a la carpeta buida i registreu-vos:
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 -Ufusió: r: hfuse-dump.hex: i
Feu una còpia de seguretat del firmware existent. Per parpadejar, des de la carpeta amb el blf-a6.hex modificat s’inicia:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -u -Uflash: w: blf-a6.hex -Ufusible: w: 0x75: m -Ufus: w: 0xFF: m
Cal especificar stk500v1 com a programador i especificar el port i la velocitat de transferència de dades. Si utilitzeu Arduino i teniu dubte, intenteu desconnectar ATtiny13 de Arduino i pengeu el croquis a l'ID Arduino amb aquesta configuració. Això no funcionarà, però esbrinarà quin ordre s'utilitza a la finestra de la consola. A continuació, podeu copiar els atributs a l'ordre AVRDUDE.

Si utilitzeu un programador USB ASP, executeu:
avrdude -v -p attiny13 -c usbasp -n
Per veure si funciona:
avrdude -v -p attiny13 -c usbasp -u -Uflash: r: flash-dump.hex: i -Ueeprom: r: eeprom-dump.hex: i -Ufuse: r: lfuse-dump.hex: i -Ufuse: r: hfuse-dump.hex: i
Realitzar una còpia de seguretat:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ufuse: w: 0x75: m -Ufuse: w: 0xFF: m
Parpellejar:
-Uflash: w: blf-a6.hex. Si el vostre fitxer és diferent, substituïu blf-a6.hex pel vostre nom de fitxer.
-Utilització: w: 0x75: m i -Ufusible: w: 0xFF: m
Si es produeix un error, això vol dir que el fitxer d'imatge és massa gran per adaptar-lo al xip i hauràs de suprimir una part del codi. Si tot és normal, s'han de mostrar alguns indicadors de progrés i, a continuació, les paraules "avrdude done. Gràcies".
Un cop heu encès el xip, munteu la llanterna i comproveu si funciona.
La pregunta \ topic es publica automàticament al social. xarxa de llocs: estigueu atents a les respostes:

Apte per al tema

Temes relacionats

Afegeix un comentari

    • somriuresomriuxaxad'acordno ho séyahoonea
      capratllarximplesísí-síagressiusecret
      ho sentoballarballar2ballar3perdóajudarbegudes
      pararamicsbébondatxiuletswoonllengua
      fumaraplaudintcranideclararderisiudon-t_mentiondescarregar
      calorirritariure1mdareuniómosquitnegatiu
      no_icrispetescastigarllegirporespantosbuscar
      burlargràcies_youaixòto_clueumnikagutd'acord
      dolentbeeeblack_eyeblum3ruborpresumirl'avorriment
      censuradaplaersecret2amenaçarvictòriatusun_bespectacled
      xocrespectlolpreveurebenvingudaKrutoyja_za
      ja_dobryiajudantne_huliganne_othodifludprohibicióa prop

Us aconsellem que llegiu:

Doneu-lo al telèfon intel·ligent ...