فهرست مطالب:
- تدارکات
- مرحله 1: نظریه
- مرحله 2: آزمایش مدار
- مرحله 3: طراحی PCB کامل Adder
- مرحله 4: طراحی سایر PCB ها
- مرحله 5: لحیم کردن قطعات به PCB
- مرحله 6: تکمیل PCB ها برای جمع آوری
- مرحله 7: تغذیه مدارها
- مرحله 8: چاپ سه بعدی پایه
- مرحله 9: مونتاژ
- مرحله 10: محاسبه و مقایسه
- مرحله 11: نتیجه گیری
تصویری: ماشین حساب دودویی 4 بیتی: 11 مرحله (همراه با تصاویر)
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
من علاقه مند به نحوه کار رایانه ها در سطح اساسی هستم. من می خواستم استفاده از اجزای مجزا و مدارهای لازم برای انجام کارهای پیچیده را درک کنم. یکی از اجزای اساسی مهم در CPU واحد منطق حسابی یا ALU است که عملیات را بر روی اعداد صحیح انجام می دهد. برای انجام این کار ، رایانه ها از اعداد دودویی و دروازه های منطقی استفاده می کنند. یکی از ساده ترین عملیات انجام شده این است که دو عدد را در یک مدار جمع جمع می کنیم. این ویدئو توسط numberphile یک کار عالی در توضیح این مفهوم از طریق Domino Addition انجام می دهد. مت پارکر این مفهوم اساسی را گسترش داده و با استفاده از 10 هزار دومینو یک مدار کامپیوتر دومینو ایجاد می کند. ساختن یک رایانه شخصی کاملاً غیر از Domino پوچ است ، اما من هنوز می خواستم استفاده از اجزای مجزا را برای انجام این کار اضافی درک کنم. در ویدئوها ، دروازه های منطقی از دومینو ساخته شده اند اما می توان آنها را از اجزای اصلی یعنی ترانزیستورها و مقاومت ها نیز ساخت. هدف از این پروژه استفاده از این اجزای مجزا برای یادگیری و ایجاد ماشین حساب جمع کننده 4 بیتی من بود.
اهداف من برای این پروژه شامل موارد زیر بود: 1) نحوه ایجاد و ساخت PCB سفارشی 2) ایجاد طرح آسان برای افزودن اعداد باینری 3) تفاوت مقیاس بین اجزای مجزا و یک مدار مجتمع که وظیفه یکسانی را انجام می دهد ، نشان دهید.
بیشتر الهام بخش و درک این پروژه از Simon Inns بود.
تدارکات
من از Fritzing برای ساختن شماتیک ، ایجاد و ساخت PCB استفاده کردم
مرحله 1: نظریه
شمارش در مبنای 10 ساده است زیرا یک عدد صحیح متفاوت برای نشان دادن مجموع دو عدد صحیح وجود دارد. ساده ترین مثال:
1 + 1 = 2
شمارش در مبنای 2 یا باینری فقط از 1 و 0 استفاده می کند. ترکیبی از 1 و 0 برای نشان دادن اعداد صحیح مختلف و جمع آنها استفاده می شود. نمونه ای از شمارش در مبنای 2:
1+1 = 0 و 1 را به بیت بعدی حمل می کنید
هنگام افزودن دو بیت (A و B) به یکدیگر ، 4 نتیجه متفاوت با خروجی های Sum و Carry (Cout) امکان پذیر است. این همان چیزی است که در جدول نشان داده شده است.
دروازه های منطقی ورودی ها را گرفته و خروجی تولید می کنند. برخی از اساسی ترین دروازه های منطقی شامل دروازه های NOT ، AND و OR هستند که همه در این پروژه استفاده می شوند. آنها از ترکیبات مختلف و سیم کشی ترانزیستورها و مقاومت ها تشکیل شده اند. شماتیک هر دروازه ارائه شده است.
با بازگشت به جدول ، ترکیبی از این دروازه ها می تواند برای تولید نتایج مجموع در جدول استفاده شود. این ترکیب منطق به عنوان یک دروازه منحصر به فرد OR (XOR) نیز شناخته می شود. ورودی باید دقیقاً 1 باشد تا خروجی 1 حاصل شود. اگر هر دو ورودی 1 باشند ، خروجی حاصل 0. است. نتایج بیت حمل را می توان با یک دروازه ساده AND نشان داد. بنابراین ، استفاده از هر دو XOR با یک دروازه AND می تواند کل جدول را نشان دهد. این به عنوان Halder Adder شناخته می شود و شماتیک آن در بالا نشان داده شده است.
برای افزودن اعداد باینری بزرگتر ، بیت حمل باید به عنوان ورودی گنجانده شود. این امر با ترکیب 2 مدار Half Adder برای تولید یک Adder کامل انجام می شود. سپس Adders Full را می توان با هم ترکیب کرد تا اعداد باینری بزرگتری اضافه شود. در پروژه خود ، من 4 افزونه کامل را مشاهده کردم که به من امکان داد 4 ورودی بیت داشته باشم. طرح کلی برای Adder کامل در بالا آمده است.
سیمون اینس در مورد این نظریه یک مقاله عالی و عمیق تر دارد. همچنین چند فایل PDF وجود دارد که برای آنها مفید بود.
مرحله 2: آزمایش مدار
اولین گام پس از درک نحوه عملکرد دروازه های منطقی و نظریه پشت یک Adder کامل ، ساختن مدار است. من با جمع آوری تمام اجزای مورد نیاز خود شروع کردم: مقاومتهای 10K و 1K ، ترانزیستورهای NPN ، Breadboard ، Jumperwires. به دنبال آن یک چاپگر جمع کننده کامل را دنبال کردم. این روند خسته کننده بود ، اما من توانستم یک مدار کار برای جمع کننده کامل دریافت کنم. ورودی ها را بالا یا پایین می بندم و از مولتی متر برای آزمایش خروجی ها استفاده می کنم. حالا من آماده بودم که نان برد و طرح کلی را به یک PCB ترجمه کنم.
مرحله 3: طراحی PCB کامل Adder
برای طراحی PCB به طور انحصاری از Fritzing استفاده کردم. این اولین بار بود که یک PCB طراحی می کردم و این برنامه با کوچکترین منحنی یادگیری ، کاربر پسندترین و بصری ترین به نظر می رسید. برنامه های عالی دیگری مانند EasyEDA و Eagle برای کمک به طراحی PCB وجود دارد. با Fritzing ، می توانید طراحی را روی یک نانبرد مجازی یا شماتیک شروع کنید ، سپس به PCB بروید. من از هر دوی این روشها برای این پروژه استفاده کردم. هنگامی که آماده ساختن PCB هستید ، به سادگی یک دکمه برای فشردن فایل های خود و بارگذاری مستقیم آنها در Aisler ، سازنده همکاری Fritzing ، ساده است.
برای شروع فرآیند ، من با برگه شماتیک شروع کردم. ابتدا ، همه اجزا را در فضای کار پیدا و وارد کردم. در مرحله بعد ، همه آثار را بین اجزا ترسیم کردم. مطمئن شدم که ورودی 5 ولت و زمین را به مکان های مناسب اضافه کنم.
طراحی PCBI را روی برگه PCB کلیک کنید. وقتی مستقیماً از یک طرح کلی حرکت می کنید ، با همه اجزای متصل به خطوط موش صحرایی بر اساس ردپایی که در شماتیک ایجاد کرده اید ، دچار مشکل می شوید. اولین کاری که کردم اندازه PCB خاکستری را به اندازه دلخواهم تغییر داد و سوراخ های نصب را اضافه کردم. همچنین 16 پین برای ورودی و خروجی اضافه کردم. در مرحله بعد ، من شروع به ترتیب بندی اجزا به شیوه ای منطقی کردم. من سعی کردم اجزاء را با اتصالات نزدیک به هم گروه بندی کنم تا فاصله ردیابی را به حداقل برسانم. من یک قدم دیگر رفتم و اجزا را با استفاده از دروازه منطقی گروه بندی کردم. یکی از اهداف من این بود که بتوانم نحوه عملکرد مدار را تجسم کنم و بتوانم "بیت" را از طریق مدار دنبال کنم. پس از آن ، من از تابع autorouting که به طور خودکار عبور می کند و ردیابی های بهینه را بین اجزا ترسیم می کند ، استفاده کردم. من تردید داشتم که این روند تمام ردیابی های مناسب را تکمیل کرد ، بنابراین من به دنبال بررسی مجدد و ترسیم مجدد ردیابی ها در جایی که قرار بود باشد رفتم. خوشبختانه ، ویژگی تنظیم مسیریابی کار بسیار خوبی انجام داد و من فقط مجبور شدم تعدادی از ردیابی ها را اصلاح کنم. autorouter همچنین زوایای عجیب و غریبی با ردپایی ایجاد کرد که "بهترین تمرین" نیست ، اما من با آن خوب بودم و همه چیز هنوز خوب کار می کرد. آخرین کاری که انجام دادم اضافه کردن متنی بود که به عنوان صفحه ابریشم چاپ می شد. مطمئن شدم که همه اجزا دارای برچسب هستند. من همچنین تصاویر گیت منطقی سفارشی را برای تأکید بر گروه بندی اجزا وارد کردم. آخرین تصویر بالا صفحه ابریشم را نشان می دهد.
ساخت PCBI که روی دکمه ساخت در پایین صفحه کلیک شده است. مستقیماً مرا به وب سایت Aisler هدایت کرد و در آنجا قادر به ایجاد حساب کاربری و بارگذاری تمام فایل های Fritzing خود بودم. همه تنظیمات پیش فرض را رها کرده و سفارش را ثبت کردم.
مرحله 4: طراحی سایر PCB ها
PCB های باقی مانده که به آنها نیاز داشتم برد رابط ورودی/خروجی و برد IC بود. من مراحل 3 را برای این تخته ها دنبال کردم. pdf شماتیک ها در زیر قرار داده شده است. برای IC ، تمام اتصالات را با استفاده از ویژگی نانبرد مجازی ایجاد کردم. من طرح کلی را وارد کردم ، اما می توانم مستقیماً از ورق نان به برگه PCB بروم که بسیار عالی بود. من همچنین قبل از بارگذاری و سفارش در Aisler ، نمودار تبدیل 10 به پایه 2 را بر روی صفحه نمایش ابریشم در صفحه رابط ورودی/خروجی اضافه کردم.
مرحله 5: لحیم کردن قطعات به PCB
همه PCB ها وارد شدند و من واقعاً تحت تأثیر کیفیت قرار گرفتم. من هیچ تجربه ای در مورد سایر تولیدکنندگان نداشتم اما در استفاده مجدد از ایسلر تردید نمی کردم.
وظیفه بعدی این بود که همه اجزا را لحیم می کنم که یک فرآیند سخت بود ، اما مهارت های لحیم کاری من تا حد زیادی بهبود یافت. من با تخته های جمع کننده کامل شروع کردم و اجزای را با ترانزیستورها لحیم کردم ، سپس مقاومتهای 1K و سپس مقاومتهای 10K. من از روش مشابهی برای لحیم کردن بقیه اجزا بر روی برد I/O و IC استفاده کردم. بعد از اینکه هر تخته Full Adder کامل شد ، آنها را با همان روشی که breadboard Full Adder آزمایش می کرد آزمایش کردم. با کمال تعجب ، همه تخته ها بدون مشکل به درستی کار کردند. این بدان معنی است که تخته ها به درستی مسیریابی شده اند و به درستی لحیم شده اند. به مرحله بعد بروید!
مرحله 6: تکمیل PCB ها برای جمع آوری
وظیفه بعدی این بود که همه پین های هدر را به هر تخته بچسبانید. من همچنین باید سیم های بلوز بین پین هدر صحیح و ورودی ها/خروجی های تخته های Full Adder (A ، B ، Cin ، V+، GND ، Sum ، Cout) را اضافه کنم. اگر شما PCB های متفاوتی را برای هر سطح از مدار جمع کننده طراحی کرده باشید ، می توان از این مرحله جلوگیری کرد ، اما من می خواستم طراحی و هزینه را با ایجاد تنها یک PCB Full Adder به حداقل برسانم. در نتیجه ، اتصالات به این ورودی ها/خروجی ها به سیم های بلوز نیاز دارد. شماتیک ارائه شده نحوه انجام این کار است و کدام پین ها برای هر سطح از تخته های Adder کامل استفاده شده است. تصاویر نشان می دهد که چگونه سیم های بلوز را برای هر تخته لحیم کرده ام. من با لحیم کردن سیم های رایگان به پین های صحیح هدر شروع کردم. سپس هدر را به PCB لحیم کردم. بعد از اینکه پین هدر را با سیم های بلوز در جای خود لحیم کردم ، انتهای آزاد سیم های بلوز را به سیم های صحیح روی PCB لحیم کردم. تصویر بالا نمای نزدیک سنجاق های سربرگ را نشان می دهد که سیم های بلوز به آنها لحیم شده است.
مرحله 7: تغذیه مدارها
من برای استفاده از منبع تغذیه جک 12 ولت DC برای این پروژه برنامه ریزی کردم ، بنابراین صفحه رابط ورودی/خروجی را طراحی کردم تا دارای یک جک/کانکتور بشکه DC برای ورودی برق باشد. از آنجا که من از همان برد ورودی/خروجی استفاده می کردم و می خواستم از یک منبع تغذیه تنها استفاده کنم ، برای تنظیم ولتاژ تا 5 ولت نیاز داشتم زیرا این حداکثر ورودی برای IC SN7483A است. برای انجام این کار به یک تنظیم کننده 5 ولت و یک سوئیچ نیاز داشتم که بتواند بین 12 ولت و 5 ولت را تغییر دهد. شماتیک بالا نشان می دهد که چگونه مدار قدرت را به هم وصل کردم.
مرحله 8: چاپ سه بعدی پایه
اکنون که تمام سیم کشی و لحیم کاری کامل شده است ، باید بفهمم که چگونه قرار است همه چیز با هم انجام شود. من CADing و چاپ سه بعدی را طراحی کردم که همه قسمتهای این پروژه را در خود جای دهد و نمایش دهد.
من به مکانهایی برای نصب PCB با پیچ و مهره نیاز داشتم. افزونه های روی هم از نظر بصری جذاب ترین هستند و من می خواستم مواردی را که در حال استفاده نیستند نمایش دهم ، بنابراین می خواستم مکانی برای ذخیره PCB IC داشته باشم. من نیاز به قرار دادن مدار قدرت با برش های سوئیچ و جک/کانکتور لوله DC داشتم. سرانجام ، من می خواستم یک نوع ویترین محفظه داشته باشم تا از جمع شدن گرد و غبار در PCB های باز جلوگیری شود ، بنابراین به مکانی برای نشستن محفظه نیاز داشتم.
من از Fusion360 برای طراحی پایه استفاده کردم. من با ابعاد PCB و فاصله سوراخ های نصب شروع کردم. پس از آن از یک سری طرح و اکستروژن برای تعیین ارتفاع و اندازه پایه با نقاط نصب PCB استفاده کردم. سپس برش های محفظه و مدار برق را ایجاد کردم. سپس ، ناحیه ای برای ذخیره PCB IC در صورت عدم استفاده ایجاد کردم. در نهایت من برخی از جزئیات را اضافه کردم و به Cura ، نرم افزار برش من ارسال کردم.
من رشته رشته PLA سیاه را انتخاب کردم. چاپ آن بیش از 6 ساعت طول کشید و عالی بود. به طرز شگفت انگیزی ، همه ابعاد درست بودند و همه چیز به نظر می رسید که به درستی با هم متناسب باشد. تصویر بالا چاپ را پس از افزودن حالت خالی به سوراخ های نصب نشان می دهد. آنها کاملاً مناسب بودند!
مرحله 9: مونتاژ
مقابله ها را وارد کنید من تمام استندها را در سوراخ های نصب پایه قرار دادم.
مدار قدرت را در پایه قرار دهید. همه چیز را به هم وصل کرده بودم و همه قطعات را از سوراخ سوئیچ بیرون کشیدم. بعد ، جک/آداپتور برق را در پشت پایه قرار دادم. من رگولاتور 5 ولت را به شکاف آن فشار دادم و در نهایت سوئیچ توانست با فشار در موقعیت خود قرار گیرد.
PCB ورودی/خروجی را نصب کنید. من PCB IC را در فضای ذخیره سازی آن قرار دادم و PCB رابط ورودی/خروجی را در بالای آن قرار دادم. با استفاده از پیچ 4x M3 و درایور شش ضلعی ، PCB را خراب کردم. سرانجام جک بشکه DC را به PCB وصل کردم.
PCB های Adder را روی هم بچینید. من اولین Adder را روی هم چیدم. پشت PCB را با سوراخ های اتصال پشتی با 2 مرحله به هم چسباندم. من این روند را تا آخرین Adder در جای خود تکرار کردم و آن را با 2 پیچ M3 دیگر محکم کردم.
محوطه را بسازید. من از آکریلیک 1/4 برای محوطه استفاده کردم. ارتفاع نهایی پروژه را اندازه گیری کردم و با ابعاد CAD ، 5 قطعه را برای کناره ها و بالا بریدم تا یک جعبه ساده با ته باز ایجاد کنم. من برای چسباندن از اپوکسی استفاده کردم. سرانجام یک برش کوچک نیم دایره ای را در سمت راست سنباده زنی کردم تا سوئیچ جا شود.
آماده برای محاسبه
مرحله 10: محاسبه و مقایسه
ماشین حساب جدید خود را وصل کرده و افزودن را شروع کنید! نمودار پایه 10 به مبنای 2 را می توان برای تبدیل سریع بین دودویی و اعداد صحیح استفاده کرد. من ترجیح می دهم ورودی ها را تنظیم کرده و سپس با چرخاندن کلید قدرت و مشاهده خروجی باینری از LED ها "برابر" را فشار دهید.
مقایسه اجزای مجزا با مدار مجتمع اکنون ، می توانید جمع کننده های اضافی را جدا کرده و IC SN7483A را به برد I/O وصل کنید. (فراموش نکنید که سوئیچ را به جهت مخالف بچرخانید تا IC به جای 12 ولت با 5 ولت تغذیه شود). شما می توانید محاسبات یکسانی را انجام دهید و نتایج یکسانی خواهید داشت. این بسیار جالب است که فکر کنیم هر دو جزء گسسته Adder و IC به طور یکسان فقط در مقیاس اندازه بسیار متفاوت عمل می کنند. تصاویر یکسان ورودی و خروجی مدارها را نشان می دهند.
مرحله 11: نتیجه گیری
امیدوارم از این پروژه لذت برده باشید و به اندازه من یاد گرفته باشید. یادگیری چیزی جدید و تبدیل آن به یک پروژه منحصر به فرد که یادگیری مهارت جدیدی مانند طراحی/ساخت PCB را نیز می طلبد بسیار رضایت بخش است. همه طرحواره ها در زیر ذکر شده است. برای علاقه مندان می توانم فایل های PCB Gerber خود را نیز پیوند دهم تا بتوانید ماشین حساب دودویی 4 بیتی خود را بسازید. ساخت خوشحالم!
توصیه شده:
ماشین حساب پس انداز حساب بانکی: 18 مرحله
ماشین حساب پس انداز حساب بانکی: از اینکه ماشین حساب پس انداز من را انتخاب کردید متشکرم. امروز ما نحوه برنامه ریزی کلاس BankAccount را برای پیگیری هزینه ها و پس اندازهای شخصی خود یاد می گیریم. به منظور ایجاد یک حساب بانکی برای پیگیری هزینه های خود ، ابتدا به یک واحد اساسی نیاز دارید
ماشین حساب دودویی: 11 مرحله
ماشین حساب دودویی: نمای کلی: از اولین اختراع دروازه منطق در قرن بیستم ، توسعه مداوم چنین قطعات الکترونیکی اتفاق افتاده است و اکنون یکی از ساده ترین و در عین حال اساسی ترین قطعات الکترونیکی در بسیاری از کاربردهای مختلف است
شمارنده دودویی 8 بیتی آردوینو: 6 مرحله
شمارنده باینری 8 بیتی آردوینو: تعداد وانت 8 بیتی آردوینو از 0 تا 255. این پروژه یک شمارنده با 8 LED برای اتصال به پین آردوینو 5 ، 3 ، 4 ، 7 ، 10 ، 11 ، 12 و آمپر است. 13 به طوری که با ایجاد کد از صفر تا 255 از راست به چپ شمارش می شود
ماشین حساب دودویی تا اعشاری: 8 مرحله
ماشین حساب دودویی تا اعشاری: برای مهندسی کامپیوتر پایه یازدهم ، مجبور شدم در مورد پروژه نهایی تصمیم گیری کنم. در ابتدا نمی دانستم چه چیزی باید درست کنم زیرا باید قطعات سخت افزاری خاصی را شامل شود. پس از چند روز ، همکلاسی ام به من گفت که یک پروژه را بر اساس افزونه چهار بیتی انجام دهم
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). بازآفرینی آسان ، استفاده آسان ، حمل آسان: 3 مرحله
DIY MusiLED ، LED های هماهنگ موسیقی با یک کلیک Windows & Linux برنامه (32 بیتی و 64 بیتی). آسان برای ایجاد مجدد ، آسان برای استفاده ، آسان برای انتقال: این پروژه به شما کمک می کند تا 18 LED (6 قرمز + 6 آبی + 6 زرد) را به برد Arduino خود متصل کرده و سیگنال های زمان واقعی کارت صدا رایانه خود را تجزیه و تحلیل کرده و آنها را به چراغ های LED برای روشن کردن آنها مطابق با جلوه های ضرب (Snare ، High Hat ، Kick)