فهرست مطالب:

DemUino - کامپیوتر خانگی/کنترل کننده: 7 مرحله
DemUino - کامپیوتر خانگی/کنترل کننده: 7 مرحله

تصویری: DemUino - کامپیوتر خانگی/کنترل کننده: 7 مرحله

تصویری: DemUino - کامپیوتر خانگی/کنترل کننده: 7 مرحله
تصویری: DemUino 2024, جولای
Anonim
Image
Image
سوزاندن بوت لودر
سوزاندن بوت لودر

رایانه الهام گرفته از آردوینو توسط DemeterArt از صفحه کلید قدیمی PS2 خود نهایت استفاده را ببرید. برای کنترل موارد ، آن را در رایانه شخصی سفارشی هک کنید! من همیشه می خواستم کامپیوتر خانگی خود را بسازم ، به سبک یکپارچهسازی با سیستمعامل ، هیچ چیز فانتزی ، اما با قابلیتهای خاص که مطابق با ترجیحات من تنظیم می شود. بنابراین ، من با atmega328 MCU و کیت توسعه Arduino به آن رسیدم.

بگذارید بگویم که اگر این طرفداران با استعداد در خارج از کشور که خودخواهانه کمتر کتابخانه های رایگان را برای استفاده همگان تأمین می کنند ، این پروژه به طور قابل ملاحظه ای طول می کشید و نتایج نهایی آن مشکوک بود. با تشکر از همه شما:-)

برای خواندن کل داستان و بارگیری همه فایل های مربوطه ، از سایت من دیدن کنید

www.sites.google.com/site/demeterart

مرحله 1: ویژگی ها

  • بر اساس ATMEGA328 با فلاش 32 کیلوبایت ، 2 کیلوبایت SRAM و 1 کیلوبایت EEPROM.
  • پشتیبانی از حالت های تعاملی و دسته ای
  • ویرایشگر خط و حالت ویرایش لیست
  • 8 کاراکتر سفارشی برای گرافیک کاربر
  • 60 مرحله برنامه به شماره 00 ،… ، 99
  • حلقه های "if" مشروط ، حلقه "while" و "for" به علاوه عبارات "goto" و "sub" برای انشعاب
  • عبارات اساسی ریاضی و ریاضی بعلاوه آزمونهای بولی
  • متغیرهای سیستم اجازه می دهد تا وقایع زمان بندی شده ، میانگین ، rms ، دقیقه و حداکثر از پین های آنالوگ و غیره
  • 26 متغیر کاربر برای تعامل با متغیرها و دستورات سیستم
  • 104 بایت از یک آرایه آدرس پذیر کاربر یا 52 عدد صحیح کوتاه
  • توانایی خواندن/نوشتن داده های برنامه و همچنین کد در حال پرواز (متغیر p)
  • برنامه مینی اسیلوسکوپ با شخصیت های سفارشی برای گرافیک شبه
  • برنامه ها و داده ها را در/از EEPROM ذخیره و بارگذاری کنید
  • بارگیری/ذخیره برنامه ها و متغیرها از/به رایانه شخصی
  • autoexec بعد از هر بار بازنشانی برنامه را از EEPROM بارگیری و اجرا کند
  • 9 پین GPIO (شامل SPI) در کانکتور DB15 خارجی موجود است
  • BUZZER برای جلوه های صوتی

مرحله 2: مواردی که نیاز دارید

یک صفحه کلید قدیمی ps/2 به اندازه کافی ضخیم برای قرار دادن صفحه نمایش کاراکتر LCD pcb (قالب موازی محبوب) تراشه MAX232 برای پورت RS232 پورت atmel atmega328PU کیت توسعه Arduino با IDE 1.0.1 LM7805 تنظیم کننده 5V زنگ صدای پل ، خازن ها ، دکمه تنظیم مجدد ، اتصالات و غیره

مرحله 3: سوزاندن بوت لودر

بنابراین ، پس از خرید یک تراشه "خالی" atmega328PU ، باید تصمیم گیری شود. آیا از برنامه نویس خاصی یا خارجی یا ISP استفاده می کنم یا بوت لودر آردوینو را در جانور می سوزانم و واحد را از طریق پورت UART آن قابل برنامه ریزی می کنم؟ من دومی را انتخاب کردم تا زندگی من راحت تر شود! بوت لودر جدید فقط نیم کیلو بایت حافظه فلش را اشغال می کند و کمی بیش از 31 کیلوبایت برنامه کاربر و داده های استاتیک در دسترس می گذارد. سایت آردوینو موردی از سوزاندن بوت لودر در یک تراشه جدید را پوشش می دهد ، هنگامی که صحبت از avrdude برای سوزاندن تراشه موردنظر شد ، این فرآیند با خطایی که نشان دهنده شناسه اشتباه MCU خاص است ، شکست خورد. بنابراین پس از جستجو ، این مرد را پیدا کردم که درست کار کرده بود و من روش او را دنبال کردم. تنها تفاوت آن 2 فایل پیکربندی ، avrdude.conf و boards.txt بود که توسط avrdude و arduino IDE 1.0.1 مورد نیاز بود تا امکان پذیر باشد. پس از کپی کردن 2 فایل در مکان های مناسب (ابتدا فایلهای قدیمی را پشتیبان بگیرید) گزینه ‘arduino328’ از ابزار-> برد در دسترس بود و avrdude اقدام به سوزاندن فیوزها و بوت لودر کرد. در حال حاضر تراشه آماده برنامه ریزی از داخل دستگاه جدید است!

مرحله 4: ایجاد واحد

ساخت واحد
ساخت واحد
ساخت واحد
ساخت واحد

یک تخته سوراخ دار با نوارهای مسی به عنوان یک راه حل مونتاژ سریع با سوکت DIP برای تراشه ها استفاده می شود ، می دانید ، در هر صورت! سپس سوراخ ها و برش های اتصالات ، دکمه تنظیم مجدد و صفحه LCD از طریق پلاستیک بسیار محکم و ضخیم صفحه کلید باز شد. بله ، 25 سال پیش ساخته شد! در پی آن آشفتگی سیم هایی که از PCB به طرف لوازم جانبی مختلف سرچشمه می گرفت وجود داشت. یک بررسی تداوم ابتدایی و سپس منبع تغذیه بدون هیچ تراشه ای متصل شد فقط برای بررسی سوکت ها برای ولتاژ مناسب. سپس 2 آی سی وارد شد و قاب صفحه کلید از طریق چفت و بست پلاستیکی آن در پایین محکم بسته شد. واحد آماده سوختن طرح ها در کنترلر بود!

من پیشنهاد می کنم از خازن های 1 قطبی 1uF/16V غیر قطبی برای پمپ های شارژ MAX232 استفاده کنید. خازن های جدا کننده 100nF برای دو تراشه را تا حد امکان به پین های VCC و GND مربوطه بیابید. از اتصال ستاره برای برق و زمین اشاره شده به تنظیم کننده LM7805 استفاده کنید. سوئیچ 2 بسته به تخریب می تواند یک جهنده باشد ، اما خوب است که فقط در موارد خاص از بازنشانی مجدد MCU ناخواسته از رایانه میزبان جلوگیری شود. به هر حال ، سوئیچ باید بسته شود تا Arduino IDE بتواند طرح را از طریق بازنشانی MCU موردنظر (پین DTR RS232) بسوزاند. در مورد من ، اتصال دائمی است (همیشه بسته است). از یک مقاومت سری برای زنگ استفاده کنید تا چندین nFs خازن را از دروازه رانندگی جدا کنید … هرگز نمی دانید.. XTAL و بارگیری خازنهای 18-22pF را تا آنجا که ممکن است به پین های مربوطه کنترل کننده نزدیک کنید.

به دلیل پل یکسو کننده ، واحد ممکن است از دو آداپتور برق AC و DC تغذیه کند. در مورد DC ، افت ولتاژ 1.5 ولت بین آداپتور و ورودی تنظیم کننده وجود دارد. در مورد AC ورودی رگولاتور حدود 1.4 برابر خروجی RMS آداپتور یا کمتر به دلیل بارگذاری است. اگر تفاوت بین ورودی تنظیم کننده و خروجی آن (+5V) زیاد باشد ، مثلاً 7 ولت ، قدرت مصرفی تنظیم کننده به 0.5 وات می رسد و بهتر است از یک هیت سینک کوچک برای نصب تراشه استفاده کنید (به شرط برای آن فضا وجود دارد) برای ساعت های طولانی کار در هوای گرم.

بسته به بارهای خارجی شما (از طریق اتصال DB15) ممکن است فیوز ورودی AC انتخاب شود. سایر عوامل م choiceثر بر انتخاب فیوز عبارتند از: مقاومت محدود کننده جریان نور پس زمینه LED LCD ، خازن پل برای جریان شارژ و ظرفیت فعلی ترانسفورماتور تامین کننده.

مرحله 5: طرحواره ای

طرحواره
طرحواره

مرحله 6: اجرای نرم افزار روی صفحه

این طرح است که باعث می شود همه چیز اتفاق بیفتد … و 32 کیلوبایت کافی نیست! شما می توانید از آن بدون تغییر استفاده کنید ، در این صورت من از اشاره به نام من قدردانی می کنم ، یا آن را به دلخواه تغییر می دهم و من را فراموش می کنم ؛-)

این مستندات دقیق در مورد دستگاه است.

خلاصه دستورات و عبارات

: یک خط نظر غیرقابل چاپ

ai: اتصال وقفه 0 (پین D2)

ar: خواندن آنالوگ

aw: "نوشتن آنالوگ" در arduino یا به عبارت بهتر pwm

ca: ضبط آنالوگ در یک آرایه

cl: نمایشگر را از فهرست cno: return *Prgm پاک می کند

di: منتظر یک سری پالس ها باشید و مدت زمان و زمان را اندازه گیری کنید

dl: تاخیر

انجام دهید: در رابطه با "wh"

dr: دیجیتال هر پینی را بخوانید

dw: دیجیتال هر پینی بنویسید

ed: حالت ویرایشگر / بارگیری برنامه از طریق رایانه / شماره مجدد

el: تابع دسترسی EEPROM

end: عبارت END یک برنامه

ensb: زیر روال پایان می یابد

es: تابع دسترسی EEPROM

fl: فیلتر میانگین متحرک ساده

fr: حلقه بعدی (fr-nx)

go: پرش به مرحله برنامه

gosb: ادامه اجرای برنامه به روال فرعی

gt: منتظر ورودی کاربر است

if: شرایط آزمایش و پرش به مرحله

io: GPIO 1-9 بیت

ld: بارگیری/ادغام برنامه از EEPROM

lp:: حلقه کنترل شده با صفحه کلید در حالت تعاملی

ls: حالت لیست / ارسال برنامه به کامپیوتر در یک زمان

میلی لیتر: وقت بگیرید

میلی متر: نمایش حافظه رایگان

nos: عدد را به رشته تبدیل می کند

nx: در ارتباط با "fr"

pl: آرایه نمودار cxx

pm: پین ها را برای ورودی یا خروجی تنظیم کنید

pr: پیام یا مقدار یا کاراکتر سفارشی را چاپ می کند

rgc: دستور range copy برای آرایه ها

rgs: دستور set range برای آرایه ها

rn: برنامه را در RAM اجرا کنید

rs: بازنشانی نرم

rx: دریافت یک کاراکتر از طریق RS232

si: ورودی سریال همزمان با پین ساعت و داده

sm: mini oscilloscope app sno: رشته را به شماره تبدیل می کند

بنابراین: خروجی سریال همزمان با پین ساعت و داده

sub: برنامه روتین را اعلام می کند

sv: برنامه را در EEPROM ذخیره کنید

tn: بوق یک تن

tx: ارسال یک شماره از طریق RS232

wh: حلقه do-while که در ارتباط با "انجام" استفاده می شود

مرحله 7: کلیپ ویدیویی Mini App 'sm' Running

برای خواندن کل داستان و بارگیری همه فایل های مربوطه ، از سایت من دیدن کنید

www.sites.google.com/site/demeterart

توصیه شده: