جدول المحتويات:

TinyLiDAR على Pi؟: 9 خطوات (بالصور)
TinyLiDAR على Pi؟: 9 خطوات (بالصور)

فيديو: TinyLiDAR على Pi؟: 9 خطوات (بالصور)

فيديو: TinyLiDAR على Pi؟: 9 خطوات (بالصور)
فيديو: tinyLiDAR From Concept to Creation 2024, شهر نوفمبر
Anonim
TinyLiDAR على Pi؟
TinyLiDAR على Pi؟

مرحبا مجددا!

حسنًا ، بعد أن قضيت بعض الوقت الجيد مع tinyLiDAR و Arduino - ربما يشعر Raspberry Pi الخاص بك بالوحدة قليلاً ؛)

يحتوي pi على منفذ I2C أليس كذلك؟ فلماذا لا تربطها وتجربتها هناك ؟! خطة جيدة ، ولكن إذا كنت قد جربت بالفعل - فربما لاحظت أن البيانات تبدو غريبة بعض الشيء.

نعم ، لقد بنيت pi في 1.8K سحبًا بالفعل ، لذا سيتعين عليك قطع وسادات I2C على tinyLiDAR للحصول على سحب 4.7K خارج الدائرة - راجع الدليل المرجعي للحصول على التفاصيل. لكن ليس هذا هو سبب البيانات الغريبة.

ذلك لأن ناقل Pi I2C لا يتوافق تمامًا مع المواصفات. لقد كان الأمر كذلك منذ أن تم تقديم pi لأول مرة بسبب مجموعة شرائح Broadcom. منذ البداية لم يدعموا بشكل صحيح ميزة I2C تسمى "تمديد الساعة".

يمكنك قراءة المزيد عن هذا الخطأ هنا.

الخطوة 1: ما هي تمدد الساعة؟

ما هي الساعة الممتدة؟
ما هي الساعة الممتدة؟

كما تعلم ، يتكون ناقل I2C من 3 أسلاك. هذه مخصصة للساعة (SCL) والبيانات (SDA) والأرضية المشتركة. تكون خطوط الساعة والبيانات من النوع المفتوح / الصرف المفتوح مما يعني أنها بحاجة إلى مقاومات سحب متصلة بسكة إمداد موجبة لمنحهم منطقًا مرتفعًا. للحصول على منطق منخفض ، يمكن لأي جهاز في الحافلة سحب الخط إلى أرضية مشتركة.

وفقًا لمعيار I2C ، فإن جهاز Master هو الجهاز الذي يوفر إشارة الساعة على خط SCL ولكن إذا كان هذا المعدل سريعًا جدًا ، يُسمح للجهاز Slave بإبطائه ببساطة عن طريق الضغط باستمرار على خط الساعة حتى يصبح جاهزًا للتعامل بالمعلومات. هذا ما نسميه "إطالة الساعة".

رسميًا ، تم إدراج تمديد الساعة كميزة اختيارية في معيار I2C ولكنها ميزة شائعة جدًا ضرورية لمعظم العبيد "الأذكياء" الذين يحتاجون إلى بعض الوقت الإضافي لتوفير بيانات المستشعر وما إلى ذلك.

الخطوة 2: القليل من المساعدة من الخنازير التي تطير

للتعامل مع هذا الخطأ I2C h / w ، وجدنا مكتبة مجانية صغيرة لطيفة تسمى "pigpio". إنها مكتبة شائعة جدًا وسريعة وخفيفة الوزن مكتوبة باللغة C. وتعمل كخلفية خفية لـ Raspberry Pi وتسمح لنا بالتحكم في I2C وكذلك أي GPIO بسهولة من Python. تتعامل المكتبة مع منافذ I2C مثل GPIO وبالتالي تجاوزت خطأ تمدد ساعة I2C. مثل جميع البرامج الموجودة على pi ، فإن مكتبة pigpio ليست سوى مجرد أداة "تضمين" بسيطة ، لذا دعنا نذهب!

الخطوة 3: TL ؛ إصدار DR

قم بإعداد PiEnable SSH لتسجيل الدخول باستخدام PuttyInstall pigpio library get tinyLiDAR zip fileUnzip and run from Putty

اختياري:

إعداد SublimeText مع WinSCP

الخطوة 4: التثبيت

التركيب
التركيب

بالنسبة إلى Raspberry Pi 3 ، استخدمنا نظام التشغيل القياسي الجديد Out Of the Box Software (NOOBS Lite v2.4). يحتوي على إصدار افتراضي من Python مثبت بالفعل لنا جاهز للتشفير به. يمكنك تنزيل نظام التشغيل من هنا.

بمجرد التثبيت على بطاقة micro SD ، يجب عليك توصيل لوحة مفاتيح وشاشة حتى تتمكن من تسجيل الدخول إلى pi لأول مرة:

اسم المستخدم: pi Password: Raspberry

ثم يمكنك بدء خادم shell آمن (SSH) بالأوامر التالية:

sudo systemctl تمكين sshsudo systemctl بدء ssh

بعد ذلك ، سنحتاج إلى عنوان IP الخاص بـ pi على شبكتك حتى نتمكن من تسجيل الدخول باستخدام PuTTY. للحصول على هذا ، فقط اكتب:

اسم المضيف -أنا

وابحث عن عنوان بتنسيق IPv4 (بالنسبة إلى الإعداد لدينا كان: 192.168.0.27)

ستسمح الخطوات المذكورة أعلاه لـ pi بالعمل "بدون رأس" مما يعني أنك لن تحتاج إلى الكتابة على لوحة المفاتيح هذه مرة أخرى ولن تكون هناك حاجة أيضًا إلى شاشة فيديو بعد الآن. سنقوم بتسجيل الدخول من خلال الشبكة عبر اتصال SSH آمن من الآن فصاعدًا. يؤدي الأمر أعلاه إلى بدء تشغيل خادم SSH تلقائيًا في كل مرة يتم فيها تشغيل pi. يعد هذا مناسبًا لنا أثناء قيامنا بالترميز ، ولكنه قد يمثل مخاطرة أمنية لاحقًا (كونك مصابًا بجنون العظمة أمرًا جيدًا) لذلك عندما تكون جاهزًا ، يمكنك تعطيل ميزة SSH لبدء التشغيل التلقائي باستخدام هذا الأمر:

sudo systemctl تعطيل ssh

يجب كتابة هذا الأمر على لوحة المفاتيح المتصلة بـ pi بالطبع.

PuTTY هو برنامج طرفي مطلوب لإصدار أوامر من الكمبيوتر الشخصي إلى pi ، لذا يجب عليك الحصول على أحدث نسخة من هنا.

قم بتثبيت وبدء تشغيل PuTTY. ستحتاج إلى كتابة عنوان IP من الأعلى في إدخال اسم المضيف واستخدام إعدادات SSH الافتراضية. امنح الجلسة أي اسم تريده واضغط على حفظ. ثم اضغط على load وانقر فوق OPEN لبدء الجلسة.

يجب أن ينقلك إلى شاشة تسجيل الدخول الخاصة بـ pi. استخدم نفس اسم المستخدم وكلمة المرور اللذين استخدمتهما سابقًا.

الخطوة 5: تثبيت Pigpio

الآن ، الشيء الوحيد الذي نحتاج إلى تثبيته بعد ذلك هو مكتبة pigpio ويمكننا القيام بذلك باستخدام الأوامر التالية.

نصيحة: يمكنك ببساطة نسخ [ctrl + c] ولصق [النقر بزر الماوس الأيمن] هذه وأية أوامر أخرى في محطة PuTTY

sudo apt-get update

sudo apt-get install pigpio python-pigpio python3-pigpio

الخطوة 6: اختيارية: إعداد نظام التطوير

اختياري: Dev System Setup
اختياري: Dev System Setup

إذن ، إليك نصيحة قد تساعد في توفير بعض الوقت في عالم تطوير الكود الخاص بك. نحن حقا نكره محرري النصوص المعتمدين على نظام يونكس. عادة ما تكون واجهة المستخدم خرقاء والخطوط سيئة. غنو نانو محتمل تقريبًا ولكن لا شيء يتم تنقيته مثل SublimeText التي يمكنك تنزيلها من هنا

لدينا بيئة تطوير قائمة على Windows ونحب استخدام محرر النصوص هذا كلما أمكن ذلك. لذا فإن النصيحة هنا هي في إعداد نظامك لتتمكن من استخدام محرر النصوص المحترف هذا أصلاً على سطح مكتب Windows الخاص بك للترميز مباشرة على جهاز pi مقطوع الرأس.

كيف؟ باستخدام تطبيق مجاني يسمى WinSCP يمكنك تنزيله من هنا

الخطوة 7: إعداد WinSCP

إعداد WinSCP
إعداد WinSCP
إعداد WinSCP
إعداد WinSCP

WinSCP هو برنامج آمن لنقل الملفات يوفر تمثيلًا رسوميًا للملفات الموجودة على نوع rpi الخاص بك مثل ما تراه في مدير الملفات على جهاز الكمبيوتر الذي يعمل بنظام Windows.

لذا انطلق وقم بتثبيت البرنامجين المذكورين أعلاه أيضًا الآن.

بعد ذلك ، سيتعين عليك إجراء بعض التعديلات لجعلها تعمل بشكل صحيح.

بالنسبة إلى WinSCP ، يمكنك النقر فوق موقع جديد. سنستخدم إعدادات SFTP الافتراضية وستحتاج فقط إلى إدخال عنوان IP (لاسم المضيف) الخاص بـ pi واسم تسجيل الدخول (لاسم المستخدم). يمكنك اختيار ترك كلمة المرور فارغة إذا أردت - ستطالبك بكلمة المرور في كل مرة تقوم فيها بتسجيل الدخول.

بعد ذلك ، انقر فوق الزر Advanced ثم انقر فوق الجانب الأيسر لإعدادات Environment Shell. على الجانب الأيمن ، قم بتغيير "الافتراضي" المنسدلة إلى خيار "sudo su -". سيسمح هذا بكتابة التغييرات على pi دون أخطاء إذن عندما تضغط على Save من SublimeText.

قم بتعيين SublimeText ليكون المحرر الافتراضي في WinSCP

للقيام بذلك ، انقر فوق الزر "أدوات" في شاشة إعدادات تسجيل الدخول إلى WinSCP حيث بدأت مربع حوار NewSite. تُظهر لقطتا الشاشتان كيفية تكوين ذلك ، لكنك ستنقر أساسًا لتهيئة تفضيل المحررين وإضافة محرر والذي سيكون محررًا خارجيًا. يمكنك بعد ذلك استعراض ملف exe. حيث يوجد هذا المحرر على جهاز الكمبيوتر الخاص بك.

الخطوة 8: (ث) الحصول على الكود

(ث) الحصول على المدونة
(ث) الحصول على المدونة

بمجرد الانتهاء ، انطلق وقم بتسجيل الدخول باستخدام WinSCP و PuTTY.

الآن نحن مستعدون تمامًا ، يمكننا بدء رمز tinyLiDAR الخاص بنا.

قم بإنشاء دليل يسمى tinyLiDAR ضمن دليل home / pi.

يمكنك القيام بذلك عن طريق النقر بزر الماوس الأيمن على الجانب الأيمن من شاشة WinSCP واختيار New / Directory.

الآن في محطة PuTTY يمكنك الكتابة

مؤتمر نزع السلاح ر

واضغط على Tab للسماح له بإكمال الأمر تلقائيًا للوصول إلى دليل tinyLiDAR.

مرة واحدة هنا اكتب ما يلي:

wget

للحصول على الملفات مباشرة من خادمنا. يمكننا بعد ذلك فك ضغطها عن طريق الكتابة

قم بفك ضغط r

واضغط على Tab لإكمال الاسم تلقائيًا مرة أخرى

لتشغيله ، اكتب فقط

بيثون tlgui.py

وسوف يستجيب tinyLiDAR الخاصة بك لكل أمر لديك على pi:)

الخطوة 9: ملاحظة للمتسللين قريبًا

المضي قدما وإلقاء نظرة تحت الغطاء بالنقر المزدوج على أي من ملفات التعليمات البرمجية من WinSCP. هم الذين لديهم ملحق.py. يجب أن تفتح الملفات في SublimeText مباشرة على جهاز الكمبيوتر الخاص بك. غيّر ما تريد ثم اضغط على حفظ. سيتم حفظ التغييرات الخاصة بك مباشرة في بي الخاص بك.

عندما تكون جاهزًا ، يمكنك تشغيله مرة أخرى باستخدام مفتاح السهم لأعلى لآخر أمر مكتوب أو اكتبه مرة أخرى واضغط على Enter:

بيثون tlgui.py

ربما لاحظت أن تخطيط واجهة المستخدم الرسومية الطرفية يبدو أجمل قليلاً من إصدار Arduino. ذلك لأن PuTTY يدعم أحرف unicode ، لذلك تمكنا من استخدام بعض أحرف التحكم في المؤشر الإضافية لجعلها تبدو أكثر دقة.

يوجد أيضًا أمر إضافي هنا (مقارنة بإصدار Arduino) وهو "dc" لوظيفة القراءة المستمرة. جربه ور ماذا تفكر.

هذا كل شئ!

شكرًا على القراءة واستمتع بالقرصنة على pi:)

موصى به: