جدول المحتويات:

وميض البرامج الثابتة المخصصة إلى مصباح يدوي BLF A6: 5 خطوات
وميض البرامج الثابتة المخصصة إلى مصباح يدوي BLF A6: 5 خطوات

فيديو: وميض البرامج الثابتة المخصصة إلى مصباح يدوي BLF A6: 5 خطوات

فيديو: وميض البرامج الثابتة المخصصة إلى مصباح يدوي BLF A6: 5 خطوات
فيديو: شوفو شوفو الشيطان الحقيقي في الشكل #وقال_فرعون_دعوني_اقتل_موسئ #Shorts 2024, شهر نوفمبر
Anonim
وميض البرامج الثابتة المخصصة إلى مصباح يدوي BLF A6
وميض البرامج الثابتة المخصصة إلى مصباح يدوي BLF A6

حصلت مؤخرًا على BLF A6. إنه لطيف للغاية ، لكنني لا أحب أيًا من مجموعات الأوضاع الافتراضية ، لذلك قمت بتعديل البرنامج الثابت لاستخدام درجة السطوع المفضلة لدي. كان من الصعب العثور على المعلومات ، لذلك أضع كل ما تعلمته هنا لنفسي وللآخرين.

اللوازم

BLF A6 (من المحتمل أن يعمل مع مصابيح يدوية أخرى تعتمد على ATtiny)

ملاقط / كماشة رفيعة / مقص صغير / شيء للتراجع عن حلقة تثبيت لوحة القيادة

الكمبيوتر المراد تشغيله ، ويفضل تشغيل توزيعة Linux

مبرمج USB ASP / Arduino / شيء يمكنه القيام ببرمجة AVR (على ما يبدو يوصى باستخدام مبرمج USB ASP ، لكنني استخدمت Arduino)

مقطع SOIC8 (من الممكن الاستغناء عنه ، لكنه صعب للغاية ولا يوصى به على الإطلاق)

(اختياري) لوح توصيل و / أو أسلاك توصيل لتسهيل التوصيل

الخطوة 1: تنزيل البرنامج الثابت

البرنامج الثابت الخاص بـ BLF A6 (والعديد من المصابيح الكاشفة الأخرى) متاح هنا. المؤلف يتحدث عن ذلك هنا. يمكنك تنزيله عن طريق تشغيل:

فرع bzr lp: ~ toykeeper / flashlight-firmware / blf-a6-final

في المحطة. (قد تضطر إلى تثبيت bzr)

ملاحظة: في تعديل سابق لهذا Instructable ، استخدمت "bzr Branch lp: flashlight-firmware" بدلاً من ذلك. لقد علمت منذ ذلك الحين أن هذا يقوم بتنزيل إصدار قديم بقيم خاطئة للمكثف خارج الوقت ، مما يجعل الضغط على الزر طويلاً بشكل غير مريح. (بفضل هذا الموضوع على Reddit)

المجلد الذي تريده هو blf-a6-final / ToyKeeper / blf-a6. يحتوي على ملف.hex مترجم جاهز للفلاش (blf-a6.hex) ورمز C الذي يمكنك تعديله. (blf-a6.c) إذا كنت ترغب في تحديث البرنامج الثابت للأوراق المالية ، يمكنك تخطي الخطوة التالية واستخدام blf-a6.hex. من المحتمل أن تعمل بعض البرامج الثابتة الأخرى في هذا المستودع أيضًا.

الخطوة 2: تعديل البرنامج الثابت

افتح 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) // مانكر 2: 2 = 21 ، 3 = 39 ، 4 = 47 ، … 6؟ = 68 // سرعة PWM لكل وضع #define MODES_PWM1 PHASE، FAST، FAST، FAST، FAST، FAST، PHASE // Mode group 2 #define NUM_MODES2 4 #define MODESNx2 0، 0، 90، 255 #define MODES1x2 20، 230، 255، 0 #define MODES_PWM2 FAST ، FAST ، FAST ، PHASE

لكل مجموعة ، MODESN هي قيمة PWM المستخدمة لـ FET ، و MODES1 هي قيمة PWM المستخدمة لـ 7135 في كل وضع. الرقم يتراوح بين 0 و 255 ، ويتوافق مع سطوع الضوء. مزيد من المعلومات هنا. (قم بالتمرير لأسفل إلى "تنظيم الوضع:") لست متأكدًا من سرعة PWM بالضبط. إذا كان أحد يعرف ، أخبرني في التعليقات. يمكن أن ينتج FET ضوءًا أكثر من 7135 ، لكن 7135 يحافظ على مستوى الضوء متماثلًا إلى حد ما خلال عمر البطارية ، بينما يصبح FET أكثر قتامة مع نفاد البطارية.

هنا يمكنك ضبط قيم PWM لإنتاج أوضاع حسب رغبتك. ربما يمكنك تغيير عدد الأوضاع أيضًا ، لكنني لم أجربها لأنني أردت أربعة أوضاع ، والتي تصادف أن تكون الرقم في المجموعة الثانية. كنت أرغب في وضع ضوء القمر الأكثر قتامة ، لذلك قمت بتعيين الوضع الأول على 0/1 ، ووجدت أن وضع turbo لا معنى له إلى حد ما ، لذلك قمت باستبداله بـ 137/255 ، وهو ما يعادل الوضع السادس في مجموعة الوضع السبعة. ربما يمكنك تعديل بقية الكود إذا لزم الأمر ، لكنني لم أجربه.

عندما تحصل على الكود الذي تريده ، يجب عليك تحويله إلى ملف.hex. على أقل تقدير ، أنت بحاجة إلى gcc-avr و avr-libc. إذا كانت لديك مشاكل ، فابحث عن التبعيات الأخرى في الملف التمهيدي للبرنامج الثابت. يشتمل المستودع على برنامج نصي للبناء ، لكنني لم أتمكن من تشغيله. بدلاً من ذلك ، قمت بتنزيل الإصدار القديم باستخدام

فرع bzr lp: البرامج الثابتة مصباح يدوي

ونسخ النص البرمجي القديم (الذي يمكنني العمل عليه) بدلاً من النص الجديد. ثم جريت:

../../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../../.. -قصيرة -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 = تخصيص ، تحميل - تغيير-قسم-lma.eeprom = 0 - لا تغيير-تحذيرات -O ihex blf-a6.elf blf-a6.hex برنامج: 1022 بايت (99.8٪ ممتلئ)) البيانات: 13 بايت (20.3٪ ممتلئ)

تم تحسين الأوامر بالفعل للحجم ، لذا إذا قالت إنها ممتلئة بنسبة تزيد عن 100٪ ، فحاول التعليق

#define FULL_BIKING_STROBE

في السطر 147 لاستخدام ستروب أصغر لركوب الدراجات. إذا كان لا يزال غير مناسب ، فربما يتعين عليك إزالة المزيد من التعليمات البرمجية في مكان ما. عند الانتهاء من التجميع ، يجب أن يكون هناك ملف يسمى blf-a6.hex في المجلد. هذا هو الكود المترجم الخاص بك ، جاهز للوميض.

الخطوة 3: قم بفك المصباح اليدوي

تفكيك المصباح
تفكيك المصباح
تفكيك المصباح
تفكيك المصباح
تفكيك المصباح
تفكيك المصباح

فك طرف المصباح عكس اتجاه عقارب الساعة. هناك نوعان من مفاصل المسمار هنا. يفتح الأقرب إلى نهاية المصباح من المصباح العاكس والصمام الثنائي الباعث للضوء ، والأقرب إلى المنتصف يفتح لوحة السائق. تريد واحد أقرب إلى المنتصف.

في الداخل ، يجب أن ترى زنبرك البطارية وحلقة احتجاز بها فتحتان. أدخل ملاقطك / كماشة رفيعة / مقص في الثقوب وقم بتدويرها عكس اتجاه عقارب الساعة. إنها قاسية جدًا ، وربما لن يمنحك استخدام كائنين منفصلين تأثيرًا كافيًا. لقد استخدمت المقص على سكين الجيش السويسري.

بمجرد إخراج الحلبة ، قم بتحرير لوحة السائق. لا يزال مرفقًا بسلكين ، لذا كن حذرًا. إنها ملتوية معًا ، لذا قم بتدوير السبورة بطريقة أو بأخرى حتى تنفك الأسلاك. عندما يكون لديك مساحة كافية ، اقلب اللوحة. أنت تريده بحيث تكون الشريحة التي عليها "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 مثلي ، فعليك القيام ببعض التحضير. اتبع الخطوتين صفر والثاني من هذا الدليل:

افتح Arduino IDE وتأكد من توصيل Arduino بجهاز الكمبيوتر الخاص بك. ابحث عن رسم ISP في ملف> أمثلة> 11. ArduinoISP> ArduinoISP وقم بتحميله على Arduino. ثم قم بتوصيل ATtiny13 به على النحو التالي:

  • دبوس 1 على ATtiny13 لدبوس 10 على Arduino (إعادة التعيين)
  • دبوس 4 على ATtiny13 إلى GND على Arduino (أرضي)
  • دبوس 5 على ATtiny13 لتثبيت 11 على Arduino (MOSI)
  • دبوس 6 على ATtiny13 إلى دبوس 12 على Arduino (MISO)
  • دبوس 7 على ATtiny13 إلى دبوس 13 على Arduino (SCK)
  • قم بتثبيت 8 على ATtiny13 إلى VCC / 5V / 3.3V على Arduino (يجب أن يعمل أي منها ، لكن 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 -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 كمبرمج ، ولم يعمل إلا إذا حددت المنفذ ومعدل الباود. إذا كنت تستخدم 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 -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 باسم ملفك إذا كان مختلفًا.

-الفتوز: w: 0x75: m و -Uhfuse: w: 0xFF: m هي الصمامات. قد تكون بياناتك مختلفة ، لذا تحقق جيدًا من القيم في flashlight-firmware / bin / flash-tiny13-fuses.sh.

إذا أعطت خطأ خارج النطاق ، فهذا يعني أن الصورة أكبر من أن تلائم الشريحة وعليك إزالة بعض الكود. إذا كان يومض بنجاح ، فيجب أن يعرض بعض أشرطة التقدم ، ثم يقول "تم تنفيذ avrdude. شكرًا لك".

إذا كانت تقول "توقيع الجهاز غير صالح" وتم ضبط وصلة العبور في المبرمج على 3.3 فولت ، فحاول ضبطه على 5 فولت.

بعد أن تومضه ، أعد تجميع المصباح الكهربائي الخاص بك ومعرفة ما إذا كان يعمل. الألغام فعلت ذلك، لكن التوقيت هو خارج لبعض ̶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)

موصى به: