نحوه راه اندازی گوشی های هوشمند و رایانه های شخصی پرتال اطلاعاتی

مدیریت بار از طریق usb Ryabenky V.M

P. VYSOCHANSKY، Rybnitsa، Transnistria، مولداوی

وسیله ای برای کنترل کامپیوتری دستگاه های مختلف که نمودار آن در شکل نشان داده شده است. 1، از نظر عملکردی مشابه آنچه در توضیح داده شده است، اما به پورت USB رایانه متصل می شود، که (برخلاف پورت COM) امروزه در هر یک از آنها وجود دارد. تنها ریز مدار دستگاه، میکروکنترلر رایج ATmega8 است. برای سازماندهی ارتباطات از طریق گذرگاه USB ضروری است. اگرچه فاقد ماژول سخت افزاری اختصاصی است، این عملکرد در نرم افزار انجام می شود.

مقاومت R1 که بین ترمینال مثبت منبع تغذیه و خط USB D-bus متصل است، آن را در حالت LS کم سرعت با نرخ تبادل 1.5 مگابیت بر ثانیه قرار می دهد که به رایانه امکان رمزگشایی توسط نرم افزار را می دهد. مقاومت های R4 و R5 برای افزایش پایداری، گذرای ارتباط را حذف می کنند. خازن C1 نویز ضربه ای را در مدار منبع تغذیه مسدود می کند که باعث بهبود پایداری دستگاه نیز می شود. دیودهای VD1 و VD2 برای کاهش ولتاژ تغذیه میکروکنترلر به تقریباً 3.6 ولت استفاده می شود - این برای مطابقت سطوح با گذرگاه USB لازم است. سیگنال‌های کنترل ابزار در خروجی‌های PBO-PB5 و RSO، PC1 میکروکنترلر تولید می‌شوند. سطح منطقی بالا - ولتاژ حدود 3.4 ولت. ولتاژ سطح پایین نزدیک به صفر است. دستگاه هایی که بیش از 10 میلی آمپر جریان (از هر خروجی) مصرف نمی کنند را می توان به خروجی ها متصل کرد. اگر مقادیر زیادی از جریان یا ولتاژ مورد نیاز است، گره های تطبیق نشان داده شده در شکل. 5 و 6.

دستگاه روی تخته نان مونتاژ می شود، برد مدار چاپی توسعه نیافته است. مقاومت های مورد استفاده MLT، خازن های C2 و SZ - سرامیکی فرکانس بالا، C1 - K50-35 یا مشابه وارداتی. دیودهای سیلیکونی با افت ولتاژ در محل اتصال حدود 0.7 ولت.

برنامه برای میکروکنترلر در محیط Bascom-AVR نسخه 1.12.0.0 توسعه یافته است. برای کار با گذرگاه USB، از کتابخانه swusb.LBX استفاده شده است که رمزگشایی نرم افزاری سیگنال های USB را در زمان واقعی انجام می دهد. کد برنامه به دست آمده در نتیجه کامپایل از یک فایل با پسوند HEX باید در حافظه FLASH میکروکنترلر بارگذاری شود. برای این کار، برنامه نویس همراه با ابزار تعبیه شده در Bascom-AVR استفاده شد. وضعیت بیت های پیکربندی میکروکنترلر باید مطابق با حالت نشان داده شده در شکل 2 باشد. 2.

هنگامی که دستگاه را برای اولین بار به رایانه خود متصل می کنید، سیستم عامل یک دستگاه جدید سازگار با USB HID به نام "uniUSB" را شناسایی کرده و درایورهای لازم را نصب می کند. پس از چند ثانیه، دستگاه تنظیم و آماده استفاده است. برای کار با آن، برنامه UniUSB ایجاد شد. این در دو نسخه ارائه شده است: برای سیستم عامل های ویندوز 32 بیتی (x86) و 64 بیتی (x64). نسخه 32 بیتی در ویندوز 98، ویندوز XP، ویندوز 7 تست شده است و نسخه 64 بیتی فقط در ویندوز XPx64 تست شده است.

برنامه UniUSB در PureBasic (نسخه 4.31) با استفاده از کتابخانه تابع سفارشی HIDJJb که از دستگاه های USB HID پشتیبانی می کند، نوشته شده است. ظاهر پنجره برنامه در شکل نشان داده شده است. 3.

در همان پوشه با فایل اجرایی آن، باید فایلی به نام UniUSB_KOfl.txt یا UniCOM_KOfl.txt وجود داشته باشد. گزینه دوم برای سازگاری با برنامه UniCOM پیشنهاد شده در مورد نیاز است. این فایل حاوی یک اسکریپت برای کنترل دستگاه های خارجی است. با شروع برنامه، داده های فایل در جدولی که در پنجره اصلی قرار دارد بارگذاری می شود و پس از اتمام برنامه، در فایل ذخیره می شود. با کلیک چپ روی سلول های جدول می توانید وضعیت آنها را تغییر دهید: 1 - سطح منطقی بالا، 0 یا خالی - سطح منطقی پایین.

برای افزودن یا حذف ستونی از جدول، باید بر روی آن کلیک راست کرده و در منوی ظاهر شده اقدام مورد نیاز را انتخاب کنید.

هنگامی که دستگاهی به پورت USB متصل می شود، برنامه آن را شناسایی کرده و دکمه > واقع در بالای پنجره نوار ابزار را فعال می کند. با فشردن این دکمه فرآیند شمارش ستون های جدول و تنظیم حالت های خروجی های مشخص شده در آنها آغاز می شود. برای وضوح بیشتر، در سمت چپ جدول، تعداد خروجی هایی که در حال حاضر سطح منطقی بالایی بر روی آنها تنظیم شده است، برجسته شده است. سرعت جستجو (زمان بر حسب میلی ثانیه بین انتقال از ستون به ستون) در قسمت "Speed, ms" تنظیم می شود.

سیستم عامل ویندوز را در نظر بگیرید - چند وظیفه ای! این به این معنی است که زمان پردازنده بین بسیاری از فرآیندها تقسیم می شود که گاهی اوقات از کاربر پنهان می شود که به نوبه خود با در نظر گرفتن اولویت های تعیین شده در سیستم اجرا می شوند. بنابراین، نباید انتظار دقت بالایی در حفظ فواصل زمانی کمتر از 100 میلی ثانیه داشت.

برای توقف لحظه ای تکرار روی ستون ها، از دکمه JB استفاده کنید. با فشار دادن مجدد آن، جستجو از نقطه توقف ادامه می یابد. دکمه ■ بر روی ستون های جدول به طور کامل تکرار نمی شود. اگر در حین تبادل اطلاعات بین رایانه و دستگاه خرابی رخ دهد یا دستگاه از کانکتور USB رایانه جدا شود، برنامه با نمایش یک پیام مربوطه در نوار وضعیت، خطا را گزارش می کند.

درجه 1 درجه 2 درجه 3 درجه 4 درجه 5

یک دستگاه کنترل کامپیوتری برای دستگاه های مختلف که نمودار آن در شکل نشان داده شده است. 1 به پورت USB کامپیوتر که امروزه در هر کدام از آنها وجود دارد وصل می شود. تنها ریز مدار دستگاه یک میکروکنترلر معمولی است ATmega8... برای سازماندهی ارتباطات اتوبوس مورد نیاز است. یو اس بی... اگرچه فاقد ماژول سخت افزاری اختصاصی است، این عملکرد در نرم افزار انجام می شود.

تصویر 1

مقاومت R1 که بین ترمینال مثبت منبع تغذیه و خط USB D-bus متصل است، آن را در حالت LS کم سرعت با نرخ تبادل 1.5 مگابیت بر ثانیه قرار می دهد که به رایانه امکان رمزگشایی توسط نرم افزار را می دهد. مقاومت های R4 و R5 برای افزایش پایداری، گذرای ارتباط را حذف می کنند. خازن C1 نویز ضربه ای را در مدار برق مسدود می کند که پایداری دستگاه را نیز بهبود می بخشد. دیودهای VD1 و VD2 برای کاهش ولتاژ تغذیه میکروکنترلر به تقریباً 3.6 ولت استفاده می شود - این برای مطابقت سطوح با گذرگاه USB لازم است.

سیگنال های کنترل ابزار در خروجی های РВ0-РВ5 و РС0, РС1 میکروکنترلر تولید می شود. سطح منطقی بالا - ولتاژ حدود 3.4 ولت. ولتاژ سطح پایین نزدیک به صفر است. دستگاه هایی که بیش از 10 میلی آمپر جریان (از هر خروجی) مصرف نمی کنند را می توان به خروجی ها متصل کرد. اگر مقادیر زیادی جریان یا ولتاژ مورد نیاز است، باید از گره های تطبیق استفاده شود.

دستگاه بر روی تخته نان مونتاژ می شود، مدار چاپی توسعه نیافته است.از مقاومت های MLT استفاده شده است، خازن های C2 و SZ سرامیکی فرکانس بالا، C1 - K50-35 یا مشابه وارداتی هستند. دیودهای سیلیکونی با افت ولتاژ در محل اتصال حدود 0.7 ولت.

برنامه برای میکروکنترلر در محیط توسعه یافته است Bascom-AVRنسخه ها 1.12.0.0. از کتابخانه برای کار با گذرگاه USB استفاده می شد swusb.LBXکه نرم افزار رمزگشایی سیگنال های USB را در زمان واقعی انجام می دهد. کد برنامه به دست آمده در نتیجه کامپایل از یک فایل با پسوند HEX باید در حافظه FLASH میکروکنترلر بارگذاری شود. وضعیت بیت های پیکربندی میکروکنترلر باید مطابق با حالت نشان داده شده در شکل 2 باشد. 2.

تصویر 2

هنگامی که دستگاه را برای اولین بار به رایانه متصل می کنید، سیستم عامل دستگاه جدیدی را تشخیص می دهد USB HIDدستگاه سازگار با نام " uniUSB"و درایورهای لازم را نصب می کند. ظرف چند ثانیه دستگاه پیکربندی شده و آماده استفاده می شود. برای کار با آن، برنامه UniUSB ایجاد شد. در دو نسخه ارائه شده است: برای 32 بیت (x86) و 64 بیت ( x64) سیستم عامل ویندوز. نسخه 32 بیتی در ویندوز 98، ویندوز XP، ویندوز 7 و نسخه 64 بیتی فقط در ویندوز XP x64 تست شده است.

برنامه UniUSBبه زبان نوشته شده است PureBasic(نسخه 4.31) با استفاده از کتابخانه تابع سفارشی HID_Libحمایت از کار با USB HIDدستگاه ها ظاهر پنجره برنامه در شکل نشان داده شده است. 3.

شکل 3

در همان پوشه با فایل اجرایی آن، باید یک فایل به نام وجود داشته باشد UniUSB_KOfl.txt... این فایل حاوی یک اسکریپت برای کنترل دستگاه های خارجی است. با شروع برنامه، داده های فایل در جدولی که در پنجره اصلی قرار دارد بارگذاری می شود و پس از اتمام برنامه، در فایل ذخیره می شود. با کلیک چپ روی سلول های جدول می توانید وضعیت آنها را تغییر دهید: 1 - سطح منطقی بالا، 0 یا خالی - سطح منطقی پایین.

برای افزودن یا حذف ستونی از جدول، باید بر روی آن کلیک راست کرده و در منوی ظاهر شده اقدام مورد نیاز را انتخاب کنید. هنگامی که دستگاهی به پورت USB متصل می شود، برنامه آن را شناسایی کرده و دکمه "شروع" واقع در بالای پنجره نوار ابزار را فعال می کند. با فشردن این دکمه فرآیند شمارش ستون های جدول و تنظیم حالت های خروجی های مشخص شده در آنها آغاز می شود. برای وضوح بیشتر، در سمت چپ جدول، تعداد خروجی هایی که در حال حاضر سطح منطقی بالایی بر روی آنها تنظیم شده است، برجسته شده است. سرعت جستجو (زمان بر حسب میلی ثانیه بین انتقال از ستون به ستون) در قسمت "Speed, ms" تنظیم می شود.

class = "eliadunit">

سیستم عامل ویندوز را در نظر بگیرید - چند وظیفه ای! این به این معنی است که زمان پردازنده بین بسیاری از فرآیندها تقسیم می شود که گاهی اوقات از کاربر پنهان می شود که به نوبه خود با در نظر گرفتن اولویت های تعیین شده در سیستم اجرا می شوند. بنابراین، نباید انتظار دقت بالایی در حفظ فواصل زمانی کمتر از 100 میلی ثانیه داشت.

از دکمه "مکث" برای توقف کوتاه تکرار روی ستون ها استفاده کنید. با فشار دادن مجدد آن، جستجو از نقطه توقف ادامه می یابد. دکمه "توقف" به طور کامل از روی ستون های جدول تکرار نمی شود. اگر در حین تبادل اطلاعات بین رایانه و دستگاه خرابی رخ دهد یا دستگاه از کانکتور USB رایانه جدا شود، برنامه با نمایش یک پیام مربوطه در نوار وضعیت، خطا را گزارش می کند.

منبع: رادیو شماره 2، 1390

آرشیو مقاله "مدیریت بار از طریق رابط USB"
شرح:کدهای منبع برنامه ها، فایل سیستم عامل میکروکنترلر، برنامه uniUSB
حجم فایل: 89.3 کیلوبایت تعداد دانلود: 2 773

در Habré درباره کنترل یک لامپ از طریق اینترنت، این ایده مطرح شد که روشنایی خانه را از طریق رایانه کنترل کنم، و از آنجایی که من قبلاً رایانه ای دارم که از طریق تلفن همراه کنترل می شود، به این معنی است که نور را می توان از همان تلفن نیز کنترل کرد. . پس از نشان دادن مقاله به یکی از همکارانم، او گفت که فقط به آن نیاز دارد. از آنجایی که او اغلب پشت فیلم هایی که با کامپیوتر تماشا می کند به خواب می رود. مدتی بعد از پایان فیلم، کامپیوتر نیز به خواب می رود و مانیتور را خاموش می کند، اما چراغ اتاق روشن می ماند. آن ها تصمیم گرفته شد که این چیز مفید است و من شروع به جمع آوری اطلاعات و جزئیات برای این معجزه کردم.
بقیه اطلاعات تحت habracut هستند (مراقب تصاویر زیاد باشید - ترافیک).

نمودار دستگاه

برای طرح اصلی، یکی از طرح های موجود در اینترنت گرفته شد و به این صورت بود:

اما تنها با یک تغییر جزئی: یک مقاومت 390 اهم بین پایه اول اپتوکوپلر 4N25 و پایه دوم LPT اضافه شد و یک LED نیز برای نشان دادن روشن بودن اضافه شد. مدار در حالت تست مونتاژ شد، یعنی. فقط در صورت نیاز سیم کشی شده و تست شده است. در این نسخه، او به سادگی چراغ قوه قدیمی شوروی را روشن و خاموش کرد.
تصمیم گرفته شد که اگر کنترل قبلا انجام شده باشد، نه برای یک دستگاه، بلکه برای حداقل 4 دستگاه (بر اساس: یک لامپ روی میز، یک لوستر برای دو سوئیچ، یک سوکت یدکی). در این مرحله ساخت مدار کامل دستگاه ضروری شد و شروع به انتخاب برنامه های مختلف شد.
نصب شدند:

  1. KiCAD
  2. عقاب
پس از تماشای همه آنها، بر عقاب مستقر شدم، زیرا در کتابخانه آن قطعات "مشابه" وجود داشت. این چیزی است که در آن اتفاق افتاده است:

این نمودار از یک پورت DB9 استفاده می کند. یک پورت COM معمولی، این کار به دلیل صرفه جویی در فضای برد و خود کانکتورها انجام شد (من COM داشتم) و از آنجایی که فقط از 5 هادی استفاده خواهیم کرد، این با یک حاشیه برای ما کافی خواهد بود. یک آداپتور از DB25 (LPT) به DB9 (COM) بسازید، در مورد من به صورت زیر انجام می شود:
LPT 2-9 pin = COM 1-8 pin پین های داده های کنترلی هستند.
LPT 18-25 پین (اغلب به هم متصل هستند) = COM 9 پین - این زمین ما است.
همچنین، مدار از یک منبع تغذیه 12 ولت اضافی برای تغذیه رله استفاده می کند، طبق برنامه یک شارژر ساده چینی یا شاید یک تاج 9 ولتی خواهد بود (یک رله خوب کار می کند، باید 4 را همزمان بررسی کنید). منبع تغذیه جداگانه و عایق گالوانیکی با استفاده از اپتوکوپلر برای ایمن سازی پورت کامپیوتر استفاده می شود. در صورت تمایل، البته می توانید از منبع تغذیه کامپیوتر 12 ولت تغذیه کنید، اما هرکسی این کار را خودش و با خطر و خطر خودش انجام می دهد.

قطعات مورد نیاز برای ایجاد یک دستگاه
  1. پورت COM - 1 قطعه
  2. کانکتور برق - 1 قطعه
  3. LED سبز - 4 عدد
  4. اپتوکوپلر 4n25 - 4 عدد
  5. یک صندلی برای اپتوکوپلر (من فقط 8 پایه داشتم) - 4 عدد
  6. مقاومت 390 اهم - 4 قطعه
  7. مقاومت 4.7 کیلو اهم - 4 عدد
  8. ترانزیستور KT815G - 4 قطعه
  9. رله HJR-3FF-S-Z - 4 قطعه
  10. گیره برای 3 مخاطب - 4 عدد.
  11. پارچه ورقه ای

آماده سازی طرح PCB

پس از تلاش برای استفاده از Eagle برای تهیه PCB، متوجه شدم که کار دشواری است و تصمیم گرفتم گزینه ساده تری پیدا کنم. این گزینه برنامه sprint layout 5 است حتی اگر برای ویندوز در حال اجرا باشد اما در wine تحت لینوکس بدون مشکل اجرا می شود. رابط برنامه بصری است، به زبان روسی و برنامه دارای یک راهنما (راهنما) نسبتاً واضح است. بنابراین، تمام اقدامات بعدی برای توسعه برد مدار چاپی در طرح sprint 5 (از این پس به عنوان SL5 نامیده می شود) انجام شد.
اگرچه بسیاری از مردم از این برنامه برای توسعه برد برای دستگاه های خود استفاده می کنند، اما شامل قطعات مورد نیاز من (حتی در انبوهی از مجموعه های دانلود شده ماکروها) نبود. بنابراین، ابتدا مجبور شدم قسمت های از دست رفته را ایجاد کنم:
  1. پورت COM (درگاهی که با من مطابقت نداشت، در امتداد سوراخ های نصب)
  2. سوکت برق
  3. گیره برای سه تماس
  4. رله HJR-3FF-S-Z
نمای این قسمت ها:

پس از افزودن جزئیات لازم، طراحی PCB خود آغاز شد. چندین تلاش طول کشید، حدود پنج مورد از آنها بود. هر نسخه از تخته روی مقوا چاپ می شد، سوراخ هایی سوراخ می شد و قطعاتی در آنها قرار می گرفت. در واقع، مشخص شد که پورت COM من با پورت SL5 مطابقت ندارد. یک خطای کوچک در مدار رله نیز ظاهر شد - در واقع، مورد رله 2-3 میلی متر جابجا شد. طبیعی است که تمام اشتباهات اصلاح شده است.
در اولین نسخه چاپ شده، معلوم شد که ترانزیستور به درستی متصل نشده است، دو مخاطب با هم مخلوط شده اند.
پس از تمام اصلاحات و تنظیمات، برد زیر را دریافت کردیم:

SL5 دارای یک عملکرد PhotoView برای مشاهده برد است، به این صورت است که در آن به نظر می رسد:

در نسخه نهایی برد، آهنگ‌ها کمی دستکاری می‌شوند، اما در غیر این صورت یکسان به نظر می‌رسد.

SL5 یک گزینه مناسب برای چاپ برد نیز دارد، می توانید لایه های غیر ضروری را مخفی کنید و برای هر لایه رنگ چاپ را انتخاب کنید که بسیار کاربردی است.

آماده سازی PCB

تصمیم بر این شد که تخته به روش LUT (تکنولوژی لیزر-آهن) ساخته شود. علاوه بر این، کل فرآیند در عکس است.

یک تکه PCB به اندازه مورد نیاز را برش دهید.

ما بهترین سنباده را می گیریم و سطح مس را با دقت تمیز می کنیم.

پس از تمیز کردن سطح، باید آن را بشویید و چربی زدایی کنید. می توانید با آب بشویید و با استون چربی زدایی کنید (در مورد من حلال 646 بود).
در مرحله بعد، ما برد خود را روی چاپگر لیزری روی کاغذ پوشش داده شده چاپ می کنیم و فراموش نمی کنیم که پررنگ ترین چاپ را در چاپگر نصب کنیم (بدون صرفه جویی در تونر). این گزینه کمی ناموفق بود، زیرا تونر لکه دار شده بود، اما تلاش دیگری خوب بود.

اکنون باید نقاشی را از کاغذ به textolite منتقل کنید. برای انجام این کار، نقشه را برش دهید و آن را روی PCB قرار دهید، سعی کنید آن را در حد نیاز تراز کنید و سپس آن را با اتو گرم کنید. تمام سطح باید کاملاً گرم شود تا تونر ذوب شود و به سطح مس بچسبد. سپس اجازه دهید تخته کمی خنک شود و آن را زیر آب روان خیس کنید. وقتی کاغذ به اندازه کافی خیس شد باید از تخته جدا شود. فقط تونر به برد چسبیده است. به نظر می رسد این است:

در مرحله بعد، شما باید یک محلول برای حکاکی آماده کنید. من برای این کار از کلرید آهن استفاده کردم. روی شیشه با کلرید آهن نوشته شده است که محلول باید 1 به 3 شود. من از این مقدار کمی عقب نشینی کردم و به ازای هر 240 گرم آب 60 گرم کلرید آهن درست کردم. معلوم شد 1 به 4، با وجود این، تخته به طور معمول حک شده است، فقط کمی کندتر. لطفاً توجه داشته باشید که فرآیند حل کردن کلرید آهن خشک در آب با آزاد شدن حرارت همراه است، بنابراین باید آن را در قسمت های کوچک به آب اضافه کرده و هم بزنید. به طور طبیعی، برای اچ کردن لازم است از ظروف غیر فلزی استفاده شود، در مورد من یک ظرف پلاستیکی (مانند از شاه ماهی) بود. راه حل زیر را گرفتم:

قبل از پایین آوردن تخته در محلول، من نخ ماهیگیری را با چسب به پشت آن چسباندم تا راحت تر تخته را گرفته و برگرداند. اگر محلول روی دستان شما قرار گرفت، باید سریع آن را با صابون بشویید (صابون آن را خنثی می کند)، اما ممکن است لکه ها همچنان باقی بمانند، همه اینها به شرایط خاص بستگی دارد. لکه ها به هیچ وجه از روی لباس پاک نمی شوند، اما من خوش شانس بودم که خودم آن را بررسی نکردم. لازم است تخته را در محلول با مس فرو کنید و نه همه آن صاف، بلکه در یک زاویه. توصیه می شود هر از گاهی تخته را از کار افتادن تمیز کنید، زیرا در حکاکی بیشتر اختلال ایجاد می کند. این را می توان با سواب های پنبه ای انجام داد.

کل فرآیند اچینگ 45 دقیقه طول کشید، 40 دقیقه کافی بود، اما من فقط با یک چیز دیگر مشغول بودم.
پس از اچ کردن، تخته را با صابون می شوییم، نوار را با نخ ماهیگیری پاره می کنیم و می گیریم:

توجه! محلول کلرید آهن را در سینک (فاضلاب) نریزید - این می تواند به قطعات فلزی سینک آسیب برساند و به طور کلی، محلول ممکن است همچنان مفید باشد.
در مرحله بعد، ما باید تونر را بشوییم، این کار با همان حلال 646 که برای چربی زدایی استفاده شد با موفقیت انجام می شود (تماس طولانی مدت حلال با پوست می تواند به آن آسیب برساند).

مرحله بعدی سوراخ کردن سوراخ است. من در ابتدا سوراخ های 1 میلی متری و 1.5 میلی متری روی تخته داشتم، زیرا نمی توانستم مته های نازک تری پیدا کنم. همچنین در شهر ما امکان یافتن چاک کولت برای اتصال آن به موتور الکتریکی وجود نداشت، بنابراین همه چیز با یک مته بزرگ انجام شد.

اولین دستگاه آمد

برای اولین بار، من فقط دو مته گرفتم، اما هنگام استفاده از چنین مته، این کافی نبود. یک مته شکست و دیگری خم شد. تمام آنچه در روز اول موفق به حفاری شدم:

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

پس از سوراخ کاری، تخته باید قلع شود. برای این کار از روش قدیمی استفاده کردم - آهن لحیم کاری، شار TAGS و قلع. من می خواستم از آلیاژ رز استفاده کنم، اما در شهر خودمان آن را پیدا نکردم.

پس از قلع کردن، نتیجه زیر را می گیریم:

در مرحله بعد، باید تخته را بشویید تا بقایای شار از بین برود، زیرا TAGS قابل شستشو با آب است، می توانید این کار را با آب یا الکل انجام دهید. من کاری در این بین انجام دادم - آن را با ودکای قدیمی شستم و با سواب پنبه پاک کردم. بعد از تمام این مراحل، برد ما آماده است.

مونتاژ قطعات

برای بررسی صحت برد، من در ابتدا فقط یک (از چهار) خط از قطعات را مونتاژ می کنم، هرگز نمی دانید که خطا در کجا رخ داده است.

پس از نصب قطعات، می رویم و دستگاه را از طریق LPT به کامپیوتر متصل می کنیم، برای این کار یک آداپتور از DB25 (LPT) به DB9 (COM) به شکل زیر لحیم می شود:

  • 2 پین DB25 تا 1 پین DB9
  • 3 پین DB25 تا 2 پین DB9
  • پایه 4 از DB25 به پایه 3 از DB9
  • 5 پین DB25 تا 4 پین DB9
  • 6 پین DB25 تا 5 پین DB9
  • 7 پین DB25 تا 6 پین DB9
  • 8 پین DB25 تا 7 پین DB9
  • 21 پایه DB25 (هر عدد 18 تا 25 امکان پذیر است) به پایه 9 از DB9
از آنجایی که یک جفت پیچ خورده معمولی به عنوان سیم استفاده می شد، یک سیم کشی کافی نبود، اما برای این دستگاه فقط پنج سیم کافی است، بنابراین این گزینه مناسب است. ما از یک چراغ قوه ساده شوروی به عنوان بار برای روشن شدن استفاده می کنیم. خوب، به عنوان منبع تغذیه - یک منبع تغذیه جهانی چینی (4 کانکتور و منبع تغذیه از 3 تا 12 ولت). اینجا همه چیز مونتاژ شده است:

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

این یک عصر دیگر به پایان رسید و مونتاژ بقیه قطعات روز بعد موکول شد.

و در اینجا دستگاه کاملاً مونتاژ شده است:

خوب، و یک ویدیوی کوچک در مورد نحوه عملکرد آن (کیفیت خیلی خوب نیست، چیزی برای عکاسی معمولی وجود نداشت)

این همه چیز است، فقط باید یک کیس معمولی برای دستگاه پیدا کنید و آن را راه اندازی کنید.

بخش نرم افزاری

طبیعتاً برای مدیریت پورت LPT به نرم افزاری نیاز دارید، اما از آنجایی که من در خانه لینوکس دارم، تصمیم گرفته شد که ساده ترین برنامه را خودم بنویسم و ​​سپس آن را اضافه کنم و در صورت نیاز آن را تطبیق دهم. چیزی شبیه این به نظر می رسید:
#عبارتند از
#عبارتند از
#عبارتند از
#عبارتند از
#define BASE 0x378
#زمان 100000 را تعریف کنید
int main ()
{
int x = 0x0F;
int y = 0x00;
if (ioperm (BASE, 1, 1))
{
خطا ("ioperm ()")؛
خروج (77);
}
خروجی (x، BASE)؛
بازگشت 0;
}

این برنامه پورت 0x0F = 00001111 را به LPT ارسال می کند. 1 تا 2-5 پایه (Data0-Data3) را تغذیه می کند و این ولتاژ کنترل ما بین 2-5 پایه و زمین (18-25 پایه) است، بنابراین هر چهار رله روشن می شوند. برنامه ارسال 0x00 به پورت shutdown به همین ترتیب کار می کند، فقط y - outb (y، BASE) را به جای x ارسال می کند. همچنین می توانید وضعیت پورت را بخوانید:
#define BASEPORT 0x378 / * lp1 * /
...
printf ("وضعیت:% d \ n"، inb (BASEPORT));
...

تنها نکته ظریف این برنامه این است که باید به صورت root اجرا شود، زیرا تابع ioperm برای یک کاربر معمولی در دسترس نیست. من فکر می کنم شما نمی توانید بگویید چگونه چنین مشکلی را حل کنید، همه گزینه مناسب تری را انتخاب خواهند کرد.

متعاقباً برنامه اصلاح شد تا با انتقال پارامترهای خط فرمان به آن، مشخص شود که با چه دستگاهی و چه کاری باید انجام شود.
خروجی "sw --help":
برنامه کنترل رله از طریق پورت LPT.
برنامه می تواند یک یا دو پارامتر داشته باشد.
فرمت پارامتر: sw [شماره دستگاه] [عمل]
شماره دستگاه - از 1 تا 8
اقدام - "روشن"، "خاموش"، "st" - فعال، غیرفعال، وضعیت
مثال: "sw 2 on" برای فعال کردن دستگاه دوم یا "sw --help" برای نمایش راهنما

PS اگر کسی به آن نیاز دارد، می توانم فایل شماتیک برد را در sl5 و منبع برنامه کنترل را در جایی قرار دهم.

یک کامپیوتر، برخی جزئیات، ابزارهایی که هر کسی می تواند یک کنترل ساده از لوازم خانگی را از این رایانه سازماندهی کند. بسیاری از دستگاه‌هایی که در زندگی روزمره استفاده می‌شوند عملکردهای زیادی دارند، به عنوان مثال، اکثر تلویزیون‌های مدرن می‌توانند تعدادی کانال مختلف را نشان دهند، ممکن است یک فن داشته باشد. تعدادی از حالت های عملیاتی مختلف و غیره برای ایجاد چنین کنترل پیچیده ای مانند تغییر کانال ها یا حالت های عملیاتی، علاوه بر موارد فوق، به دانش، جزئیات و ابزارهای اضافی نیز نیاز است، اما هرکسی که موارد ذکر شده در بالا را دارد می تواند یک روشن و خاموش کردن ساده را انجام دهد. آردوینو از طریق پورت USB با کامپیوتر ارتباط برقرار می کند، انتقال اطلاعات از کامپیوتر به آردوینو می تواند از طریق محیط توسعه آردوینو (به نام Arduino IDE) انجام شود که می توان آن را از صفحه وب سایت رسمی آردوینو دانلود کرد. ماژول های مختلفی برای تعامل آردوینو با دنیای خارج وجود دارد، به عنوان مثال، یک ماژول ویژه با یک بلوک رله برای تغییر بارها، هنگام استفاده از چنین ماژول هایی، کار بسیار ساده می شود، در اینجا ما تولید مستقل یک ماژول را در نظر خواهیم گرفت. با یک رله برای روشن / خاموش کردن لوازم خانگی، در صورت لزوم، می توانید بیش از یک ماژول از این قبیل بسازید و با یک آردوینو از آنها استفاده کنید، بنابراین کنترل آسان بسیاری از لوازم خانگی را امکان پذیر می کند. آردوینو (هر کدام) دارای تعدادی پین همه منظوره است که روی تابلو به سادگی با اعداد یا اعداد با علامت "~" موج دار مشخص شده اند. با اتصال آردوینو به کامپیوتر و نوشتن یک طرح خاص (برنامه ای برای آردوینو) در آن (در آردوینو)، می توانید این پین ها را از طریق برنامه Arduino IDE با ولتاژ بالا (حدود 5+ ولت (HIGH) از این کامپیوتر کنترل کنید. )) یا کم (حدود 0 ولت (LOW)). همچنین در آردوینو یک پین "GND" (که روی برد مشخص شده است) وجود دارد. اگر در یکی از پایانه های همه منظوره ولتاژ بالایی وجود داشته باشد، با اتصال جریانی رسانا بین این ترمینال و ترمینال "GND"، جریان الکتریکی از طریق آنچه متصل است عبور می کند و مقدار این جریان به مقاومت این جسم و می توان با محاسبه، به عنوان مثال هر چه مقاومت کمتر باشد، جریان بیشتر می شود، اما اگر مقاومت خیلی کم باشد، جریان زیادی از آردوینو عبور می کند و می سوزد. حداکثر جریانی که پین ​​همه منظوره آردوینو می تواند تولید کند بسته به میکروکنترلر مورد استفاده در آن می تواند متفاوت باشد، اما معمولاً 40 میلی آمپر = 0.04 آمپر است - ممکن است برای روشن کردن رله ای که دستگاه را روشن می کند کافی نباشد ( دستگاه ها)، بنابراین، برای تقویت جریان، باید از یک عنصر اضافی مانند ترانزیستور دوقطبی استفاده کنید. یک ترانزیستور دوقطبی دارای سه سرب است: امیتر، کلکتور، پایه. حداکثر جریان ترانزیستور نیز مانند آردوینو محدود است و معمولاً بیشتر است، به عنوان مثال، در KT315 محبوب، حداکثر جریان 100 میلی آمپر = 0.1 آمپر است. ترانزیستورهای دوقطبی دو نوع هستند n-p-n و p-n-p که از هر دو نوع می توان استفاده کرد اما به روش های مختلف و در ادامه به استفاده از ترانزیستور KT315 می پردازیم که نوع آن n-p-n است. برای اینکه ترانزیستور جریان آردوینو را تقویت کند، باید پایه خود را از طریق یک مقاومت با مقاومت 1 کیلو اهم به ترمینال آردوینو متصل کرد (روی مقاومت 1k نوشته شده است)، امیتر این ترانزیستور را به "GND" وصل کنید. " آردوینو و منهای منبع تغذیه یا "GND" منبع تغذیه که ولتاژ آن برابر با ولتاژ سیم پیچ رله موجود است (مثلاً 12 ولت) یکی از پایانه های سیم پیچ رله است. متصل به کلکتور ترانزیستور دیگری با منبع تغذیه مثبت (+ 12 ولت مجاز است) و یکی دیگر که روی تقویت تاثیر نمی گذارد اما یک جزئیات بسیار مهم دیود است که باید با آند به کلکتور وصل شود. کاتد به همراه منبع تغذیه (+ 12 ولت). اگر دیود وارد شده باشد، به احتمال زیاد یک نوار نور روی بدنه آن وجود خواهد داشت - این نشان دهنده کاتد است، خروجی دیگر دیود آند است. خروجی های باقیمانده رله خروجی کنتاکت های آن است که اگر دو عدد باشد و بسته نباشند، وقتی جریان کافی به سیم پیچ رله داده شود، این کنتاکت ها بسته می شوند، باید به صورت سری به دستگاه متصل شوند و این اتصال سریال را می توان به پریز وصل کرد، سپس با بسته شدن کنتاکت ها، دستگاه 220 ولت دریافت می کند و روشن می شود. موارد فوق را می توان در تصویر نشان داد:

شکل 1 - کنترل دستگاه از طریق کامپیوتر


این یک طرح غیر استاندارد برای درک بهتر است، آنها معمولا از طرح هایی مانند زیر استفاده می کنند:

شکل 2 - کنترل دستگاه از طریق کامپیوتر


اگرچه این نمودار همچنین دارای یک نام غیر استاندارد برای برد آردوینو است. شکل Arduino UNO را نشان می دهد (می توانید آن را در این لینک http://ali.pub/1v22bh سفارش دهید) اما می توانید از هر نوع دیگری استفاده کنید. اتصالات را می توان به عنوان مثال روی تخته نان و سیم یا لحیم ایجاد کرد. پس از اینکه همه چیز به درستی وصل شد و بررسی شد، می‌توانید آردوینو را از طریق USB به رایانه خود متصل کنید و یک طرح را در آن بارگذاری کنید:

کاراکتر pc_code = 0;

تنظیم خالی ()
{
pinMode (2، OUTPUT)؛
Serial.begin (9600);
}

حلقه خالی ()
{
if (Serial.available ()> 0)
{
pc_code = Serial.read ();
اگر (pc_code == "a")
{
digitalWrite (2، HIGH);
}
other if (pc_code == "b")
{
digitalWrite (2، LOW)؛
}
}
}

نحوه صحیح پیکربندی آردوینو و آپلود یک طرح در آن قبلاً در صفحه توضیح داده شده است. علاوه بر این، برای روشن کردن دستگاه، باید نماد "a" را به آردوینو ارسال کنید تا نماد "b" خاموش شود. برای ارسال نماد به آردوینو، می‌توانید در Arduino IDE، وارد تب Tools-Serial Port Monitor شده و در پنجره‌ای که در کادر متن بالا ظاهر می‌شود، علامت‌ها را وارد کرده و با فشار دادن دکمه «ارسال» ارسال کنید. نماد به آردوینو می‌آید، و برای این مورد، اگر علامت "a" را ارسال کنید، دستگاه روشن می‌شود، اگر "b" پس از آن خاموش می‌شود. اگر آردوینو کاراکترها را قبول نمی کند، باید همان سرعتی را که در طرح در گوشه سمت راست پایین پنجره نمایشگر پورت سریال مشخص شده است، تنظیم کنید. 9600 باد برای روشن کردن 2 دستگاه، می توانید طرح را کمی تغییر دهید:

کاراکتر pc_code = 0;

تنظیم خالی ()
{
pinMode (2، OUTPUT)؛
pinMode (3، OUTPUT)؛
Serial.begin (9600);
}

حلقه خالی ()
{
if (Serial.available ()> 0)
{
pc_code = Serial.read ();
اگر (pc_code == "a")
{
digitalWrite (2، HIGH);
}
other if (pc_code == "b")
{
digitalWrite (2، LOW)؛
}
other if (pc_code == "c")
{
digitalWrite (3، HIGH);
}
other if (pc_code == "d")
{
digitalWrite (3، LOW)؛

مقالات مرتبط برتر