» ipler » Onarım, modernizasyon »Çalışma modlarını değiştirmek için bir el feneri nasıl yanıp söner

Çalışma modlarını değiştirmek için bir el feneri nasıl yanıp söner


Bu malzemenin yazarı, el feneri BLF A6'nın normal çalışma modlarını beğenmedi. Sonra modunu ayarlayarak el fenerinin yazılım kısmını yanıp sönmeye karar verdi. Anlaşıldığı gibi, bu o kadar basit değil, ürün yazılımı ve pinouts hakkında minimum bilgi var ve onu yavaş yavaş toplamak zorunda kaldı. Kaybolmaması için başkalarına yardım etmeye ve her şeyi bir makalede düzenlemeye karar verdi.

Yani, iş için aşağıdakilere ihtiyacınız olacak:
El feneri BLF A6 (muhtemelen bu ATtiny tabanlı diğer el fenerleri ile çalışacaktır).
Cımbız / ince pense / küçük makas.
Ürün yazılımı için, tercihen Linux dağıtımı olan bir bilgisayar.
USB ASP / Programcı Arduino / AVR programlamanın yapabileceği bir şey (USB ASP programcısı daha iyidir, ancak sihirbaz Arduino'yu kullandı).
Yüksek hızlı Demiryolu-Rayı amplifikatörü [SOIC-8] (onsuz yapabilirsiniz, ancak çok rahatsız edici).
Bağlantı için geliştirme kartı ve jumper kabloları.

Firmware.
BLF A6 (ve diğer birçok el feneri) yazılımı mevcuttur buraya. Bu konuda bir tartışma forumu bulunmaktadır bağlantı.
"Bzr branch lp: flashlight-firmware" aramasını çalıştırarak firmware'i indirebilirsiniz. El feneri firmware / ToyKeeper / blf-a6 klasörüne ihtiyacınız var. Derlenmiş bir dosya içerir. hex, bellenim için hazır (blf-a6.hex) ve ayrıca değiştirilebilen C kodu (blf-a6.c). Stok ürün yazılımını flash etmek istiyorsanız, bir sonraki adımı atlayabilir ve blf-a6.hex dosyasını kullanabilirsiniz. Bu depodaki diğer bazı yazılımlar da muhtemelen işe yarayacaktır.

Ürün yazılımını değiştirin.
Dikkat Anlamları bozmamak için semboller tercüme edilmeden verilir.
Tercih ettiğiniz metin düzenleyicide veya IDE'de blf-a6.c dosyasını açın. En ilginç çizgiler 94 ve 109 hatları arasındaki mod gruplarıdır.
// Mod grubu 1
#define NUM_MODES1 7
// Büyük devre için PWM seviyeleri (FET veya Nx7135)
#define MODESNx1 0,0,0,7,56,137,255
// Küçük devre için PWM seviyeleri (1x7135)
#define MODES1x1 3,20,110,255,255,255,0
// Örneğim: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32)
// Krono örneği: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78)
// Manker2: 2 = 21, 3 = 39, 4 = 47, ... 6? = 68
// Her mod için PWM hızı
#define MODES_PWM1 FAZ, HIZLI, HIZLI, HIZLI, HIZLI, HIZLI, FAZ
// Mod grubu 2
#define NUM_MODES2 4
#define MODESNx2 0,0,90,255
#define MODES1x2 20.230.255,0
#define MODES_PWM2 HIZLI, HIZLI, HIZLI, FAZ

Her grup için MODESN, FET için kullanılan PWM değeridir ve MODES1, her modda 7135 için kullanılan PWM değeridir. Sayı 0 ila 255 arasındadır ve ışığın parlaklığına karşılık gelir. Daha fazla bilgi
buraya. ("Mod kontrolü:" seçeneğine gidin) Master, PWM hızının ne olduğundan emin değil.Kimse biliyorsa, bana yorumlarda anlat. Bir alan etkili transistör 7135'ten daha fazla ışık üretebilir, ancak 7135 ışık seviyesini pilin ömrü boyunca aşağı yukarı aynı tutarken, alan etkili bir transistör kullanırken, pil bittiğinde ışık kararır.

Burada PWM değerlerini beğenimize modlar oluşturmak için ayarlayabiliriz. Modların sayısını da değiştirebilirsiniz, ancak master dört moda ihtiyaç duyduğu için bunu yapmadı ve bu ikinci gruptaki sayıdır. Daha karanlık bir ay ışığı rejimi istedi ve bu yüzden ilkini 0 / 1'e ayarladı. Ayrıca turbo modunu biraz anlamsız olarak görüyor, bu yüzden onu yedi moddan oluşan bir grupta altıncı moda eşdeğer olan 137/255 ile değiştirdim.

İhtiyacınız olan koda sahip olduğunuzda, kodu bir .hex dosyasında derlemeniz gerekir. En azından gcc-avr ve avr-libc'ye ihtiyacınız var. Sorun yaşarsanız, benioku dosyasındaki diğer bağımlılıklara bakın. Havuz bir derleme betiği içerir, bu yüzden tek yapmanız gereken çalıştırmaktır:
../../bin/build.sh 13 blf-a6
blf-a6 klasöründe. ../../Bin/build.sh betiğidir. Şekil 13 ATtiny13 için olduğunu ve blf-a6 bunun BLF A6 için olduğunu gösterir.
avr-gcc -Duvar -g -Os -mmcu = attiny13 -c -std = gnu99 -fgnu89-satır içi -DATTINY = 13 -I .. -I ../ .. -I ../../ .. -fısalor -enumlar -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 = ayır, yükle --change-section-lma .eeprom = 0 - değişiklik yok uyarısı -O ihex blf-a6.elf blf-a6.hex
Program: 1022 bayt (% 99,8 Tam)
veri: 13 bayt (% 20.3 Tam)
Takımlar zaten boyut olarak optimize edilmiştir, bu yüzden% 100'den fazla dolu oldukları yazılırsa, silmeyi deneyin
#define FULL_BIKING_STROBE

125. satır küçük büyüler devir flaş ışığı. Bu yeterli değilse, başka bir şeyin kesilmesi gerekecektir.
Derleme tamamlandığında, klasör blf-a6.hex adlı bir dosya içermelidir. Bu derlenmiş kod, bellenim için hazır.

El fenerinin sökülmesi.
El fenerinin farını sökün. İki vida bağlantısı vardır. El feneri gövdesine daha yakın olan, reflektörü ve LED'i sabitler ve ortaya daha yakın olan ise kartı sabitler. Bir ortalamaya ihtiyacımız var.

İçinde bir yay ve kenarlar boyunca iki delik bulunan bir segman göreceksiniz. Deliklere cımbız / ince pense / makas yerleştirin ve saat yönünün tersine döndürün.

Halka çıkarıldıktan sonra panoya erişebileceksiniz. Hala iki kablo ile bağlı, bu yüzden dikkatli olun. Birlikte bükülürler, bu nedenle tahtalar teller gevşeyene kadar döndürün. Ardından kartı ters çevirin. "TINY13A" yazıtlı çipin daha erişilebilir olması gerekir.

Kablolar kısaysa ve çalışmazsa, kartı çıkarmanız gerekir.






Bağlantı.
Şimdi panoyu bellenim için hazırlamanız gerekiyor.
Sihirbaz, ATtiny13 yongasını ve programlayıcıyı bağlamak için SOIC8 kullanır.
Çalışma modlarını değiştirmek için bir el feneri nasıl yanıp söner



Sihirbaz bağlantı kurarken fotoğrafı görün. İkinci şekildeki kırmızı çizgiye dikkat edin.

USB ASP V2.0 programlayıcı kullanıyorsanız, bunu şu şekilde bağlamanız gerekir:
ATtiny13 üzerindeki Pin 1 - USB ASP üzerindeki Pin 5 (sıfırlama)
ATtiny13 üzerindeki Pin 4 - USB ASP üzerindeki Pin 10 (Toprak)
ATtiny13 üzerindeki Pin 5 - USB ASP üzerindeki Pin 1 (MOSI)
ATtiny13 üzerindeki Pin 6 - USB ASP üzerindeki Pin 9 (MISO)
ATtiny13 üzerindeki Pin 7 - USB ASP üzerindeki Pin 7 (SCK)
ATtiny13 üzerindeki Pin 8 - USB ASP üzerindeki Pin 2 (VCC)

Sihirbaz gibi Arduino kullanıyorsanız, aşağıdaki adımları izleyin:
Arduino IDE'yi açın ve Arduino'nuzun bilgisayara bağlı olduğundan emin olun. Dosya> Örnekler> 11.ArduinoISP> ArduinoISP'de ISS çizimini bulun ve Arduino'ya yükleyin. Ardından ATtiny13'ü aşağıdaki gibi bağlayın:
ATtiny13 üzerindeki pim 1 - Arduino'daki pim 10 (sıfırlama)
ATtiny13 üzerindeki pim 4 - Arduino'da GND (Zemin)
ATtiny13 üzerindeki Pin 5 - Arduino üzerindeki Pin 11 (MOSI)
ATtiny13 üzerindeki Pin 6 - Arduino üzerindeki Pin 12 (MISO)
ATtiny13 üzerindeki Pin 7 - Arduino üzerindeki Pin 13 (SCK)
ATtiny13 - Pin 8, Arduino üzerinde VCC / 5V veya 3.3V (5V tercih edilir)

Firmware.
5.Adım: Flash
Ürün yazılımı için AVRDUDE yüklemeniz gerekir. Bunun Arduino ile çalışıp çalışmadığını kontrol etmek için sihirbaz bir komut yazar:
avrdude -v -p attiny13 -c stk500v1 -P / dev / ttyUSB0 -b 19200 -n
Bu işe yararsa, boş klasöre gidin ve kaydolun:
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 -Uffuse: r: hfuse-dump.hex: i
Mevcut bellenimin yedek bir kopyasını oluşturun. Yanıp sönmek için, değiştirilen blf-a6.hex içeren klasörden başlar:
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
Bir programcı olarak stk500v1'i belirtmeniz ve bağlantı noktası ile veri aktarım hızını belirtmeniz gerekir. Arduino kullanıyorsanız ve şüpheniz varsa, ATtiny13'ün Arduino ile olan bağlantısını kesmeyi deneyin ve çizimi kullanarak Arduino IDE'ye yükleyin bu ayarlar. Bu işe yaramaz, ancak konsol penceresinde hangi komutun kullanıldığını öğrenirsiniz. Ardından, öznitelikleri AVRDUDE komutuna kopyalayabilirsiniz.

Bir USB ASP programcısı kullanıyorsanız, şunu çalıştırın:
avrdude -v -p attiny13 -c usbasp -n
Bunun işe yarayıp yaramadığını görmek için:
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 -Uhfuse: r: hfuse-dump.hex: i
Yedekleme yapın:
avrdude -v -p attiny13 -c usbasp -u -Uflash: w: blf-a6.hex -Ulfuse: w: 0x75: m -Uffuse: w: 0xFF: m
Yanıp sönmek için:
-Uflash: w: blf-a6.hex. Farklıysa blf-a6.hex dosyasını dosya adınızla değiştirin.
-Ulfuse: w: 0x75: m ve -Uhfuse: w: 0xFF: m
Bir hata oluşursa, bu görüntü dosyasının yongaya sığmayacak kadar büyük olduğu ve kodun bir kısmını silmeniz gerektiği anlamına gelir. Her şey normalse, bazı ilerleme göstergeleri görüntülenmeli ve ardından "ortalama tamamlandı. Teşekkür ederim" ifadesi görüntülenmelidir.
Çipi çaktıktan sonra, el fenerini birleştirin ve çalışıp çalışmadığına bakın.
Question \ topic otomatik olarak sosyal medyada yayınlanır. site ağı - yanıtlar için bizi izlemeye devam edin:

Konu için uygun

İlgili konular

Yorum ekle

    • gülümsegülümsemelerxaxatamamdontknowyahoonea
      patronçizikaptalevetevet-evetagresifgizli
      üzgünümdansdance2dance3pardonyardımiçecekler
      Durarkadaşlariyigoodgooddüdükbaygınlıkdil
      dumanzırıltıcraybeyanalaycıDon-t_mentionindir
      ısıöfkelilaugh1mdatoplantımoskingnegatif
      Not_ipatlamış mısırcezalandırmakokumakkorkutmakkorkutuyorarama
      alaythank_youbuto_clueumnikakutanlaşmak
      kötübeeeblack_eyeblum3kızarmakövünçcan sıkıntısı
      sansürlüşakasecret2tehdit etmekzaferyusun_bespectacled
      shokrespektlolPrevedkarşılamaKrutoyya_za
      ya_dobryiyardımcıne_huliganne_othodiFludyasakyakın

Okumanızı tavsiye ederiz:

Akıllı telefon için verin ...