فهرست مطالب:

TinyLiDAR روی Pi؟: 9 مرحله (همراه با تصاویر)
TinyLiDAR روی Pi؟: 9 مرحله (همراه با تصاویر)

تصویری: TinyLiDAR روی Pi؟: 9 مرحله (همراه با تصاویر)

تصویری: TinyLiDAR روی Pi؟: 9 مرحله (همراه با تصاویر)
تصویری: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, اکتبر
Anonim
TinyLiDAR روی Pi؟
TinyLiDAR روی Pi؟

دوباره سلام!

خوب حالا که وقت با کیفیتی را با tinyLiDAR و آردوینو خود گذرانده اید - رزبری پای شما شاید کمی احساس تنهایی می کند ؛)

pi دارای پورت I2C است ، درست است؟ پس چرا آن را وصل نکنید و آن را امتحان نکنید ؟! برنامه خوبی است ، اما اگر قبلاً امتحان کرده اید - ممکن است متوجه شده باشید که داده ها کمی عجیب به نظر می رسند.

بله ، پی در حال حاضر دارای 1.8K کشش است ، بنابراین شما باید پدهای I2C را در tinyLiDAR برش دهید تا کشش های 4.7K از مدار خارج شوند-برای جزئیات بیشتر به دفترچه راهنمای مراجعه کنید. اما این دلیل داده های عجیب نیست.

این به این دلیل است که گذرگاه I2C pi دقیقاً مطابق مشخصات نیست. از زمانی که pi برای اولین بار به دلیل مجموعه تراشه های Broadcom معرفی شد ، اینطور بود. از همان ابتدا آنها به درستی از ویژگی I2C به نام "کشش ساعت" پشتیبانی نمی کردند.

می توانید در مورد این اشکال h/w اینجا بیشتر بخوانید.

مرحله 1: ساعت کششی چیست؟

ساعت کششی چیست؟
ساعت کششی چیست؟

همانطور که می دانید ، گذرگاه I2C از 3 سیم تشکیل شده است. اینها برای ساعت (SCL) ، داده (SDA) و زمینه مشترک است. ساعت و خطوط داده از نوع جمع کننده باز/تخلیه باز هستند ، به این معنی که آنها به مقاومت های کششی متصل به یک ریل تامین مثبت نیاز دارند تا منطقی بالا باشد. برای پایین آمدن منطق ، هر دستگاهی در اتوبوس می تواند خط را به سمت نقطه مشترک بکشد.

بر اساس استاندارد I2C ، دستگاه اصلی دستگاهی است که سیگنال ساعت را در خط SCL تأمین می کند ، اما اگر این سرعت بسیار زیاد باشد ، دستگاه Slave مجاز است با نگه داشتن خط ساعت آن را تا زمان آماده شدن برای معامله کند کند. با اطلاعات این چیزی است که ما آن را "کشش ساعت" می نامیم.

به طور رسمی ، کشش ساعت به عنوان یک ویژگی اختیاری در استاندارد I2C ذکر شد ، اما این ویژگی بسیار رایجی است که برای اکثر برده های "هوشمند" که به زمان بیشتری برای ارائه داده های حسگر و غیره نیاز دارند ، ضروری است.

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

برای مقابله با این اشکال I2C h/w ، ما یک کتابخانه رایگان زیبا و کوچک به نام "pigpio" پیدا کردیم. این کتابخانه بسیار محبوب ، سریع و سبک وزن است که به زبان C نوشته شده است. به عنوان یک شیطان پیش زمینه برای Raspberry Pi اجرا می شود و به ما اجازه می دهد I2C و همچنین هر GPIO را به راحتی از پایتون کنترل کنیم. این کتابخانه با پورت های I2C بیشتر شبیه GPIO رفتار می کند و در نتیجه اشکال کشش ساعت I2C را دور زده است. مانند تمام نرم افزارهای موجود در pi ، کتابخانه pigpio تنها یک "شامل" ساده است ، بنابراین بروید!

مرحله 3: TL ؛ نسخه DR

PiEnable SSH را برای ورود به سیستم با Putty نصب کنید کتابخانه pigpio را نصب کنید فایل zip کوچک LiDAR را از حالت فشرده خارج کرده و از Putty اجرا کنید

اختیاری:

SublimeText را با WinSCP راه اندازی کنید

مرحله 4: نصب

نصب و راه اندازی
نصب و راه اندازی

برای Raspberry Pi 3 ما از سیستم عامل استاندارد New Out Of the Box (NOOBS Lite v2.4) استفاده کردیم. این شامل یک نسخه پیش فرض از پایتون است که قبلاً برای ما آماده برنامه نویسی شده است. می توانید سیستم عامل را از اینجا بارگیری کنید.

پس از نصب روی کارت micro SD ، باید صفحه کلید و مانیتور را وصل کنید تا بتوانید برای اولین بار به pi وارد شوید:

نام کاربری: pi رمز عبور: تمشک

سپس می توانید یک سرور پوسته امن (SSH) را با این دستورات راه اندازی کنید:

sudo systemctl sshsudo systemctl start ssh را فعال کنید

در مرحله بعد به آدرس IP pi در شبکه شما نیاز داریم تا بتوانیم با PuTTY وارد سیستم شویم. برای به دست آوردن این ، فقط تایپ کنید:

نام میزبان -I

و به دنبال آدرس قالب IPv4 باشید (برای تنظیمات ما این بود: 192.168.0.27)

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

sudo systemctl ssh را غیرفعال کنید

البته این دستور باید در صفحه کلید متصل به pi تایپ شود.

PuTTY یک برنامه پایانی است که برای صدور دستورات از رایانه به pi لازم است ، بنابراین باید آخرین نسخه را از اینجا بگیرید.

PuTTY را نصب و راه اندازی کنید. باید آدرس IP را از بالا در ورودی نام میزبان تایپ کرده و از تنظیمات پیش فرض SSH استفاده کنید. نامی را که می خواهید به جلسه بدهید و ذخیره را فشار دهید. سپس بار را فشار دهید و روی OPEN کلیک کنید تا جلسه شروع شود.

باید شما را به صفحه ورود به سیستم pi برساند. از همان نام کاربری و گذرواژه خود که قبلاً استفاده کرده اید استفاده کنید.

مرحله 5: Pigpio را نصب کنید

در حال حاضر ، تنها چیزی که باید بعد از این نصب کنیم کتابخانه pigpio است و می توانیم این کار را با استفاده از دستورات زیر انجام دهیم.

نکته: می توانید [ctrl+c] را به سادگی کپی کرده و این دستورات و سایر دستورات دیگر را در ترمینال PuTTY بچسبانید.

sudo apt-get update

sudo apt-get pigpio python-pigpio python3-pigpio را نصب کنید

مرحله 6: اختیاری: Dev System Setup

اختیاری: راه اندازی سیستم Dev
اختیاری: راه اندازی سیستم Dev

بنابراین در اینجا نکته ای وجود دارد که ممکن است به صرفه جویی در زمان در دنیای توسعه کد شما کمک کند. ما واقعاً از ویرایشگران متن مبتنی بر یونیکس متنفر هستیم. رابط کاربری به طور معمول دست و پا چلفتی است و فونت ها مضحک هستند. GNU nano تقریبا قابل تحمل است اما هیچ کدام به اندازه SublimeText تصفیه نشده اند که می توانید از اینجا بارگیری کنید

ما یک محیط توسعه مبتنی بر پنجره داریم و دوست داریم در صورت امکان از این ویرایشگر متن استفاده کنیم. بنابراین نکته اینجاست که سیستم خود را تنظیم کنید تا بتوانید از این ویرایشگر حرفه ای متن بومی در دسکتاپ ویندوز خود استفاده کنید تا مستقیماً روی pi بدون سر خود کدگذاری کنید.

چگونه؟ با استفاده از یک برنامه رایگان به نام WinSCP که می توانید از اینجا بارگیری کنید

مرحله 7: راه اندازی WinSCP

راه اندازی WinSCP
راه اندازی WinSCP
راه اندازی WinSCP
راه اندازی WinSCP

WinSCP یک برنامه انتقال فایل امن است که به صورت گرافیکی از فایل های موجود در rpi شما مانند آنچه در مدیریت فایل در رایانه ویندوز خود مشاهده می کنید ، ارائه می دهد.

بنابراین پیش بروید و دو برنامه فوق را نیز همین حالا نصب کنید.

در مرحله بعد باید تعدادی تنظیمات انجام دهید تا همه آنها به درستی کار کنند.

برای WinSCP ، می توانید روی NEW Site کلیک کنید. ما از تنظیمات پیش فرض SFTP استفاده می کنیم و شما فقط باید آدرس IP (برای نام میزبان) pi خود و نام ورود (برای نام کاربری) را وارد کنید. در صورت تمایل می توانید گذرواژه را خالی بگذارید - هر بار که وارد سیستم می شوید رمز عبور را از شما درخواست می کند.

سپس ، روی دکمه Advanced کلیک کنید و سپس در سمت چپ تنظیمات Environment Shell را کلیک کنید. در سمت راست ، "پیش فرض" را به گزینه "sudo su -" تغییر دهید. این باعث می شود هنگام ضربه زدن به ذخیره از SublimeText ، تغییرات بدون خطای اجازه در pi شما نوشته شود.

SublimeText را به عنوان ویرایشگر پیش فرض در WinSCP تنظیم کنید

برای انجام این کار ، روی دکمه Tools در صفحه تنظیمات ورود به سیستم WinSCP که گفتگوی NewSite خود را در آن شروع کرده اید ، کلیک کنید. دو عکس روی صفحه نحوه پیکربندی را نشان می دهد ، اما اساساً برای پیکربندی ترجیح ویرایشگران و افزودن ویرایشگر که یک ویرایشگر خارجی است کلیک کنید. سپس می توانید فایل.exe محل این ویرایشگر را در رایانه خود مرور کنید.

مرحله 8: (w) دریافت کد

(w) دریافت کد
(w) دریافت کد

پس از اتمام کار ، با WinSCP و PuTTY وارد شوید.

اکنون همه چیز آماده است که بتوانیم کد tinyLiDAR خود را شروع کنیم.

زیر فهرست home/pi خود یک فهرست به نام tinyLiDAR ایجاد کنید.

می توانید این کار را با راست کلیک کردن در سمت راست صفحه WinSCP انجام دهید و New / Directory را انتخاب کنید.

اکنون می توانید در ترمینال PuTTY تایپ کنید

سی دی تی

و tab را فشار دهید تا اجازه دهد فرمان شما به صورت خودکار تکمیل شود و به دایرکتوری tinyLiDAR برسد.

یکبار اینجا موارد زیر را تایپ کنید:

wget

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

فشرده کردن r

و tab را فشار دهید تا دوباره نام خود را تکمیل کنید

برای اجرای آن ، فقط تایپ کنید

python tlgui.py

و tinyLiDAR شما به هر فرمان شما در pi پاسخ می دهد:)

مرحله 9: توجه برای هکرهای آینده

پیش بروید و با دوبار کلیک بر روی هر یک از فایل های کد WinSCP ، زیر کاپوت را مشاهده کنید. آنها دارای پسوند.py هستند. فایلها باید مستقیماً در SublimeText روی رایانه شما باز شوند. هر چیزی را که دوست دارید تغییر دهید و سپس save را بزنید. تغییرات شما مستقیماً در pi شما ذخیره می شود.

وقتی آماده بودید ، با استفاده از کلید پیکان بالا برای آخرین فرمان تایپ شده ، آن را دوباره اجرا کنید یا فقط دوباره آن را تایپ کرده و enter را فشار دهید:

python tlgui.py

ممکن است متوجه شده باشید که طرح GUI ترمینال کمی بهتر از نسخه آردوینو به نظر می رسد. این به این دلیل است که PuTTY از کاراکترهای یونیکد پشتیبانی می کند ، بنابراین ما توانستیم از برخی از کاراکترهای کنترل مکان نما اضافی برای وضوح بیشتر استفاده کنیم.

همچنین یک دستور اضافه شده (در مقایسه با نسخه آردوینو) وجود دارد که برای عملکرد خواندن مداوم "dc" است. آن را امتحان کنید و نظر خود را ببینید.

فقط همین!

با تشکر از شما برای خواندن و لذت بردن از هک کردن pi:)

توصیه شده: