Агуулгын хүснэгт:

Гаалийн програмыг BLF A6 гар чийдэн рүү асаах: 5 алхам
Гаалийн програмыг BLF A6 гар чийдэн рүү асаах: 5 алхам

Видео: Гаалийн програмыг BLF A6 гар чийдэн рүү асаах: 5 алхам

Видео: Гаалийн програмыг BLF A6 гар чийдэн рүү асаах: 5 алхам
Видео: Загрузите БЕСПЛАТНЫЕ приложения и заработайте $844+ уже ... 2024, Арваннэгдүгээр
Anonim
Гаалийн програмыг BLF A6 гар чийдэн рүү асааж байна
Гаалийн програмыг BLF A6 гар чийдэн рүү асааж байна

Би саяхан BLF A6 авсан. Энэ нь маш сайхан, гэхдээ би үндсэн горимын аль ч бүлэгт дургүй байдаг тул би өөрийн хүссэн тод байдлыг ашиглахын тулд програмыг өөрчилсөн. Мэдээллийг олоход хэцүү байсан тул энд сурч мэдсэн бүхнээ өөртөө болон бусдад зориулан тавьж байна.

Хангамж

BLF A6 (энэ нь ATtiny дээр суурилсан бусад гар чийдэнтэй ажиллах болно)

Хясаа / нимгэн бахө / жижиг хайч / жолоочийн бэхэлгээний бөгжийг тайлах зүйл

Линукс түгээлтийг ажиллуулах нь зүйтэй компьютер

USB ASP програмист / Arduino / AVR програмчлах чадвартай зүйл (USB ASP програмистыг санал болгож байгаа бололтой, гэхдээ би Arduino ашигласан)

SOIC8 клип (үүнийг хийхгүйгээр хийх боломжтой, гэхдээ маш хуурамч бөгөөд огт зөвлөдөггүй)

(заавал биш) Холболтыг хөнгөвчлөхийн тулд талхны самбар ба/эсвэл холбогч утас

Алхам 1: Firmware татаж авах

BLF A6 (болон бусад олон гар чийдэн) програм хангамжийг эндээс авах боломжтой. Зохиогч энд энэ тухай ярьж байна. Та үүнийг ажиллуулж татаж авах боломжтой:

bzr салбар lp: ~ toykeeper/flashlight-firmware/blf-a6-final

терминал дээр. (та bzr суулгах хэрэгтэй байж магадгүй)

Тэмдэглэл: Энэхүү зааварчилгааны өмнөх засварын оронд би "bzr branch lp: flashlight-firmware" -ийг ашигласан. Энэ нь унтраах конденсаторын буруу утгатай хоцрогдсон хувилбарыг татаж авснаар товчлуурыг эвгүй удаан дардаг болохыг би мэдсэн. (Reddit дээрх энэ сэдвийн ачаар)

Таны хүссэн фолдер бол blf-a6-final/ToyKeeper/blf-a6 юм. Энэ нь анивчихад бэлэн болсон.hex файл (blf-a6.hex) болон таны өөрчилж болох С кодыг агуулдаг. (blf-a6.c) Хэрэв та хувьцааны програмыг анивчихыг хүсвэл дараагийн алхамыг алгасаад blf-a6.hex-ийг ашиглана уу. Тэр репозитор дахь бусад зарим програм хангамж бас ажиллах байх.

Алхам 2: Firmware -ийг өөрчлөх

Өөрийн дуртай текст засварлагч эсвэл IDE дээр blf-a6.c-ийг нээнэ үү. Хамгийн сонирхолтой мөрүүд нь 116 ба 131 шугамын хоорондох горимын бүлгүүд юм. Тэд дараах байдлаар харагдаж байна.

// Горимын бүлэг 1 #том хэлхээний хувьд NUM_MODES1 7 // ХОУХШ -ийн түвшинг тодорхойлно (FET эсвэл Nx7135) #MODESNx1 0, 0, 0, 7, 56, 137, 255 // жижиг хэлхээний ХОУ -ын түвшинг тодорхойлох (1x7135) # MODES1x1 2, 20, 110, 255, 255, 255, 0 -ийг тодорхойлох // Миний дээж: 6 = 0..6, 7 = 2..11, 8 = 8..21 (15..32) // Krono sample: 6 = 5..21, 7 = 17..32, 8 = 33..96 (50..78) // Манкер2: 2 = 21, 3 = 39, 4 = 47,… 6? = 68 // Горим бүрийн ХОУХ -ны хурдыг #тодорхойлох MODES_PWM1 ҮЕ, ХУРДАН, ШУУРХАЙ, ШУУРХАЙ, ШУУРХАЙ, ШУУРХАЙ, ҮЕД // Mode group 2 #NUM_MODES2 4 #define MODESNx2 0, 0, 90, 255 #Define MODES1x2 20, 230, 255, 0 #MODES_PWM2 FAST, FAST, FAST, PHASE -ийг тодорхойлох

Бүлэг бүрийн хувьд MODESN нь FET -д ашиглагддаг ХОУХ -ны утга бөгөөд MODES1 нь горим бүрт 7135 -д ашигладаг ХОУХ -ны утга юм. Энэ тоо нь 0 -ээс 255 хооронд байх бөгөөд гэрлийн гэрэлтэй тохирч байна. Дэлгэрэнгүй мэдээллийг эндээс авна уу. ("Горимын зохицуулалт:" руу гүйлгэн харна уу) ХОУХ -ны хурд яг хэд болохыг сайн мэдэхгүй байна. Мэддэг хүн байвал коммент хэсэгт хэлээрэй. FET нь 7135 -аас илүү их гэрэл үйлдвэрлэх боломжтой боловч 7135 нь батерейны ашиглалтын хугацаанд гэрлийн түвшинг бага багаар ижил түвшинд байлгадаг бол FET нь батерей дуусах тусам харанхуй болдог.

Энд та ХОУХШ -ийн утгыг тохируулж өөрт тохирсон горимуудыг гаргаж болно. Та бас горимуудын тоог өөрчилж магадгүй, гэхдээ би үүнийг хүссэнгүй, гэхдээ би хоёр горимд орсон дөрвөн горимыг хүссэн. Би харанхуй сарны гэрлийн горимыг хүсч байсан тул эхнийхийг нь 0/1 болгож, турбо горимыг ямар ч утгагүй гэж үзээд долоон горимын бүлгийн зургаа дахь горимтой дүйцүүлж 137/255 болгон сольсон. Шаардлагатай бол та кодын үлдсэн хэсгийг өөрчилж болно, гэхдээ би үүнийг туршиж үзээгүй байна.

Хүссэн кодоо авсны дараа та үүнийг.hex файл руу хөрвүүлэх ёстой. Наад зах нь танд gcc-avr ба avr-libc хэрэгтэй. Хэрэв танд асуудал байгаа бол firmware readme дахь бусад хамаарлыг хараарай. Уг репозиторт бүтээх скрипт орсон боловч би үүнийг ажиллуулж чадсангүй. Үүний оронд би хуучин хувилбарыг нь татаж авлаа

bzr салбар lp: гар чийдэн-firmware

мөн хуучин бүтээх скриптийг (миний ажилд орох боломжтой байсан) шинэ хувилбар дээр хуулсан. Дараа нь би гүйв:

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

blf-a6 фолдерт. (үүнийг хийх илүү сайн арга байх ёстой)..////bin/build.sh нь скриптийг дууддаг бөгөөд 13 нь ATtiny13-д зориулж бүтээж байгааг, blf-a6 нь BLF A6-д зориулагдсан болохыг зааж өгдөг. (duh) Энэ нь танд ямар команд ажиллаж байгааг хэлж, гаралтыг өгөх ёстой. Минийх иймэрхүү харагдаж байна:

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.cavr -gcc -Wall -g -Os -mmcu = attiny13 -fgnu89 -inline -o blf -a6.elf blf -a6.o avr -objcopy --set -section-flags =.eeprom = хуваарилалт, ачаалал-change-section-lma.eeprom = 0-Өөрчлөлт-анхааруулга -O ihex blf-a6.elf blf-a6.hex Хөтөлбөр: 1022 байт (99.8% Бүтэн)) Өгөгдөл: 13 байт (20.3% Бүрэн)

Тушаалууд нь аль хэдийн хэмжээгээр оновчтой болсон тул хэрэв энэ нь 100% -иас илүү дүүрсэн гэж үзвэл сэтгэгдлээ бичээд үзээрэй

#БҮТЭН_ДУГУЙЛАХ_ГҮРДЭЛЛЭХИЙГ тодорхойл

Хамгийн бага дугуй унах строб ашиглахын тулд 147 -р мөрөнд. Хэрэв энэ нь тохирохгүй хэвээр байвал та хаа нэгтээ өөр кодыг устгах хэрэгтэй болно. Хөрвүүлж дууссаны дараа фолдерт blf-a6.hex нэртэй файл байх ёстой. Энэ бол таны эмхэтгэсэн код бөгөөд анивчахад бэлэн байна.

Алхам 3: Гар чийдэнг задлах

Гар чийдэнг задлах
Гар чийдэнг задлах
Гар чийдэнг задлах
Гар чийдэнг задлах
Гар чийдэнг задлах
Гар чийдэнг задлах

Булцууны үзүүрийг цагийн зүүний эсрэг эргүүл. Энд хоёр шураг холбогч байна. Гэрлийн чийдэнгийн чийдэнгийн төгсгөлд ойртох тусгал нь гэрэл тусгагч болон LED, дунд хэсэгт ойртох нь жолоочийн самбарыг нээдэг. Та дунд нь ойртохыг хүсч байна.

Дотор нь та батерейны хавар, хоёр нүхтэй бэхэлгээний бөгжийг харах ёстой. Нүх рүү хясаа / нимгэн бахө / хайчаа хийж цагийн зүүний эсрэг эргүүлнэ. Энэ нь нэлээд хатуу бөгөөд хоёр тусдаа объектыг ашиглах нь танд хангалттай хөшүүрэг өгөхгүй байх. Би Швейцарийн армийн хутга дээр хайч хэрэглэсэн.

Бөгжөө авсны дараа жолоочийн самбарыг чөлөөл. Үүнийг хоёр утсаар холбосон хэвээр байгаа тул болгоомжтой байгаарай. Тэд хоорондоо мушгирсан тул утас сулрах хүртэл самбарыг нэг тийш эргүүлээрэй. Хангалттай чөлөөтэй болсны дараа самбарыг эргүүлээрэй. "TINY13A" бүхий чип нь илүү өндөр, илүү хүртээмжтэй байхыг хүсч байна. Хэрэв энэ нь буруу талтай бол түүнийг нөгөө тал руу нь эргүүлээрэй. Хажуугийн доор булаг шуу. Энэ нь үүнийг түр хадгалж, чип рүү ороход хялбар болгоно. Хэрэв танд асуудал байгаа бол та бусад холболтыг тайлж, нөгөө утсыг салгаж, самбарыг бүрэн салгаж болно, гэхдээ би үүнийг туршиж үзээгүй байна.

Алхам 4: Flashing Hardware -ийг холбоно уу

Flashing Hardware -ийг холбоно уу
Flashing Hardware -ийг холбоно уу
Flashing Hardware -ийг холбоно уу
Flashing Hardware -ийг холбоно уу
Flashing Hardware -ийг холбоно уу
Flashing Hardware -ийг холбоно уу

Одоо та SOIC8 клипийг ашиглан ATtiny13 чип болон програмистаа холбож байна. Миний SOIC8 хавчаарын хувьд, хэрэв би хоёр үзүүрийн зүүн талд улаан утастай бол хавчаарын төгсгөлд над руу ойртсон тээглүүрүүд нь холбогч доошоо харсан байхад холбогчийн үзүүрт ойртсон тээглүүрийн эгнээтэй тохирч байна. (Миний супер уран сайхны диаграмыг үзнэ үү) Энэхүү гарын авлагад USB ASP V2.0 програмист ашиглахыг зөвлөж байна. Хэрэв та үүнийг хийвэл дараах байдлаар холбоно уу.

  • ATtiny13 дээрх 1 -р зүүг USB ASP дээр 5 -р зүү болгох (дахин тохируулах)
  • ATtiny13 дээрх 4 -р зүүг USB ASP дээр 10 -р зүүгээр холбох (газар)
  • ATtiny13 дээрх 5 -р зүүг USB ASP (MOSI) дээр 1 -р зүүгээр холбоно уу.
  • ATtiny13 дээрх 6 -р зүүг USB ASP (MISO) дээр 9 -р зүүгээр холбоно уу.
  • ATtiny13 дээрх 7 -р зүүг USB ASP (SCK) дээр 7 -р зүүгээр холбоно уу.
  • ATtiny13 дээрх 8 -р зүүг USB ASP (VCC) дээр 2 -р зүүгээр холбоно уу.

Хэрэв та над шиг Arduino ашиглаж байгаа бол арай илүү бэлтгэл хийх хэрэгтэй. Энэхүү гарын авлагын тэг ба хоёр дахь алхамыг дагана уу.

Arduino IDE -ийг нээгээд Arduino таны компьютерт холбогдсон эсэхийг шалгаарай. ISP -ийн тоймыг File> Examples> 11.. ArduinoISP> ArduinoISP дээрээс олоод өөрийн Arduino -д байршуулна уу. Дараа нь ATtiny13 -ийг дараах байдлаар холбоно уу.

  • ATtiny13 дээрх 1 -р зүү Arduino дээр 10 -р зүү (дахин тохируулах)
  • ATtiny13 дээрх 4 -р зүүг Arduino дээрх GND руу холбоно уу (газар)
  • ATtiny13 дээрх 5 -р зүүг Arduino (MOSI) дээр 11 -р зүүгээр холбоно уу.
  • ATtiny13 дээрх 6 -р зүүг Arduino (MISO) дээр 12 -р зүүгээр холбоно уу.
  • ATtiny13 дээрх 7 -р зүү нь Arduino (SCK) дээрх 13 -р зүү юм.
  • Arduino дээрх ATtiny13 дээрх VCC / 5V / 3.3V -ийн 8 -р зүү (ямар ч ажиллах ёстой, гэхдээ 5V нь илүү найдвартай) (VCC)

Би бас тоног төхөөрөмжийн багцыг суулгасан боловч энэ нь шаардлагагүй байсан байх. Хэрэв эргэлзэж байвал туршиж үзээрэй. Энэ нь ямар ч хор хөнөөл учруулахгүй. Гэхдээ ачаалагчийг бүү шатаагаарай, учир нь энэ нь таны гар чийдэнг тоосго болгох болно.

Алхам 5: Үүнийг асаана уу

Програм хангамжийг асаахын тулд та AVRDUDE -ийг суулгах хэрэгтэй. Үүнийг миний Arduino дээр ажилладаг эсэхийг шалгахын тулд би дараах зүйлийг ажиллуулдаг.

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

Хэрэв энэ нь ажиллах юм бол би хаа нэгтээ хоосон хавтас руу шилжиж ажиллуулна уу.

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

Одоо байгаа програмыг нөөцлөхийн тулд. Үүнийг ажиллуулахын тулд blf-a6.hex файлыг өөрчилсөн фолдероос ажиллуулна уу.

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

Зарим шалтгааны улмаас би stk500v1 -ийг програмистаар зааж өгөх ёстой бөгөөд порт болон дамжуулалтын хурдыг зааж өгөөгүй л бол энэ нь ажиллахгүй байсан. Хэрэв та Arduino ашиглаж байгаа бөгөөд эргэлзэж байвал ATtiny13 -ийг Arduino -аас салгаад энд байгаа тохиргоог ашиглан Arduino IDE дээр ноорог байршуулж үзээрэй. Энэ нь бүтэлгүйтэх болно, гэхдээ консолийн цонхонд ямар командыг ашиглаж байгааг хэлэх ёстой. Та шинж чанаруудаа AVRDUDE тушаалдаа хуулж болно.

Хэрэв та USB ASP програмист ашиглаж байгаа бол дараахийг ажиллуулна уу.

avrdude -v -p attiny13 -c usbasp -n

Энэ нь ажилладаг эсэхийг харахын тулд:

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 -Uffuse: r: hfuse-dump.hex: i

Нөөцлөхийн тулд ба:

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

Үүнийг анивчихын тулд.

-Uflash: w: blf-a6.hex нь анивчиж буй файлыг хэлнэ. Хэрэв өөр бол blf-a6.hex-ийг өөрийн файлын нэрээр солино уу.

-Ulfuse: w: 0x75: m ба -Uhfuse: w: 0xFF: m нь гал хамгаалагч юм. Таных өөр байж магадгүй тул гар чийдэн-firmware/bin/flash-tiny13-fuses.sh дээрх утгыг дахин шалгаарай.

Хэрэв энэ нь хүрээнээс гадуур алдаа гаргавал энэ дүрс нь чип дээр багтахааргүй том хэмжээтэй тул та зарим кодыг устгах ёстой гэсэн үг юм. Хэрэв энэ нь амжилттай анивчсан бол ахиц дэвшилтийг харуулах ёстой бөгөөд дараа нь "avrdude дууссан. Баярлалаа" гэж хэлнэ үү.

Хэрэв "хүчингүй төхөөрөмжийн гарын үсэг" гэж бичигдсэн бөгөөд програмист дээрх холбогчийг 3.3v гэж тохируулсан бол 5v болгож тохируулаад үзээрэй.

Үүнийг анивчсаны дараа гар чийдэнгээ угсарч, ажиллаж байгаа эсэхийг шалгаарай. Уурхайн, харин The цаг хугацааны байна Off зарим цаанаа The урт дарахад хэрэгтэй байх тухай гурван секунд оронд ̶1̶.̶5̶.̶ би суухад мэдэж байвал ̶i̶t̶'̶s̶ ямар нэг зүйл хийх нь The Arduino, эсвэл учир нь ̶I̶'̶v̶e̶ Ашигласан МОНГОЛ буруу тохиргоог ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ бол та ямар нэгэн санаа, ̶ үзье намайг мэдэх дАХЬ МОНГОЛ ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

Засварлах: Би үүнийг зассан. (1 -р алхамыг үзнэ үү)

Зөвлөмж болгож буй: