فهرست مطالب:

چشمک زدن سیستم عامل سفارشی به چراغ قوه BLF A6: 5 مرحله
چشمک زدن سیستم عامل سفارشی به چراغ قوه BLF A6: 5 مرحله

تصویری: چشمک زدن سیستم عامل سفارشی به چراغ قوه BLF A6: 5 مرحله

تصویری: چشمک زدن سیستم عامل سفارشی به چراغ قوه BLF A6: 5 مرحله
تصویری: Part 09 - Moby Dick Audiobook by Herman Melville (Chs 105-123) 2024, جولای
Anonim
چشمک زدن سیستم عامل سفارشی به چراغ قوه BLF A6
چشمک زدن سیستم عامل سفارشی به چراغ قوه BLF A6

من اخیراً یک BLF A6 گرفتم. بسیار خوب است ، اما من هیچ کدام از گروه های حالت پیش فرض را دوست ندارم ، بنابراین سیستم عامل را تغییر دادم تا از روشنایی های ترجیحی خود استفاده کنم. پیدا کردن اطلاعات سخت بود ، بنابراین من هر آنچه را که آموخته ام برای خود و دیگران در اینجا قرار می دهم.

تدارکات

BLF A6 (احتمالاً با دیگر چراغ قوه های مبتنی بر ATtiny کار می کند)

موچین / انبردست نازک / قیچی کوچک / چیزی برای بازکردن حلقه نگهدارنده تخته راننده

کامپیوتر برای فلش کردن ، ترجیحاً از توزیع لینوکس استفاده کنید

برنامه نویس USB ASP / Arduino / چیزی که می تواند برنامه نویسی AVR را انجام دهد (ظاهراً برنامه نویس USB ASP توصیه می شود ، اما من از آردوینو استفاده کردم)

کلیپ SOIC8 (بدون استفاده از آن امکان پذیر است ، اما بسیار مبهم است و اصلا توصیه نمی شود)

(اختیاری) سیم های تخته نرد و/یا بلوز برای سهولت اتصال

مرحله 1: Firmware را بارگیری کنید

سیستم عامل BLF A6 (و بسیاری از چراغ قوه های دیگر) در اینجا موجود است. نویسنده در اینجا در مورد آن صحبت می کند. می توانید آن را با اجرای زیر بارگیری کنید:

bzr branch lp: ~ اسباب بازی/چراغ قوه-سیستم عامل/blf-a6-final

در ترمینال (شاید لازم باشد bzr را نصب کنید)

توجه: در ویرایش قبلی این دستورالعمل به جای آن از "bzr branch lp: flashlight-firmware" استفاده کردم. از آن زمان فهمیدم که این نسخه قدیمی را با مقادیر اشتباه برای خازن خارج از زمان بارگیری می کند و باعث می شود دکمه به طرز ناخوشایندی فشار داده شود. (با تشکر از این موضوع در Reddit)

پوشه مورد نظر شما blf-a6-final/ToyKeeper/blf-a6 است. این شامل یک فایل.hex کامپایل شده آماده فلش (blf-a6.hex) و کد C است که می توانید تغییر دهید. (blf-a6.c) اگر می خواهید سیستم عامل را فلش کنید ، می توانید مرحله بعدی را رد کرده و فقط از blf-a6.hex استفاده کنید. احتمالاً برخی دیگر از سیستم عامل های موجود در آن مخزن نیز کار خواهند کرد.

مرحله 2: Firmware را اصلاح کنید

blf-a6.c را در ویرایشگر متن دلخواه یا IDE باز کنید. جالب ترین خطوط گروه های حالت بین خطوط 116 و 131 هستند. آنها شبیه این هستند:

// گروه حالت 1 #تعریف NUM_MODES1 7 // سطوح PWM برای مدار بزرگ (FET یا Nx7135) #تعریف MODESNx1 0 ، 0 ، 0 ، 7 ، 56 ، 137 ، 255 // سطوح PWM برای مدار کوچک (1x7135) # تعریف MODES1x1 2 ، 20 ، 110 ، 255 ، 255 ، 255 ، 0 // نمونه من: 6 = 0..6 ، 7 = 2..11 ، 8 = 8..21 (15..32) // نمونه کرون: 6 = 5..21 ، 7 = 17..32 ، 8 = 33..96 (50..78) // Manker2: 2 = 21 ، 3 = 39 ، 4 = 47 ،… 6؟ = 68 // سرعت PWM در هر حالت #تعریف MODES_PWM2 FAST ، FAST ، FAST ، PHASE

برای هر گروه ، MODESN مقدار PWM مورد استفاده برای FET و MODES1 مقدار PWM است که برای 7135 در هر حالت استفاده می شود. این عدد بین 0 تا 255 است و با روشنایی نور مطابقت دارد. اطلاعات بیشتر اینجا. (به پایین "تنظیم حالت" بروید) مطمئن نیستم سرعت PWM دقیقاً چقدر است. اگر کسی می داند ، در نظرات به من بگوید. FET می تواند نور بیشتری نسبت به 7135 تولید کند ، اما 7135 سطح نور را در طول عمر باتری کم و بیش یکسان نگه می دارد ، در حالی که FET با تمام شدن باتری تیره تر می شود.

در اینجا می توانید مقادیر PWM را تنظیم کنید تا حالت ها به دلخواه شما تولید شوند. شما احتمالاً می توانید تعداد حالت ها را نیز تغییر دهید ، اما من آن را آنطور که می خواستم چهار حالت را امتحان نکرده ام ، اتفاق می افتد که این تعداد در گروه دوم است. من می خواستم حالت مهتابی تیره تری داشته باشم ، بنابراین حالت اول را روی 0/1 تنظیم کردم و به نظرم حالت توربو کمی بی معنی است ، بنابراین آن را با 137/255 جایگزین کردم ، معادل حالت شش در گروه هفت حالت. در صورت نیاز می توانید بقیه کد را تغییر دهید ، اما من آن را امتحان نکرده ام.

وقتی کد مورد نظر خود را دریافت کردید ، باید آن را در یک فایل hex کامپایل کنید. حداقل ، شما به gcc-avr و avr-libc نیاز دارید. اگر مشکلی دارید ، به سایر وابستگی ها در readme سیستم عامل نگاه کنید. مخزن شامل یک اسکریپت ساخت است ، اما نتوانستم آن را به کار گیرم. در عوض ، من نسخه قدیمی را با

bzr branch lp: چراغ قوه-سیستم عامل

و اسکریپت ساخت قدیمی (که می توانم کار کنم) را روی اسکریپ جدید کپی کردم. بعد دویدم:

../../bin/build.sh 13 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 = assign ، load --change-section-lma.eeprom = 0-no-change-warning-O ihex blf-a6.elf blf-a6.hex برنامه: 1022 بایت (99.8٪ کامل) داده ها: 13 بایت (20.3 Full کامل)

دستورات از قبل برای اندازه بهینه شده اند ، بنابراین اگر می گوید بیش از 100 full پر است ، نظر دهید

#تعریف FULL_BIKING_STROBE

در خط 147 برای استفاده از بارق دوچرخه سواری کوچک تر. اگر هنوز مناسب نیست ، احتمالاً مجبورید کد بیشتری را در جایی حذف کنید. پس از اتمام کامپایل ، باید فایلی به نام blf-a6.hex در پوشه وجود داشته باشد. این کد کامپایل شده شماست ، آماده چشمک زدن است.

مرحله 3: چراغ قوه را جدا کنید

چراغ قوه را جدا کنید
چراغ قوه را جدا کنید
چراغ قوه را جدا کنید
چراغ قوه را جدا کنید
چراغ قوه را جدا کنید
چراغ قوه را جدا کنید

انتهای لامپ را خلاف جهت عقربه های ساعت باز کنید. در اینجا دو اتصال پیچ وجود دارد. یکی که به انتهای لامپ چراغ قوه نزدیک است ، بازتابنده و LED را باز می کند و یکی که به وسط نزدیک است ، برد راننده را باز می کند. شما می خواهید یکی نزدیک به وسط باشد.

در داخل ، باید فنر باتری و یک حلقه نگهدارنده با دو سوراخ در آن را ببینید. موچین / انبردست / قیچی نازک خود را داخل سوراخ ها کرده و خلاف جهت عقربه های ساعت بچرخانید. بسیار سفت است و استفاده از دو شیء مجزا احتمالاً به شما اهرم کافی نمی دهد. من از قیچی روی چاقوی ارتش سوئیس استفاده کردم.

وقتی حلقه را بیرون آوردید ، برد راننده را آزاد کنید. هنوز با دو سیم متصل است ، بنابراین مراقب باشید. آنها به هم پیچیده شده اند ، بنابراین تخته را به این ترتیب بچرخانید تا سیمها شل شوند. وقتی آزادی عمل کافی دارید ، تخته را ورق بزنید. شما آن را می خواهید به طوری که تراشه با "TINY13A" روی آن بالاتر و قابل دسترسی تر است. اگر طرف شما اشتباه است ، آن را به طرف دیگر برگردانید. فنر را زیر پهلو قرار دهید. این به طور موقت آن را در محل خود نگه می دارد و دسترسی به تراشه را آسان تر می کند. اگر در این مورد مشکل دارید ، احتمالاً می توانید اتصال دیگر را باز کرده و دو سیم را از طرف دیگر جدا کنید ، بنابراین می توانید تخته را کاملاً بردارید ، اما من آن را امتحان نکرده ام.

مرحله 4: سخت افزار Flashing را وصل کنید

اتصال سخت افزار فلشینگ
اتصال سخت افزار فلشینگ
اتصال سخت افزار فلشینگ
اتصال سخت افزار فلشینگ
اتصال سخت افزار فلشینگ
اتصال سخت افزار فلشینگ

اکنون از کلیپ SOIC8 برای اتصال تراشه ATtiny13 و برنامه نویس خود استفاده می کنید. با گیره SOIC8 من ، اگر سیم قرمز را در سمت چپ هر دو انتها داشته باشم ، ردیف پین هایی که در انتهای گیره به من نزدیکتر است ، با ردیف پین هایی که در انتهای کانکتور به من نزدیکتر هستند ، زمانی که کانکتور رو به پایین است ، مطابقت دارد. (نمودار فوق هنری من را ببینید) این راهنما توصیه می کند از برنامه نویس USB ASP V2.0 استفاده کنید. اگر دارید ، آن را به این شکل وصل کنید:

  • پین 1 در ATtiny13 به پین 5 در USB ASP (بازنشانی)
  • پین 4 در ATtiny13 تا پین 10 در USB ASP (زمین)
  • پین 5 در ATtiny13 تا پین 1 در USB ASP (MOSI)
  • پین 6 در ATtiny13 تا پین 9 در USB ASP (MISO)
  • پین 7 در ATtiny13 به پین 7 در USB ASP (SCK)
  • پین 8 در ATtiny13 تا پین 2 در USB ASP (VCC)

اگر مانند من از آردوینو استفاده می کنید ، باید کمی بیشتر آماده شوید. مراحل صفر و دو این راهنما را دنبال کنید:

Arduino IDE را باز کنید و مطمئن شوید که Arduino شما به رایانه شما متصل است. طرح ISP را در File> Examples> 11. ArduinoISP> ArduinoISP بیابید و آن را در Arduino خود بارگذاری کنید. سپس ATtiny13 را به این شکل به آن وصل کنید:

  • پین 1 در ATtiny13 تا پین 10 در آردوینو (بازنشانی)
  • پین 4 در ATtiny13 تا GND در آردوینو (زمین)
  • پین 5 در ATtiny13 تا پین 11 در آردوینو (MOSI)
  • پین 6 در ATtiny13 تا پین 12 در آردوینو (MISO)
  • پین 7 در ATtiny13 تا پین 13 در آردوینو (SCK)
  • پین 8 در ATtiny13 تا VCC / 5V / 3.3V در آردوینو (هر کدام باید کار کند ، اما 5 ولت قابل اطمینان تر است) (VCC)

من بسته سخت افزاری را نیز نصب کردم ، اما احتمالاً لازم نبود. اگر شک دارید ، آن را امتحان کنید. هیچ ضرری نخواهد داشت اما بوت لودر را نسوزانید زیرا احتمالاً چراغ قوه شما را آجر می کند.

مرحله 5: آن را فلش کنید

برای فلش کردن سیستم عامل ، باید AVRDUDE را نصب کنید. برای بررسی عملکرد آن با آردوینو ، دستور زیر را اجرا می کنم:

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 -Uhfuse: 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 را به عنوان برنامه نویس مشخص کنم ، و این کار نمی کرد مگر اینکه میزان پورت و baud را مشخص کرده باشم. اگر از آردوینو استفاده می کنید و شک دارید ، سعی کنید ATtiny13 خود را از آردوینو جدا کرده و با استفاده از تنظیمات اینجا یک طرح در 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 -Uhfuse: 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 فیوز هستند. ممکن است موارد شما متفاوت باشد ، بنابراین مقادیر را در چراغ قوه-سیستم عامل/bin/flash-tiny13-fuses.sh دوبار بررسی کنید.

اگر خطایی خارج از محدوده بدهد ، به این معنی است که تصویر خیلی بزرگ است و نمی تواند روی تراشه جا بگیرد و شما مجبورید بخشی از کد را حذف کنید. اگر با موفقیت چشمک می زند ، باید برخی از نوارهای پیشرفت را نمایش دهد ، سپس بگویید "avrdude done. متشکرم."

اگر می گوید "امضای دستگاه نامعتبر است" و jumper برنامه نویس شما روی 3.3v تنظیم شده است ، سعی کنید آن را روی 5v تنظیم کنید.

بعد از اینکه چراغ را روشن کردید ، چراغ قوه خود را دوباره جمع کنید و ببینید آیا کار می کند. من انجام داد، اما زمان است برای برخی از ̶r̶e̶a̶s̶o̶n̶.̶ طولانی پرس باید در مورد سه ثانیه به جای ̶1̶.̶5̶.̶ من نمی دانم اگر آن را چیزی برای انجام با آردوینو یا به دلیل من را مورد استفاده قرار اشتباه تنظیمات ̶s̶o̶m̶e̶w̶h̶e̶r̶e̶.̶ اگر شما هر گونه ایده، ̶ من می دانم در ̶c̶o̶m̶m̶e̶n̶t̶s̶.̶

ویرایش: درستش کردم (مرحله 1 را ببینید)

توصیه شده: