فهرست مطالب:

بازخورد LED SONIC: 7 مرحله (همراه با تصاویر)
بازخورد LED SONIC: 7 مرحله (همراه با تصاویر)

تصویری: بازخورد LED SONIC: 7 مرحله (همراه با تصاویر)

تصویری: بازخورد LED SONIC: 7 مرحله (همراه با تصاویر)
تصویری: EP11 ShibaDoge Burn Bullish Show Lunched by Shibarium Shiba Inu Doge Coin Multi Millionaires Whales 2024, نوامبر
Anonim
بازخورد LED SONIC
بازخورد LED SONIC
بازخورد LED SONIC
بازخورد LED SONIC
بازخورد LED SONIC
بازخورد LED SONIC

سلام دوباره ،

از اینکه ربات شما با همه چیز برخورد می کند متنفر هستید؟ این مشکل را برطرف می کند. با 8 سنسور صوتی این امر پیچیده به نظر می رسد … اما در واقع من این کار را بسیار آسان کردم. من سعی می کنم پروژه هایی ارسال کنم که به شما در یادگیری آردوینو و نشان دادن مفهوم "خارج از جعبه" کمک می کند. این پست به شما کمک می کند تا سوئیچ 595 ، pro-minis را به عنوان یک سنسور قابل برنامه ریزی و استفاده بزرگ از بازخورد رهبری در زمان واقعی را درک کنید. اگر از آردوینو به عنوان "کپی و جایگذاری و افزونه" لذت می برید ، ممکن است این مورد را رد کنید.

من دوست دارم از pro-minis استفاده کنم. قیمت آنها تقریباً 2.50 دلار است ، به طور کامل کار می کند و نصب هدرها آنها را بسیار انعطاف پذیر می کند. با استفاده از حسگر میکرو می توانید به جای آنچه سنسور خریداری می کند ، آنچه را که می خواهید انجام دهید. با استفاده از I2C تنها با استفاده از 2 سیم ، می توان آنها را در یک خط به هم وصل کرد. بنابراین با حرکت روی MEGA I می توانید 4 مینی داشته باشید که 4 خط مجزا از کد را به طور همزمان اجرا می کنند ، فقط 10 دلار. در اینجا من از یک مینی برای نمایش سنسورهای صوتی از طریق 595 و نشان دادن فاصله رهبری در زمان واقعی استفاده می کنم. سپس فقط 8 بیت داده را با برد مادر به اشتراک بگذارید. این بار را از روی برد مادربرد برداشته و کد او را بسیار ساده می کند.

یک مشکل در حسگرهای صوتی وجود دارد … بدون بازخورد بصری. شما هرگز نمی دانید که سنسور فقط وزن کم است یا کار می کند! من معتقدم کسانی که با "BLINK" آشنا شده اند باهوش تر از اینشتین هستند. فقط یک مورد هدایت می شود و یک جهان اطلاعات با چشمک زدن منتقل می شود. بنابراین یک سنسور صوتی به بازخورد بلادرنگ نیاز دارد. در اینجا از آرایه ای از led ها برای نظارت بر هر سنسور استفاده کردم. شما به آنها احتیاج ندارید ، فقط سنسورها را بدون لامپ بسازید. اما داشتن led ها در PCB مفید است.

مرحله 1: ساخت PCB

PCB بسازید
PCB بسازید
PCB بسازید
PCB بسازید
PCB بسازید
PCB بسازید
PCB بسازید
PCB بسازید

PCB بسازید و پر کنید احتیاط … من در PCB در اتصالات 4 پین اشتباه کردم تا سنسورهای صوتی به آن متصل شوند. ECHO و TRIGGER Vcc و زمینه قرار بود به pcb وصل شوند. فضای کافی برای کانکتورها وجود ندارد ، بنابراین من PCB را با پین های خروجی درست کردم. بنابراین می توانید اتصال دهنده سیم را به PCB لحیم کرده و سنسورهای صوتی واقعی را وصل کنید. در مورد لیدها من لبه های زرد را در لبه داخلی و قرمز را در خارج قرار دادم. اگر سنسورها به درستی اندازه گیری شده اند ، این به شما کمک می کند تا از راه دور ببینید.

این یکی از چند رایانه شخصی است که من تا به حال ساخته ام. ترجیح می دهم 2 ea یک طرفه بسازم و پرش کننده ها را اجرا کنم. اما برای به دست آوردن صفحه نمایش LED حداقل به PCB بالا نیاز دارید. طرح بندی را در بارگیری جدا کردم.

PCB مخصوص یک mini mini با A4-A5 در قسمت سربرگ است. در هر صورت فقط A4-A5 را به Master A4-A5 وصل کنید. Vcc و Grounds را نیز فراموش نکنید.

مرحله 2: بسیاری از اشتباهات

بسیاری از اشتباهات
بسیاری از اشتباهات

در حال حاضر برای اشتباهاتم … من سعی کردم Triggers را یکجا (همه به هم گره بزنم) باز کنم و این نوع کار خوب بود ، اما برخی تعاملات صورت گرفت. بنابراین اکنون همه ECHOS به میکرو (8) می روند و TRIGGERS توسط 595 تنظیم می شود. سه پین دیگر (3). در مورد led ها ، مالتی پلکس کار نمی کند. برای هر led نیاز به یک زمان روشن کامل دارید. این بدان معناست که هر ردیف 7 led باید 595 مختص به خود را داشته باشد. هنگامی که 595 را به روز می کنید ، led ها تا به روزرسانی بعدی روشن می مانند. جایی که مالتی پلکس led تنها در آن دهم ثانیه روشن می شود. این در خوانندگان من خوب کار می کند و به یک میکرو اختصاصی نیاز دارد. زمانی برای اسکن 8 سنسور صوتی و اندازه گیری فاصله وجود ندارد. من تلاش کردم و نتایج بسیار ضعیفی گرفتم. انعطاف پذیری led ها همچنین به معنی شبکه ای از سطر + ستون است و این بدان معناست که حدود 64+ از طریق PCB تغذیه می شود.

من فقط از 7 خروجی از 595 به دلیل شلوغی روی PCB استفاده کردم. از راه دور نمی توانید تشخیص دهید که 7 یا 8 led فقط حرکت آنها وجود دارد. ممکن است وسوسه شوید که تمام led ها را به یک مقاومت واحد وصل کنید و این کار می کند ، اما روشنایی آرایه با میزان led هایی که کم هستند تغییر می کند. بنابراین یک مقاومت در هر led بهترین است. من فقط 595 را دوست دارم اما اگر آنها پین های Vcc و 0-out را جابجا کنند یا یک آی سی 18 پین با همه خروجی ها در یک طرف ایجاد کنند … اتصال هر هشت خروجی بسیار آسان خواهد بود. اما در آن صورت کمتر از 30 سنت به فروش نمی رسد.

مرحله 3: نصب سنسورها

سنسورهای کوه
سنسورهای کوه
سنسورهای کوه
سنسورهای کوه
سنسورهای کوه
سنسورهای کوه
سنسورهای کوه
سنسورهای کوه

سنسورهای صوتی را به درب قهوه بچسبانید. جک نر باید روی هر سنسور به سمت داخل خم شود. اگر یک پین را در یک زمان خم کنید ، این کار بهتر انجام می شود. من از نوار فوم 2 طرفه استفاده کردم تا ارتعاش کمتر شود. سنسورهای من خیلی نزدیک هستند و برای مطابقت بهتر با PCB به فضای 1/4 اینچی نیاز دارند. من قبلاً از سنسورهای صوتی استفاده کرده ام و گاهی اوقات اندازه گیری دقیق انجام نمی شود و شما باید این را در نظر داشته باشید. بنابراین همه آنها را به طور دائم چسب نزنید.

همچنین به شما امکان می دهد قبل از استفاده از آنها ، یک تست فاصله سریع را روی هر یک انجام دهید. من تقریباً یک سنسور با خواندن ضعیف در یک دسته 20 دریافت می کنم. برای قیمت من بد نیست.

مرحله 4: سیم سخت

HARD WIRE
HARD WIRE

من فکر می کردم جایی برای جک ها و دوشاخه ها از کامپیوتر به کامپیوتر وجود دارد

پین های صوتی اما من از اتاق فرار کردم. بنابراین به سختی قسمت pcb را سیم کشی کردم و فقط سیم های اکو و ماشه را با جک های زن (8eaa) ساختم. من سنسورهای 8ea Vcc و 8ea را به هم وصل کردم ، بنابراین فقط 2 اتصال به PCB برای آنها ایجاد شد.

با 8 سنسور و 8 595 ثانیه یک دستگاه uno یا mini mini نمی تواند این را تغذیه کند. به عنوان بخشی از این پروژه باید یک منبع تنظیم شده با 5 ولت وجود داشته باشد. روبات من یک باتری 7805 @ 1amp ساده دارد. این به همه 5v Vcc برای همه دستگاه ها متصل است. ولتاژ 7805 تقریباً یک ولت افت می کند بنابراین برای تغذیه آن به حداقل 6.5 ولت نیاز دارید. یعنی 2 باتری لیتیوم با قدرت 3.3 ولت. ربات من دارای نیکادهای قدیمی از بسته های مته استفاده شده است و 8 نیکاد از موتور 12 ولت معمولی چین در شاسی مخزن 20 دلاری استفاده می کند.

مرحله 5: SONIC SKETCH را بارگیری کنید

SONIC SKETCH را بارگیری کنید
SONIC SKETCH را بارگیری کنید

طرح را بارگیری و نصب کنید. راه های زیادی برای صحبت کردن وجود دارد

uno دیگر اما I2c را دوست دارم سردرگمی آدرس دهی و ارباب/ برده است. مانند اکثر سنسورها (مینی دوم را به عنوان سنسور در نظر بگیرید) به سنسور خطاب کرده و مقدار x بایت را درخواست می کنید. همین چیز اینجا در مینی دوم شما مقدار x بایت را که می خواهید ارسال کنید کنار می گذارید. سردرگمی این است که اسامی مهم نیستند. این تنها به شما کمک می کند اگر نام ها را به اشتراک بگذارید. بنابراین در طرح من 8 اندازه گیری فاصله صوتی را در سانتی متر به عنوان sendR1 ، sendR2 ، sendR3 ، sendR4 ، sendL1 ، sendL2 ، sendL3 ، sendL4 ارسال می کنم. Master فقط 8 بایت در صورت دریافت داده دریافت می کند و شما می توانید آن بایت ها را هرطور که می خواهید صدا کنید. من آنها را به صورت gotR1 ، gotR2 ، got….. ترتیب ارسال بایت ها یکسان است. بنابراین بایت A ، B ، C….. فکر نکنید با تغییر نام داده های متفاوتی در اختیار شما قرار می گیرد. و نکته دیگر ، شما فقط می توانید داده هایی را دریافت کنید که گفته می شود ارسال می شوند. بنابراین اگر داده های دیگر می خواهید باید هر دو master و slave را تغییر دهید.

مرحله 6: ارتباط

ارتباط
ارتباط

اگر می دانید چگونه 2 Uno را برای صحبت با یکدیگر تنظیم کنید ، می توانید این مورد را رد کنید. در پایان اطلاعات مفصلی دارم برای سهولت کار ، من uno در پایه روبات M1 و سنسور صوتی را S2 می نامم. Vcc ، ground ، A4 ، A5 را به یکدیگر وصل کنید.

در طرح S2 با #شامل شروع می شود

سپس 8 بایت برای ارسال ایجاد کنید. بایت R1 ، بایت R2 ، بایت L1 و …

در 'setup ()' add 'Wire.begin (address)' این به I2c می گوید این دستگاه کدام است. آدرس معمولاً هر عددی است که دوست دارید بین 4 تا 200 باشد. اندازه یک بایت است. در اینجا من از شماره 10 استفاده کردم. بنابراین برای صحبت با این سنسور S2 ، استاد باید با Wire تماس بگیرید. درخواست از (10 ، 8). این آدرس 10 است و 8 تعداد بایت مورد نیاز است. همچنین در 'setup ()' Wire.onRequest (isr anyName) را اضافه کنید. هنگامی که M1 با درخواست تماس می گیرد ، سنسور S2 با وقفه واکنش نشان می دهد. این فقط تابع anyName را صدا می کند. بنابراین این تابع anyName باید ایجاد شود. به طرح نگاه کنید و تابع 'sendThis ()' را ببینید در اینجا بایت ها به M1 ارسال می شوند. بایت ها به تنهایی می روند و نام ها و به ترتیب ارسال نمی شوند. اندازه و مقدار داده برای ارسال از اینجا شروع می شود. در این قالب آسان بایت ارسال و دریافت باید مطابقت داشته باشد. در اینجا 8 بایت ارسال شده و 8 بایت دریافت شده است. یک نکته در اینجا فراخوانی یک تابع نیاز به () دارد. مانند تأخیر () ، millis () ، Serial.print (). هنگام استفاده از ISR (روال وقفه سرویس) فراخوانی عملکرد () را کاهش می دهد. بنابراین Wire.onRequest (sendThis) نه Wire.onRequest (sendThis ()).

سردرگمی که داشتم موضوع اصلی/برده بود. در ابتدا فکر می کردم استاد همیشه استاد است. اما در داخل طرح می توانید master/slave را برای درخواست از میکروهای دیگر یا ارسال به میکروهای دیگر تغییر دهید. به شرطی که از فرمت اولیه ای که در بالا ذکر شد پیروی کنید. به خاطر داشته باشید … شما فقط داده های اختصاص داده شده را به اشتراک بگذارید.

دو قطعه تمیز دیوار. وقفه isr فقط بین خطوط طرح بندی وقفه ایجاد می کند. اگر در حلقه "while یا for" قفل شده باشید ، تا خروج حلقه هیچ اتفاقی نمی افتد. مشکل بزرگی نیست زیرا ممکن است چند میکرو ثانیه باشد و داده ها قدیمی هستند.

مشکل دیگر این است که "درون" میکرو 100٪ محاسبه بدون خطا وجود دارد. هرگونه ارتباط "خارج" (سیم) مشمول خطا می شود. روش های زیادی برای بررسی اینکه آیا داده های ارائه شده عاری از خطا است و با منبع مطابقت دارد ، وجود دارد. ساده ترین راه ، چک چک است. فقط کل بایت های ارسال کننده (مقادیر واقعی) را اضافه کرده و مجموع ها را ارسال کنید و در انتهای دریافت کننده مجموع ها را اضافه کنید و ببینید آیا مطابقت دارند یا خیر. اگر آنها مطابقت دارند یا آن مجموعه داده را در غیر این صورت پرتاب می کنند. البته این شامل ارسال یک عدد صحیح است نه بایت. بنابراین شما فقط باید عدد صحیح را به بایت HI و LO بایت تقسیم کرده و به عنوان بایت جداگانه ارسال کنید. سپس کنار گیرنده قرار دهید.

آسان:

int x = 5696 ؛ (هر مقدار int معتبر ، حداکثر 65k یا 32k منفی است)

بایت سلام = x >> 8؛ (22)

بایت lo = x؛ (64)

ارسال بایت و ترکیب در انتهای دیگر….

بایت سلام = Wire.read ()؛

بایت lo = Wire.read ()؛

int newx = (سلام << 8) + lo؛ (5696)

مرحله 7: بستن

بستن
بستن
بستن
بستن
بستن
بستن
بستن
بستن

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

توصیه شده: