فهرست مطالب:
- مرحله 1: مواد و ساختار
- مرحله 2: لحیم AVR به LED ها و بلندگو
- مرحله 3: برنامه نویسی Attiny13a
- مرحله 4: ایجاد سیستم عامل برای Marioman
- مرحله 5: رها کردن Marioman شل
تصویری: پلک زدن ، آواز خواندن ، ماریومن: 5 قدم
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:58
از attiny13a ، دو LED و بلندگوی کارت تبریک برای ایجاد یک Marioman چشمک زن که آهنگ تم Super Mario Brothers را پخش می کند ، استفاده کنید. این می تواند یک پروژه آسان کم هزینه برای هرکسی باشد که به دنبال راهی سرگرم کننده برای ورود به برنامه نویسی AVR است! نت های آهنگ ها توسط یک موج مربعی تولید شده بر روی یک پین از میکروکنترلر AVR تولید می شود. LED های متناوب در هر نت به 2 پین هر یک از یک تراشه متصل می شوند.
مرحله 1: مواد و ساختار
1 attiny13a
www.mouser.com/Search/ProductDetail.aspx؟qs=sGAEpiMZZMvu0Nwh4cA1wRKJzS2Lmyk٪252bEP0e٪2f7dEeq0٪3d هزینه: 1.40 دلار
- 2 LED - هر LED کار خواهد کرد
- 1 عدد باتری سلولی لیتیومی
www.sparkfun.com/commerce/product_info.php؟products_id=338 هزینه: 2.00 دلار
1 عدد نگهدارنده سکه
www.sparkfun.com/commerce/product_info.php؟products_id=8822 هزینه: 1.25 دلار
1 بلندگوی کوچک از کارت تبریک موسیقی
هزینه کل مواد 5 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 استفاده شد.
- freq - فرکانس های هر نت
- طول - طول هر نت
- تأخیر - مکث بین هر نت
آرایه فرکانس فرکانس های واقعی را ندارد بلکه مقداری است که در ثبات TTCROB برای ایجاد موج مربعی از پین PB0 قرار می دهد. در اینجا خلاصه ای از محاسبات و پیکربندی پین برای ایجاد موج مربعی آمده است:
- نوسان ساز داخلی attiny13A روی 9.6 مگاهرتز تنظیم شده است
- ساعت داخلی IO نوسان ساز تقسیم بر 8 یا 1.2 مگاهرتز است
- یک تایمر داخلی در یک ثبات 8 بیتی تنظیم شده است تا هر چرخه ساعت را با پیش نمایش 8 بشمارد.
- این منجر به یک تیک برابر با 1 / (1.2MHz / 8) =.006667ms می شود
- 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 پیش مقیاس TTCR0B = 143 ؛ // ایجاد یک موج مربعی در 524 هرتزبرای به تأخیر انداختن آهنگها و مکث بین آنها از یک تابع تاخیر ساده استفاده شد
void sleep (int ms) {int cnt؛ برای (cnt = 0 ؛ cnt <(ms) ؛ cnt ++) {int i = 150 ؛ در حالی که (i--) {_asm ("NOP")؛ }}}این از 150 شمارش معکوس می کند که هر چرخه NOP تقریباً 0.006667ms است. آخرین کاری که کد انجام می دهد حلقه در آرایه ها ، تولید موسیقی و چشمک زدن دو LED است. این کار به صورت حلقه پیوسته با کد زیر انجام می شود.
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])؛ خروجی_تغییر (PORTB ، PB3) ؛ خروجی_تغییر (PORTB ، PB4) ؛ خواب (pgm_read_byte (& length [cnt]))؛ خروجی_تغییر (PORTB ، PB3) ؛ خروجی_تغییر (PORTB ، PB4) ؛ // تایمر توقف TCCR0B = 0؛ خواب (pgm_read_word (& تاخیر [cnt]))؛ // تایمر شروع TCCR0B | = (1 << CS01) ؛ // clk/8 prescale}}در آرایه های فرکانس/طول/تاخیر 156 عنصر وجود دارد ، این حلقه آنها را پیمایش می کند. پین PB3 و PB4 هر کدام ضامن هستند بنابراین با هر نت متناوب می شوند اولین خواب طول نت است که ما بعد از تنظیم ثبات OCR0A روی مقدار مناسب می نوازیم. خواب دوم مکث بین نت هایی است که می نوازیم. در کد بالا ممکن است متوجه دو عملکرد pgm_read_byte () و pgm_read_word () و کلمه کلیدی PROGMEM شوید. با یک تراشه تعبیه شده مانند attiny مقدار SRAM بسیار محدود است ، در این مورد فقط 64 بیت. آرایه هایی که برای همه داده های فرکانس/تاخیر/طول استفاده می کنیم بسیار بزرگتر از 64 بیت هستند و بنابراین نمی توان آنها را در حافظه بارگذاری کرد. با استفاده از دستورالعمل ویژه PROGMEM avr-gcc ، از بارگذاری این آرایه های بزرگ در حافظه جلوگیری می شود ، در عوض از روی فلش خوانده می شوند.
مرحله 5: رها کردن Marioman شل
ویدئوی بالا ماریومان را در حال عمل نشان می دهد. میانگین مصرف برق حدود 25 میلی آمپر است بنابراین می تواند تا 10 ساعت قبل از تخلیه سلول سکه لیتیوم پلک بزند و صدا ایجاد کند. تنها راه روشن و خاموش کردن او این است که باتری سلول سکه ای را بردارید. برای این مناسب است یک سوئیچ می تواند اضافه شود ، اما برای ساده نگه داشتن آن چیزی برای گفتن وجود دارد.
توصیه شده:
پلک زدن Caos: Mapa Logístico برای چشمک زدن تصادفی: 5 مرحله
Blink Caos: Mapa Logístico به صورت تصادفی Blink: شما می توانید به طور کلی برای برنامه های کاربردی ، با استفاده از & amp ؛ ضبط نقشه ، به عنوان مثال توضیح دهید. Con el mapa log & iacute؛ stico، se enciende y apaga un led de forma aleatoria. Este puede servir simplemente de ejemplo de como a
برنامه نویسی آردوینو از طریق موبایل -- آردوینودروئید -- آردوینو ایده برای اندروید -- پلک زدن: 4 مرحله
برنامه نویسی آردوینو از طریق موبایل || آردوینودروئید || آردوینو ایده برای اندروید || پلک زدن: لطفاً برای ویدیوهای بیشتر کانال یوتیوب من را مشترک کنید …… آردوینو برد است که می تواند مستقیماً از طریق USB برنامه ریزی شود. این بسیار ساده و ارزان برای پروژه های کالج و مدرسه یا حتی در نمونه اولیه محصولات است. بسیاری از محصولات ابتدا بر اساس آن برای i
پلک زدن با استفاده از آردوینو (TinkerCAD): 5 مرحله
پلک زدن با استفاده از آردوینو (TinkerCAD): HI! این دستورالعمل بسیار ابتدایی خواهد بود. در اینجا من نحوه استفاده از TinkerCAD برای چشمک زدن Led با استفاده از Arduino را نشان خواهم داد. TinkerCAD یک نرم افزار بسیار مفید برای آزمایش سریع کد شما است و برای کسانی که
آموزش آردوینو Uno #1 - برنامه پلک زدن اساسی: 4 مرحله
Arduino Uno آموزش شماره 1 - برنامه پلک زدن پایه: سلام به همه! خوشحالم که اولین دستورالعمل آموزشی خود را منتشر کردم! این ایده زمانی به ذهنم خطور کرد که برای کارکردن آردوینو اونو مشکل داشتم ، بنابراین با مشکلاتی که داشتم ، توضیحاتی را برای نوبی های اطراف خود ارائه می دهم که مانند من آنها را نمی شناسم
آواز خواندن نیم تنه: 7 مرحله
Singing Bust Prop: آیا تا به حال فکر کرده اید که مجسمه های مجسمه در عمارت خالی از سکنه چگونه کار می کردند یا حتی می خواستید آنها را خوب بسازید ، این دستورالعمل نحوه ساخت آنها را بسیار ساده نشان می دهد