جدول المحتويات:
- الخطوة الأولى: المواد والتشييد
- الخطوة 2: لحام AVR بمصابيح LED ومكبر الصوت
- الخطوة 3: برمجة Attiny13a
- الخطوة 4: إنشاء البرنامج الثابت لـ Marioman
- الخطوة 5: ترك ماريومان طليقة
فيديو: وميض وغناء ومريمان: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:42
استخدم attiny13a واثنين من مصابيح LED ومكبر صوت لبطاقات التهنئة لإنشاء ماريومان وامضة تلعب أغنية Super Mario Brothers ، يمكن أن يكون هذا مشروعًا سهلًا ومنخفض التكلفة لأي شخص يبحث عن طريقة ممتعة لاقتحام برمجة AVR! يتم إنشاء ملاحظات الأغاني بواسطة موجة مربعة يتم إخراجها على دبوس واحد من متحكم AVR. يتم توصيل مصابيح LED التي تتناوب في كل ملاحظة بدبوسين لكل من نفس الشريحة.
الخطوة الأولى: المواد والتشييد
1 Attiny13a
www.mouser.com/Search/ProductDetail.aspx؟qs=sGAEpiMZZMvu0Nwh4cA1wRKJzS2Lmyk٪252bEP0e٪2f7dEeq0٪3d التكلفة: 1.40 دولار
- 2 LEDs - أي مصابيح LED ستفي بالغرض
- 1 بطارية خلية ليثيوم على شكل عملة معدنية
التكلفة: 2.00 دولار
1 حامل خلية عملة معدنية
التكلفة: 1.25 دولار
مكبر صوت صغير من بطاقة تهنئة موسيقية
التكلفة الإجمالية للمواد ~ 5 دولارات ، تم إرفاق اثنين من مصابيح LED مباشرة إلى دبابيس كل من attiny13A. يتم استخدام دبابيس لكل مؤشر LED ، ويتم تعيين الدبوس الثاني على مستوى منخفض لاستخدامه كاتصال أرضي. سيمنع الحد الحالي لمنافذ الإدخال / الإخراج الموجودة في AVR مؤشرات LED من الرسم كثيرًا بحيث لا يكون المقاوم ضروريًا للاتصال في المتكلم المستخدم هو نموذجي موجود في بطاقة التهنئة الموسيقية ، أي مكبر صوت صغير سيفعل ذلك ، نظرًا لأنه يخرج نغمة موجة مربعة ، فليس من المهم جدًا القلق بشأن قيادة السماعة أو جودة الصوت.
الخطوة 2: لحام AVR بمصابيح LED ومكبر الصوت
لكي تصل مصابيح LED مثل الأذرع ، يتم ثني دبوس واحد فوق AVR من كل جانب. يجعل توجيه AVR بهذه الطريقة من السهل الاتصال بالسماعة (الصورة الثانية) نظرًا لأن التوصيلات موجودة على المسامير السفلية. انها مرفقة.
الخطوة 3: برمجة Attiny13a
هناك الكثير من الخيارات المختلفة لبرمجة AVR. بالنسبة لهذا المشروع ، تم استخدام USBtiny وهو متاح كمجموعة من موقع ladyada https://www.ladyada.net/make/usbtinyisp/index.html لتوصيل AVR بالمبرمج يمكنك إما إرفاق الأسلاك بالمقبس الأنثوي وتوصيلها بلوحة توصيل أو الأفضل من ذلك الحصول على محول برمجة AVR رخيص مثل هذا
الخطوة 4: إنشاء البرنامج الثابت لـ Marioman
يحتوي Attiny13A على 1K من الفلاش القابل للبرمجة و 64 بايت من SRAM. يحتوي ملف tar المرفق على الملف المصدر بالإضافة إلى البرامج الثابتة المجمعة للتنزيل. تم استخدام ثلاث مصفوفات في الكود c لإنشاء الموسيقى
- التكرار - ترددات كل ملاحظة
- الطول - طول كل ملاحظة
- تأخير - وقفة بين كل ملاحظة
لا تحتوي مصفوفة التردد على الترددات الفعلية بل القيمة التي يجب وضعها في سجل TTCROB لتوليد الموجة المربعة من دبوس PB0 ، فيما يلي ملخص موجز للحسابات وتكوين الدبوس لتوليد الموجة المربعة:
- يحتوي attiny13A على مذبذب داخلي مضبوط على 9.6 ميجا هرتز
- الساعة الداخلية لـ IO هي مذبذب مقسومًا على 8 أو 1.2 ميجا هرتز
- يتم إعداد مؤقت داخلي في سجل 8 بت لعد كل دورة على مدار الساعة بمقياس مسبق يبلغ 8.
- ينتج عن هذا علامة واحدة تساوي 1 / (1.2 ميجا هرتز / 8) =.006667 مللي ثانية
- تم تكوين attiny13A لمقارنة ما هو موجود في سجل 8bit TCCR0B مع المؤقت وتبديل دبوس عندما يتطابقان.
- على سبيل المثال ، من أجل توليد موجة مربعة عند 524 هرتز (أوكتاف واحد فوق الوسط C) والتي تبلغ مدتها 1.908 مللي ثانية.
1.908ms = 286 علامة ساعة (1.908 /.0067) قسّم 286 على 2 لتبديل الدبوس عند t / 2 (286/2 = 143) ضع 143 في سجل TTCR0B لإنشاء هذه الملاحظة ، هذا هو كل الكود الضروري لإعداد المؤقت ، قم بإجراء المقارنة وإخراج موجة مربعة:
TCCR0A | = (1 << WGM01) ؛ // تكوين جهاز ضبط الوقت 1 لوضع CTC TCCR0A | = (1 << COM0A0) ؛ // تبديل OC0A على مقارنة مطابقة TCCR0B | = (1 << CS01) ؛ // clk / 8 prescale TTCR0B = 143 ؛ // توليد موجة مربعة عند 524 هرتزلتأخير النغمات والإيقاف المؤقت بينها تم استخدام وظيفة تأخير بسيطة
void sleep (int ms) {int cnt؛ لـ (cnt = 0 ؛ cnt <(مللي ثانية) ؛ cnt ++) {int i = 150 ؛ بينما (i--) {_asm ("NOP") ؛ }}}هذا يعد تنازليًا من 150 حيث تبلغ كل دورة NOP تقريبًا.006667 مللي ثانية. آخر شيء يفعله الكود هو المرور عبر المصفوفات ، وتوليد الموسيقى وميض مصباحي LED ، ويتم ذلك في حلقة for مستمرة مع الكود التالي
const uint8_t freq PROGMEM = {… data}؛ const uint8_t length PROGMEM = {… data}؛ const uint8_t delay PROGMEM = {… data}؛… while (1) {for (cnt = 0؛ cnt < 156 ؛ cnt ++) {OCR0A = pgm_read_byte (& freq [cnt]) ؛ output_toggle (PORTB ، PB3) ؛ output_toggle (PORTB ، PB4) ؛ النوم (pgm_read_byte (& length [cnt])) ؛ output_toggle (PORTB ، PB3) ؛ output_toggle (PORTB ، PB4) ؛ // إيقاف مؤقت TCCR0B = 0 ؛ النوم (pgm_read_word (& delay [cnt])) ؛ // بدء الموقت TCCR0B | = (1 << CS01) ؛ // clk / 8 prescale}}يوجد 156 عنصرًا في مصفوفات الترددات / الأطوال / التأخير ، هذه الحلقة تتجاوزهم. يتم تبديل كل من Pin PB3 و PB4 بحيث يتناوبان مع كل ملاحظة. السكون الأول هو طول الملاحظة التي نلعبها بعد ضبط سجل OCR0A على القيمة المناسبة. السكون الثاني هو التوقف المؤقت بين النغمات التي نعزفها. في الكود أعلاه ، ربما لاحظت الوظيفتين pgm_read_byte () و pgm_read_word () بالإضافة إلى الكلمة الرئيسية PROGMEM. مع شريحة مدمجة مثل attiny ، يكون مقدار SRAM محدودًا للغاية ، في هذه الحالة 64 بايت فقط. المصفوفات التي نستخدمها لجميع بيانات التردد / التأخير / الطول أكبر بكثير من 64 بايت وبالتالي لا يمكن تحميلها في الذاكرة. باستخدام التوجيه الخاص PROGMEM avr-gcc ، يتم منع مصفوفات البيانات الكبيرة هذه من التحميل في الذاكرة ، وبدلاً من ذلك تتم قراءتها من ذاكرة فلاش.
الخطوة 5: ترك ماريومان طليقة
يظهر الفيديو أعلاه ماريومان وهي تعمل. يبلغ متوسط استهلاك الطاقة حوالي 25 مللي أمبير ، لذلك يمكنه أن يرمش ويصدر ضوضاء لمدة 10 ساعات قبل تفريغ خلية الليثيوم المعدنية ، والطريقة الوحيدة لتشغيله وإيقافه هي إزالة بطارية خلية العملة المعدنية ، والبطارية القوية المدرجة في المواد هي مناسب تمامًا لهذا. يمكن إضافة مفتاح ولكن هناك ما يمكن قوله لإبقائه بسيطًا.
موصى به:
وميض StickC M5Stack LED: 7 خطوات
وميض StickC M5Stack LED: في هذا المشروع سوف نتعلم كيفية الاتصال وإنشاء وميض LED باستخدام وحدة M5StickC ESP32
وميض LED باستخدام 555 IC: 5 خطوات
LED Blinker باستخدام 555 IC: Hii friend ، سأقوم اليوم بصنع وميض LED باستخدام المؤقت IC 555 ، فلنبدأ ،
مجموعة DIY على شكل طاحونة حمراء وميض LED أحمر: 6 خطوات (مع صور)
DIY Kit Windmill على شكل طاحونة حمراء LED وامض: الوصف: هذا تصميم DIY MCU يعلم مجموعات طواحين الهواء الإلكترونية لممارسة اللحام. سهل التجميع: يأتي هذا المنتج إليك وهو مكون يحتاج إلى التثبيت على وحدة باردة مثل طاحونة هوائية. كان اسم علامة مكونات الطقم
تم الاختراق!: مصباح وميض للهالوين: 5 خطوات (بالصور)
اخترق!: ضوء وامض لعيد الهالوين: لقد حان الوقت لتخويف أصدقائك. في هذا المشروع سوف أريكم كيف & quot؛ اخترق & quot؛ مصباح LED عادي. بهذه الطريقة سوف تومض مثل الأضواء في كل فيلم رعب عندما يكون هناك شيء سيء على وشك الحدوث. إنه بناء بسيط جدًا إذا
Blink Caos: Mapa Logístico Para وميض عشوائي: 5 خطوات
Blink Caos: Mapa Logístico Para Random Blink: Este es un Instructable para un generador de aleatoriedad، utilizando un mapa log & iacute؛ stico، que ahora explico que es. Con el Mapa log & iacute؛ stico، se enciende y apaga un led de forma aleatoria. Este puede servir simplemente de ejemplo de como a