Satura rādītājs:

Pielāgotas programmaparatūras mirgošana ar BLF A6 lukturīti: 5 soļi
Pielāgotas programmaparatūras mirgošana ar BLF A6 lukturīti: 5 soļi

Video: Pielāgotas programmaparatūras mirgošana ar BLF A6 lukturīti: 5 soļi

Video: Pielāgotas programmaparatūras mirgošana ar BLF A6 lukturīti: 5 soļi
Video: Видео ПРОЕКТОР ДЛЯ ИГР!!! VIVICINE K3 на базе ANDROID 9.0 #vivicine 2024, Jūlijs
Anonim
Pielāgotas programmaparatūras mirgošana ar BLF A6 lukturīti
Pielāgotas programmaparatūras mirgošana ar BLF A6 lukturīti

Es nesen saņēmu BLF A6. Tas ir ļoti jauki, bet man nepatīk neviena no noklusējuma režīmu grupām, tāpēc es modificēju programmaparatūru, lai izmantotu vēlamos spilgtumus. Informāciju bija grūti atrast, tāpēc visu iemācīto ievietoju šeit sev un citiem.

Piegādes

BLF A6 (tas droši vien darbosies ar citiem lukturīšiem, kuru pamatā ir ATtiny)

Pincete / plānas knaibles / mazas šķēres / kaut kas, lai atvienotu vadītāja dēļa stiprinājuma gredzenu

Dators, ar kuru zibspuldze, vēlams palaist Linux izplatīšanu

USB ASP programmētājs / Arduino / kaut kas, kas var veikt AVR programmēšanu (acīmredzot ir ieteicams USB ASP programmētājs, bet es izmantoju Arduino)

SOIC8 klips (bez tā var iztikt, bet tas ir ļoti viltīgs un nav ieteicams)

(pēc izvēles) Maizes dēļa un/vai džemperu vadi, lai atvieglotu savienošanu

1. darbība: lejupielādējiet programmaparatūru

BLF A6 (un daudzu citu lukturīšu) programmaparatūra ir pieejama šeit. Par to autors runā šeit. Jūs varat to lejupielādēt, palaižot:

bzr filiāle lp: ~ toykeeper/flashlight-firmware/blf-a6-final

terminālī. (iespējams, būs jāinstalē bzr)

Piezīme: iepriekšējā šīs pamācības rediģēšanas vietā es izmantoju “bzr branch lp: flashlight-firmware”. Kopš tā laika esmu uzzinājis, ka tas lejupielādē novecojušu versiju ar nepareizām izslēgšanas laika kondensatora vērtībām, padarot pogu nospiestu nepatīkami ilgi. (pateicoties šim pavedienam Reddit)

Vēlamā mape ir blf-a6-final/ToyKeeper/blf-a6. Tajā ir apkopots.hex fails, kas ir gatavs mirgošanai (blf-a6.hex), un C kods, kuru varat mainīt. (blf-a6.c) Ja vēlaties aktivizēt akciju programmaparatūru, varat izlaist nākamo soli un vienkārši izmantot blf-a6.hex. Iespējams, darbosies arī daži citi šīs krātuves programmaparatūras veidi.

2. darbība: modificējiet programmaparatūru

Atveriet blf-a6.c vēlamajā teksta redaktorā vai IDE. Visinteresantākās līnijas ir režīmu grupas starp 116. un 131. rindu. Tās izskatās šādi:

// 1. režīma grupa #definē NUM_MODES1 7 // PWM līmeņus lielajai ķēdei (FET vai Nx7135) #definējiet MODESNx1 0, 0, 0, 7, 56, 137, 255 // PWM līmeņi mazajai ķēdei (1x7135) # definēt MODES1x1 2, 20, 110, 255, 255, 255, 0 // Mans paraugs: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono paraugs: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Manker2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // PWM ātrums katram režīmam #define MODES_PWM1 PHASE, FAST, FAST, FAST, FAST, FAST, PHASE // 2. režīma grupa #define NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #define MODES1x2 20, 230, 255, 0 #define MODES_PWM2 FAST, FAST, FAST, PHASE

Katrai grupai MODESN ir PWM vērtība, ko izmanto FET, un MODES1 ir PWM vērtība, kas izmantota 7135 katrā režīmā. Skaitlis ir no 0 līdz 255 un atbilst gaismas spilgtumam. Vairāk informācijas šeit. (ritiniet uz leju līdz "Režīma regulēšana:") Es neesmu pārliecināts, kāds ir PWM ātrums. Ja kāds zina, pastāstiet man komentāros. FET var radīt vairāk gaismas nekā 7135, bet 7135 saglabā gaismas līmeni vairāk vai mazāk nemainīgu visu akumulatora darbības laiku, bet FET kļūst tumšāks, kad izlādējas akumulators.

Šeit jūs varat pielāgot PWM vērtības, lai radītu režīmus pēc jūsu vēlmēm. Jūs, iespējams, varat mainīt arī režīmu skaitu, bet es to neesmu izmēģinājis, jo es gribēju četrus režīmus, kas, iespējams, ir otrās grupas numurs. Es gribēju tumšāku mēness gaismas režīmu, tāpēc pirmo iestatīju uz 0/1, un man šķiet, ka turbo režīms ir mazliet bezjēdzīgs, tāpēc es to nomainīju ar 137/255, kas ir līdzvērtīgs sešu režīmu grupai septiņu režīmu grupā. Jūs, iespējams, varat mainīt pārējo kodu, bet es to neesmu mēģinājis.

Kad esat ieguvis vajadzīgo kodu, tas jāapkopo.hex failā. Vismaz jums ir nepieciešami gcc-avr un avr-libc. Ja rodas problēmas, apskatiet citas programmaparatūras lasīšanas atkarības. Repozitorijā ir iekļauts būvēšanas skripts, taču es nevarēju to panākt. Tā vietā es lejupielādēju veco versiju ar

bzr filiāle lp: zibspuldzes programmaparatūra

un nokopēju veco uzbūves skriptu (lai es varētu ķerties pie darba) pār jauno. Tad es skrēju:

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

mapē blf-a6. (vajadzētu būt labākam veidam, kā to izdarīt)../../bin/build.sh izsauc skriptu, 13 norāda, ka tā tiek veidota ATtiny13, un blf-a6 norāda, ka tas ir paredzēts BLF A6. (duh) Tam vajadzētu pateikt, kādas komandas tas darbojas, un sniegt jums rezultātu. Manējais izskatās šādi:

avr -gcc -Siena -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-bez brīdinājuma par izmaiņām -O ihex blf-a6.elf blf-a6.hex Programma: 1022 baiti (99,8% pilna)) Dati: 13 baiti (20,3% pilna)

Komandas jau ir optimizētas izmēram, tādēļ, ja teikts, ka tā ir vairāk nekā 100% pilna, mēģiniet komentēt

#define FULL_BIKING_STROBE

147. rindā, lai izmantotu mazāko minimālo riteņbraukšanas strobe. Ja tas joprojām neder, iespējams, jums kaut kur būs jānoņem vairāk kodu. Kad kompilācija ir pabeigta, mapē jābūt failam ar nosaukumu blf-a6.hex. Šis ir jūsu apkopotais kods, kas ir gatavs mirgošanai.

3. solis: izjauciet lukturīti

Izjauciet lukturīti
Izjauciet lukturīti
Izjauciet lukturīti
Izjauciet lukturīti
Izjauciet lukturīti
Izjauciet lukturīti

Atskrūvējiet spuldzes galu pretēji pulksteņrādītāja virzienam. Šeit ir divi skrūvju savienojumi. Tas, kas atrodas tuvāk lukturīša spuldzes galam, atver atstarotāju un gaismas diodi, un tas, kas atrodas tuvāk vidum, atver vadītāja dēli. Jūs vēlaties, lai tas būtu tuvāk vidum.

Iekšpusē vajadzētu redzēt akumulatora atsperi un fiksējošo gredzenu ar diviem caurumiem. Ievietojiet pinceti / plānās knaibles / šķēres caurumos un pagrieziet tos pretēji pulksteņrādītāja virzienam. Tas ir diezgan stīvs, un divu atsevišķu objektu izmantošana, iespējams, nedos jums pietiekami daudz sviras. Es izmantoju šķēres Šveices armijas nazim.

Kad esat izņēmis gredzenu, atbrīvojiet vadītāja paneli. Tas joprojām ir piestiprināts ar diviem vadiem, tāpēc esiet piesardzīgs. Tie ir savīti kopā, tāpēc pagrieziet dēli vienā vai otrā veidā, līdz vadi atslābinās. Kad jums ir pietiekami daudz rīcības brīvības, pagrieziet dēli. Jūs to vēlaties, lai mikroshēma ar uzrakstu “TINY13A” būtu augstāk un būtu pieejamāka. Ja tas atrodas nepareizajā pusē, pagrieziet to citā virzienā. Ielieciet atsperi zem sāniem. Tas īslaicīgi saglabās to vietā un atvieglos piekļuvi mikroshēmai. Ja jums ir problēmas ar šo, jūs, iespējams, varat atskrūvēt otru savienojumu un atkausēt abus vadus no otras puses, lai jūs varētu pilnībā noņemt plāksni, bet es to neesmu mēģinājis.

4. darbība. Pievienojiet mirgojošu aparatūru

Pievienojiet mirgojošu aparatūru
Pievienojiet mirgojošu aparatūru
Pievienojiet mirgojošu aparatūru
Pievienojiet mirgojošu aparatūru
Pievienojiet mirgojošu aparatūru
Pievienojiet mirgojošu aparatūru

Tagad jūs izmantojat SOIC8 klipu, lai savienotu ATtiny13 mikroshēmu un savu programmētāju. Ar manu SOIC8 klipu, ja man ir sarkanais vads abos galos pa kreisi, tapas rinda man tuvāk skavas galā atbilst tapas rindai, kas man ir tuvāk savienotāja galā, kad savienotājs ir vērsts uz leju. (skatiet manu super māksliniecisko diagrammu) Šī rokasgrāmata iesaka izmantot USB ASP V2.0 programmētāju. Ja to darāt, pievienojiet to šādi:

  • Piespraudiet ATtiny13 1. tapu līdz USB ASP 5. tapai (atiestatīt)
  • Piespraudiet ATtiny13 taustiņu 4 līdz USB ASP 10. kontaktam (zemējums)
  • Piespraudiet ATtiny13 taustiņu 5 līdz USB ASP (MOSI) 1. tapai
  • Piespraust ATtiny13 6. taustiņu līdz USB ASP (MISO) 9. tapai
  • Piespraudiet ATtiny13 7. tapu uz USB ASP (SCK) 7. tapu
  • Piespraudiet ATtiny13 8. kontaktu līdz 2. kontaktam USB ASP (VCC)

Ja, tāpat kā es, jūs izmantojat Arduino, jums ir nedaudz vairāk jāsagatavojas. Izpildiet šīs rokasgrāmatas nulles un otro darbību:

Atveriet Arduino IDE un pārliecinieties, vai jūsu Arduino ir savienots ar datoru. Atrodiet ISP skici sadaļā Fails> Piemēri> 11. ArduinoISP> ArduinoISP un augšupielādējiet to savā Arduino. Pēc tam pievienojiet ATtiny13 tam šādi:

  • Piespraudiet ATtiny13 1. tapu līdz Arduino 10. tapai (atiestatīt)
  • 4. pin uz ATtiny13 līdz GND uz Arduino (zeme)
  • Piespraudiet ATtiny13 tapu 5 līdz Arduino (MOSI) 11. tapai
  • ATtiny13 piespraude 6 līdz Arduino (MISO) tapai 12
  • 7. tapas uz ATtiny13 līdz 13. tapa uz Arduino (SCK)
  • Pin 8 uz ATtiny13 līdz VCC / 5V / 3.3V uz Arduino (jebkuram vajadzētu strādāt, bet 5V ir uzticamāks) (VCC)

Es arī instalēju aparatūras pakotni, bet tas, iespējams, nebija nepieciešams. Ja rodas šaubas, izmēģiniet to. Tas nekaitēs. Bet nededziniet sāknēšanas programmu, jo tā, iespējams, sabojās jūsu lukturīti.

5. darbība

Lai atjauninātu programmaparatūru, jums jāinstalē AVRDUDE. Lai pārbaudītu, vai tas darbojas ar manu Arduino, es palaižu:

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

Ja tas darbojas, es pārvietoju uz tukšu mapi un palaižu:

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 -izgāztuve.hex: i -Uhfuse: r: hfuse -dump.hex: i

Lai izveidotu esošās programmaparatūras dublējumu. Un, lai to zibspuldzētu, no mapes ar modificēto blf-a6.hex es palaistu:

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

Kādu iemeslu dēļ man kā programmētājam jānorāda stk500v1, un tas nedarbojās, ja vien nenorādīju portu un bodu pārraides ātrumu. Ja izmantojat Arduino un šaubāties, mēģiniet atvienot savu ATtiny13 no Arduino un augšupielādēt skici Arduino IDE, izmantojot šeit norādītos iestatījumus. Tas neizdosies, taču tam vajadzētu norādīt, kādu komandu tas izmanto konsoles logā. Atribūtus varat kopēt savā komandā AVRDUDE.

Ja izmantojat USB ASP programmētāju, palaidiet:

avrdude -v -p attiny13 -c usbasp -n

Lai redzētu, vai tas darbojas, un:

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

Lai izveidotu dublējumu un:

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

Lai to uzplaiksnītu.

-Uflash: w: blf-a6.hex attiecas uz mirgojošo failu. Aizstājiet blf-a6.hex ar faila nosaukumu, ja tas atšķiras.

-Ulfuse: w: 0x75: m un -Uhfuse: w: 0xFF: m ir drošinātāji. Jūsu var atšķirties, tāpēc vēlreiz pārbaudiet vērtības zibspuldzes-programmaparatūrā/bin/flash-tiny13-fuses.sh.

Ja tas rada kļūdu ārpus diapazona, tas nozīmē, ka attēls ir pārāk liels, lai ietilptu mikroshēmā, un jums ir jānoņem daļa koda. Ja tas veiksmīgi mirgo, tam vajadzētu parādīt dažas progresa joslas, pēc tam sakiet "avrdude done. Paldies."

Ja uzraksts “nederīgs ierīces paraksts” un jūsu programmētāja džemperis ir iestatīts uz 3.3v, mēģiniet to iestatīt uz 5v.

Kad esat to mirgojis, salieciet lukturīti un pārbaudiet, vai tas darbojas. Mine darīja, bet laiks ir izslēgts uz kādu ̶r̶e̶a̶s̶o̶n̶.̶ ilgākā presēm ir jābūt apmēram trīs sekundes, nevis 1.5. Es nezinu, ja šejienes kaut ko darīt ar Arduino, vai tāpēc Esmu izmantojis nepareizā Uzstādījumi ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ ja jums ir kāda ideja, ̶ let me know in ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Edit: Es to izlaboju. (skatiet 1. darbību)

Ieteicams: