جدول المحتويات:
- الخطوة 1: المعدات
- الخطوة 2: إعداد Raspberry Pi
- الخطوة 3: Pi-blaster
- الخطوة 4: إعداد رمز المثال
- الخطوة 5: إنشاء شهادة SSL موقعة ذاتيًا
- الخطوة 6: توصيل الدائرة الكهربائية
- الخطوة 7: الكود الجانبي للخادم
- الخطوة 8: كود الموقع
- الخطوة 9: أخيرًا
فيديو: اللون pi: 9 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
يوضح هذا التوجيه كيفية استخدام Raspberry Pi للتحكم الصوتي في شريط RGB LED ، من خلال موقع ويب ، باستخدام واجهات Web Speech API لـ SpeechRecognition و SpeechSynthesis.
يوضح هذا المثال كيف
- قم بإنشاء موقع ويب أساسي باستخدام Node.js عبر
- استخدم واجهات Web Speech API لـ SpeechRecognition و SpeechSynthesis.
- استخدم إطار عمل Cylon.js للتحكم في شريط RGB LED على Raspberry Pi
- تواصل عبر WSS (مآخذ الويب الآمنة) من صفحة الويب إلى Cylon.js للتحكم في لون LED
ملحوظة
- ستحتاج إلى مكبرات صوت أو سماعات رأس لسماع مُركِّب الكلام
- ستحتاج إلى منح حق الوصول إلى الميكروفون حتى يعمل التعرف على الصوت
- لأن هذا الوصول إلى الميكروفون الخاص بك ، يجب تشغيل الموقع تحت
- مكتبة cylon-api-socketio لا تدعم https في الوقت الحالي. لدي طلب سحب في انتظار الدمج ، ولكن حتى ذلك الحين تحتاج إلى استبدال /node_modules/cylon-api-socketio/lib/api.js بالملف الموجود في هذا المستودع
- هناك حاجة إلى pi-blaster لإنجاز هذا العمل.
الخطوة 1: المعدات
- Raspberry Pi - لقد استخدمت Raspberry Pi 2B الذي كنت أضعه حوله ، ولكن يمكنك الحصول على Raspberry Pi 3 Starter Kit مقابل حوالي 100 دولار كندي
- RGB LED Strip Light - كنت ألعب مع Minger LED Strip Light 32.8ft / 10M 600leds RGB SMD 5050. يأتي هذا مع وحدة تحكم ومصدر طاقة لحوالي 40 دولار كندي
- موصل برميل جاك - اشتريت واحدًا من متجر الإلكترونيات المحلي الخاص بي ، شيء من هذا القبيل. فقط تأكد مما إذا كان يناسب مصدر الطاقة الخاص بك
- موصلات / سلك الطائر - كان لدي بعض كبلات الموصل من أنثى إلى ذكر وبعض الأسلاك الصلبة قياس 22 ملقاة حولها
- Breadboard Solderless Prototype PCB Board - شيء من هذا القبيل
- 3 × 10kΩ مقاومات
- 3 x N-channel MOSFETs للتحكم في مصابيح LED - اشتريت بعض وحدات IRL3303 من متجري الإلكتروني المحلي. من المهم أن يكون جهد عتبة البوابات بحد أقصى. 3.3 فولت بحيث يمكن تشغيلها بواسطة دبابيس RPi ؛ عادةً ما يُشار إليه بـ "L" (مستوى المنطق) في الاسم.
الخطوة 2: إعداد Raspberry Pi
نظام التشغيل
عادةً ما أستخدم أحدث إصدار من Raspbian. قم بتنزيل الصورة وكتابتها على بطاقة SD. إذا كنت تستخدم جهاز كمبيوتر يعمل بنظام Windows ، فيمكنك استخدام Win32 Disk Imager لكتابة الصورة على بطاقة SD.
Node.js
قم بتثبيت أحدث إصدار من Node.js. في وقت كتابة هذا التقرير ، كنت أستخدم 8.9.1
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install nodejs
قم بتثبيت Git
sudo apt-get install git
الخطوة 3: Pi-blaster
يقوم pi-blaster بتمكين PWM على دبابيس GPIO التي تطلبها من Raspberry Pi. التقنية المستخدمة فعالة للغاية: لا تستخدم وحدة المعالجة المركزية وتعطي نبضات ثابتة للغاية.
يسمح تعديل عرض النبض هذا لـ Raspberry Pi بالتحكم في مدى سطوع كل من قنوات الأحمر والأخضر والأزرق لشريط LED.
أولاً ، استنساخ المستودع
cd / opt /
sudo git clone https://github.com/sarfata/pi-blaster.git sudo chown -R pi: pi pi-blaster
ثم قم بالبناء والتثبيت
cd / opt / pi-blaster./autogen.sh &&./configure && make && sudo make install
أخيرًا ، قم بتهيئة المسامير التي تريد استخدامها
تحت حساب الجذر ، أو باستخدام sudo ، قم بإنشاء الملف وتحريره
/ etc / default / pi-blaster
أضف الأسطر التالية
DAEMON_OPTS = - gpio 23، 24، 25
تحتاج دبابيس gpio هذه إلى مطابقة المسامير التي تقوم بتوصيلها بشريط LED الخاص بك.
ملاحظة: يوجد فرق بين GPIO ورقم التعريف الشخصي. يستخدم هذا المثال ما يلي
LED - أزرق ، GPIO-23 ، دبوس - 16
LED - أحمر ، GPIO-24 ، دبوس - 18 LED - أخضر ، GPIO-25 ، دبوس - 22
تعديلات اضافية
بدء pi-blaster
بدء خدمة sudo pi-blaster
أعد تشغيل pi-blaster
إعادة تشغيل sudo service pi-blaster
وقف pi-blaster
توقف sudo service pi-blaster
بدء pi-blaster تلقائيًا في وقت التمهيد
sudo systemctl تمكين pi-blaster
التحذيرات والمحاذير الأخرى
سيتم تكوين الدبابيس المستخدمة بواسطة pi-blaster كمخرجات. لا تقم بتوصيل أي شيء بإدخال أو قد تدمره! يستخدم هذا البرنامج الخفي مولد PWM للأجهزة من raspberry pi للحصول على توقيتات دقيقة. قد يتداخل هذا مع إخراج بطاقة الصوت الخاصة بك.
الخطوة 4: إعداد رمز المثال
استنساخ رمز المثال
1. قم بإعداد مجلد أساسي للتثبيت فيه
cd / opt
sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock
2. استنساخ مثال مستودع git
استنساخ بوابة
أو
git clone [email protected]: haydockjp / color-pi.git
3. تثبيت التبعيات
cd color-pi
تثبيت npm
قد يستغرق هذا 2-3 دقائق
4. يحتاج هذا المشروع إلى التواصل عبر HTTPS و WSS. في هذا الوقت لا يدعم cylon-api-socketio اتصالات SSL. يوجد طلب سحب مفتوح لإضافة هذا الدعم ، ولكن حتى يتم دمج ذلك ، يوجد ملف تصحيح في هذا المستودع. قم بتشغيل الأمر التالي بعد تثبيت npm
بوابة الخروج node_modules / cylon-api-socketio / lib / api.js
الخطوة 5: إنشاء شهادة SSL موقعة ذاتيًا
1. إنشاء ملف مفتاح خاص
cd /opt/com.jonhaydock/colour-pi/certs
opensl genrsa -out color-pi-key.pem 2048
2. إنشاء CSR (طلب توقيع الشهادة)
opensl req-new -key color-pi-key.pem -out color-pi-csr.pem
في هذه المرحلة ، سيُطلب منك بعض المعلومات لطلب الشهادة. نظرًا لأن هذه شهادة موقعة ذاتيًا ، فالأمر متروك لك في مدى دقة ملئ التفاصيل. هنا مثال
اسم البلد (رمز مكون من حرفين) [أستراليا]: CA
اسم الولاية أو المقاطعة (الاسم الكامل) [Some-State]: اسم المنطقة المحلية في كولومبيا البريطانية (على سبيل المثال ، المدينة) : اسم مؤسسة فانكوفر (على سبيل المثال ، الشركة) [Internet Widgits Pty Ltd]: اسم الوحدة التنظيمية Color Pi (على سبيل المثال ، القسم) : الاسم الشائع (مثل خادم FQDN أو اسمك) : عنوان البريد الإلكتروني color-pi : [email protected]
كلمة مرور اختبار :
اسم شركة اختياري :
في هذا المثال ، ما عليك سوى الضغط على "رجوع" لترك كلمة مرور التحدي فارغة
3. إنشاء الشهادة
openssl x509 -req -days 1095 -in color-pi-csr.pem -signkey color-pi-key.pem -out color-pi-cert.pem
4. لمزيد من الأمان ، سننشئ أيضًا ملف Diffie Hellman Parameters
opensl dhparam -out dh_2048.pem 2048
قد يستغرق هذا من 15 إلى 20 دقيقة
الخطوة 6: توصيل الدائرة الكهربائية
تشغيل شريط LED
يتم تشغيل شريط LED بجهد 12 فولت. إن Raspberry Pi قادر فقط على إخراج 3.3 فولت أو 5 فولت وليس قادرًا على الإخراج في أي مكان بالقرب من الأمبيرات اللازمة لتشغيل العديد من مصابيح LED.
من المهم عدم توصيل مصدر طاقة 12 فولت بـ Raspberry Pi. تُستخدم ترانزستورات N-channel MOSFET لفصل 3.3 فولت على دبابيس RPi و 12 فولت من مصدر طاقة LED.
يحتوي MOSFET على ثلاثة دبابيس بوابة ، استنزاف ومصدر. إذا لم تكن متأكدًا من نوع Google الخاص بورقة بيانات الترانزستور الذي تستخدمه ، على سبيل المثال IRL3303
سنقوم بتوصيل Raspberry Pi Pin بالبوابة وسلك LED بالمصرف وأرضية مشتركة بالمصدر. عندما يرتفع الدبوس ، فإن الجهد الكهربي بين الصرف والمصدر سينشط البوابة وسيقوم بتوصيل البوابة بالمصدر.
سنقوم أيضًا بوضع مقاومات 10kΩ عبر البوابة والمصدر ، بحيث عندما يكون دبوس RPi مرتفعًا ، يمكننا حماية الدبوس عن طريق تقليل التيار الذي يمر عبره.
نفذ الخطوات التالية على مسؤوليتك الخاصة. أنا لا أتحمل أي مسؤولية عن أي شيء قد يحدث خطأ
توجد صورة مقلقة وصورة للدائرة الفعلية أعلاه.
أوصي بالقيام بذلك أثناء إيقاف تشغيل الطاقة لـ RPi وشريط LED
قم بإعداد دوائر الترانزستور ، واحدة لكل قناة لون
- أدخل أحد الترانزستورات في اللوح كما هو موضح في الرسم التخطيطي
- أدخل أحد مقاومات 10kΩ عبر المصرف ودبابيس المصدر في الترانزستور. هذا هو الدبوس الأول والأخير
- استخدم بعض الأسلاك لتوصيل دبوس المصدر (آخر دبوس) بالأرض على اللوح
- كرر الخطوات من 1 إلى 3 مرتين أخريين ، بحيث يكون لديك ثلاث مجموعات - واحدة لكل لون (أحمر وأخضر وأزرق)
قم بتوصيل دبابيس RPi باللوحة
- قم بتوصيل دبوس 16 بمسمار البوابة (الدبوس الأول) للترانزستور الأول - ستكون هذه قناة LED الزرقاء
- قم بتوصيل دبوس 18 بمسمار البوابة (الدبوس الأول) لأول ترانزستور - ستكون هذه قناة الصمام الأحمر
- قم بتوصيل دبوس 20 بأحد الخطوط الأرضية على جانب اللوح
- قم بتوصيل دبوس 22 بمسمار البوابة (الدبوس الأول) لأول ترانزستور - ستكون هذه قناة LED الخضراء
لقد استخدمت ألوان الأسلاك المطابقة لمصابيح LED: الأزرق والأحمر والأخضر. لقد استخدمت الأسود للأرض
قم بتوصيل برميل جاك
- قم بتوصيل سلك أبيض بالطرف + لمقبس البرميل
- قم بتوصيل سلك أسود بنهاية مقبس البرميل
- قم بتوصيل السلك الأسود بنفس الخط الأرضي على اللوح الذي تم توصيل RPi Pin 20 به
- قم بتوصيل السلك الأبيض بخط + على اللوح
توصيل شريط LED
جاء شريط LED الخاص بي مزودًا بموصل كان حجمه جيدًا بما يكفي بحيث يمكن توصيله مؤقتًا بلوح التجارب. لقد دفعت الموصل في اللوح وقمت بتوصيله لاختبار الدائرة.
- أول ترانزستور متصل بـ Pin 16. قمت بتشغيل سلك أزرق من دبوس الصرف (الدبوس الأوسط) إلى السلك الأزرق في موصل شريط LED
-
الترانزستور الثاني المتصل بـ Pin 18. ركضت سلكًا أحمر من
بالوعة
دبوس (الدبوس الأوسط) إلى السلك الأحمر على موصل شريط LED
-
الترانزستور الثالث متصل بـ Pin 22. ركضت سلكًا أخضر من
بالوعة
دبوس (الدبوس الأوسط) إلى السلك الأخضر على موصل شريط LED
- أخيرًا ، قمت بتشغيل سلك أبيض من خط + على اللوح الذي كان متصلاً بمقبس البرميل ، إلى السلك الأبيض على موصل شريط LED.
قوة
بعد فحص الدائرة ، يجب أن تكون جيدًا لتشغيل Raspberry Pi وتوصيل مصدر التيار 12 فولت بمقبس البرميل.
الخطوة 7: الكود الجانبي للخادم
تشغيل الكود الجانبي للخادم
cd /opt/com.jonhaydock/colour-pi
بدء sudo npm
سيؤدي ذلك إلى بدء تشغيل خادم الويب والبدء في الاستماع إلى طلبات HTTPS و WSS.
ملاحظة: تذكر أن تقوم بتشغيل pi-blaster أولاً
متغيرات البيئة
منفذ موقع الويب الافتراضي هو 443 ، ولكن يمكنك تجاوز ذلك عن طريق تعيين متغير بيئة قبل بدء الكود. على سبيل المثال
تصدير COLOUR_PI_PORT = 2443
منفذ مقبس الويب الافتراضي هو 1443 ، ولكن يمكنك تجاوز ذلك عن طريق تعيين متغير بيئة قبل بدء الكود. على سبيل المثال
تصدير COLOUR_PI_WSS_PORT = 3443
ملاحظة: نظرًا لأن مقبس الويب يتم التعامل معه بواسطة cylon.js وليس موقع الويب الرئيسي ، فيجب أن يكون هذا على منافذ مختلفة
يمكن أيضًا تجاوز الدبابيس المستخدمة للأزرق (الدبوس 16) والأخضر (الدبوس 18) والأحمر (الدبوس 22). على سبيل المثال
تصدير COLOUR_PI_PIN_BLUE = 36
تصدير COLOUR_PI_PIN_RED = 38 تصدير COLOUR_PI_PIN_GREEN = 40
ملاحظة: يجب أن تتطابق هذه مع المسامير المادية التي استخدمتها. إذا قمت بتغييرها ، فستحتاج أيضًا إلى تحديث GPIOs المحددة في الملف / etc / default / pi-blaster. على سبيل المثال
DAEMON_OPTS = - gpio 16، 20، 21
يمكن العثور على رمز الخادم الرئيسي في ملف app.js. يبدأ هذا الملف خادم الويب HTTPS وأيضًا ، من خلال إطار عمل Cylon.js ، يستخدم socket.io للاستماع إلى طلبات مقبس الويب على منفذ منفصل.
للوصول إلى موقع الويب ، يجب عليك فتح متصفح ويب على جهاز الكمبيوتر الرئيسي (لقد اختبرت هذا فقط في Chrome) واستخدام عنوان IP الخاص بـ Raspberry Pi ، على سبيل المثال
10.0.1.2/
يمكنك معرفة عنوان IP الخاص بك من سطر أوامر Raspberry Pi.
ifconfig
سيقوم خادم الويب بتقديم أي محتوى ضمن المجلد العام. يتم عرض صفحة index.html افتراضيًا.
ينشئ Cylon.js نقطة نهاية يمكنك توصيل Socket.io بها.
10.0.1.2:1443/api/robots/colour-pi
يمكنك إرسال رسالة set_colour عبر المقبس لتعيين قيم الأحمر والأخضر والأزرق
device.emit ('set_colour'، r، g، b)
الذي يستدعي الأمر set_colour ، الذي يستدعي الوظيفة setColour في app.js. تحدد هذه الوظيفة مستويات السطوع ، لكل من قيم R و G و B ، بين 0 و 255. حيث يكون 0 في وضع الإيقاف و 255 قيد التشغيل بالكامل.
على سبيل المثال
أحمر ص = 255 ، ز = 0 ، ب = 0
أخضر ص = 0 ، ز = 255 ، ب = 0 أزرق ص = 0 ، ز = 0 ، ب = 255 أبيض ص = 255 ، ز = 255 ، ب = 255 أسود / إيقاف ص = 0 ، ز = 0 ، ب = 0
الخطوة 8: كود الموقع
عام
يستخدم موقع الويب التعرف على الصوت لتحديد الألوان من قائمة محددة مسبقًا. لإضافة لون إلى القائمة ، قم بتحرير الملف على الخادم: public / data / colours.json
على سبيل المثال
"أحمر": "# FF0000"،
عند العثور على لون أو تحديده من القائمة المنسدلة ، سيتم تعيين مربع الإخراج على هذا اللون وسيتم إرسال رسالة عبر socket.io إلى Raspnerry Pi ، والتي ستضبط مصابيح LED على نفس اللون.
ملاحظة: بناءً على مدى جودة مصابيح LED الخاصة بك ، قد ترى أو لا ترى لونًا مشابهًا. بعضها أسهل في التكرار من البعض الآخر
عند تحميل موقع الويب لأول مرة ، نظرًا لأنك تستخدم شهادة SSL موقعة ذاتيًا ، فستحتاج إلى الإقرار بذلك في المتصفح. يجب أن ترى تنبيه أمان حول الشهادة.
التعرف على الصوت
يحتوي هذا المربع على أيقونة ميكروفون. إذا قمت بالنقر فوق الرمز عندما يكون لونه أخضر ، فسيبدأ في الاستماع إلى الألوان. أثناء الاستماع ، سوف يتحول إلى اللون الأحمر. سيستمع لفترة قصيرة ثم يتوقف. سيؤدي النقر فوق رمز الميكروفون عندما يكون أحمر اللون أيضًا إلى منعه من الاستماع.
نظرًا لأن هذا الموقع يحتاج إلى الوصول إلى الميكروفون الخاص بك ، فستحتاج إلى منحه إذنًا عند مطالبتك بذلك
ملاحظة: أنت بحاجة إلى ميكروفون لهذا الجزء. أنا استخدم واحد على كاميرا الويب الخاصة بي.
نسخة مؤقتة
هذا الصندوق يتتبع تخمينات الكلمات التي تقولها ، كما تقولها.
نسخة نهائية
هذا المربع يتتبع التخمين النهائي هو ما قلته.
الألوان المعروفة
هذه قائمة بجميع الألوان التي تعرفها الصفحة. يتم إنشاؤه من ملف colours.json. إذا حددت أحد هذه الألوان ، فستتحدث الصفحة عن اللون وتضبط لون الإخراج.
ملاحظة: أنت بحاجة إلى مكبرات صوت أو سماعات رأس لسماع الكلام
وجدت الألوان
تدعم صفحة الويب هذه حاليًا مطابقة اللون فقط. إذا كانت الكلمة أو الكلمات التي تحدثت بها في الميكروفون تتطابق مع اسم لون معروف ، أو حددت لونًا من قائمة الألوان المعروفة ، فستتم إضافتها هنا كسجل.
انتاج |
سيتم عرض آخر لون تم العثور عليه هنا. سيتم عرض قيمة Color Hex (على سبيل المثال # 7cb9e8) وقيمة RGB (مثل 124 ، 185 ، 232) كنص وسيتم تعيين خلفية المربع الموجود في المنتصف على اللون الفعلي.
يتم إرسال هذا اللون أيضًا إلى Raspberry Pi وسترى لون شريط LED يتغير.
ملاحظة: إذا كنت لا ترى تغيير لون LED ، فحاول إعادة تشغيل pi-blaster و / أو تطبيق node.js
إعادة تشغيل sudo service pi-blaster
بدء sudo npm
أصوات معروفة
يعرض هذا المربع قائمة "الأصوات المعروفة" من تركيب الكلام المدعوم. سيؤدي تحديد أحد هذه الأصوات إلى تغيير الصوت واللغة التي ستسمعها ، وسيتحدث باسم الصوت.
سيؤدي أيضًا إلى تغيير لغة SpeechRecognition لتكون هي نفسها التي تم اختيارها في القائمة.
الخطوة 9: أخيرًا
هنا مثال لما يجب أن تراه.
يُرجى إعلامي إذا كانت لديك أي مشكلة ويمكنني التحديث حسب الحاجة.
موصى به:
مقعد ساخن: بناء وسادة ساخنة متغيرة اللون: 7 خطوات (بالصور)
المقعد الساخن: قم ببناء وسادة ساخنة متغيرة اللون: هل تريد أن تحافظ على دفء نفسك في أيام الشتاء الباردة؟ Hot Seat هو مشروع يستخدم اثنين من أكثر إمكانيات النسيج الإلكتروني إثارة - تغيير اللون والحرارة! سنقوم ببناء وسادة مقعد تدفأ ، وعندما تكون جاهزة للاستخدام ، ستكشف عن
كيفية استخدام اكتشاف اللون TCS3200 مع SkiiiD: 9 خطوات
كيفية استخدام Detect Color TCS3200 مع SkiiiD: برنامج تعليمي لتطوير Detect Color TCS3200 مع skiiiD
قم بترقية الإضاءة الخلفية لمقياس VU إلى اللون الأزرق باستخدام أجزاء لمبة CFL القديمة: 3 خطوات
قم بترقية الإضاءة الخلفية لمقياس VU إلى اللون الأزرق باستخدام أجزاء لمبة CFL قديمة: أثناء إصلاح مسجل الشريط القديم من Sony TC630 من بكرة إلى بكرة ، لاحظت أن أحد المصابيح الزجاجية للضوء الخلفي لمقياس VU قد تم كسره. عمل حيث انقطع الرصاص تحت السطح الزجاجي. البديل الوحيد الذي أقوم به
إرشادات برمجة معالجة مثيرة للاهتمام للمصمم - التحكم في اللون: 10 خطوات
إرشادات برمجة معالجة مثيرة للاهتمام للمصمم - التحكم في اللون: في الفصول السابقة ، تحدثنا أكثر عن كيفية استخدام الكود للقيام بالتشكيل بدلاً من نقاط المعرفة حول اللون. في هذا الفصل ، سوف نستكشف هذا الجانب من المعرفة بشكل أعمق
أوه!! اللون: 7 خطوات
أوه!! اللون: أوه !! اللون هي لعبة بسيطة لتخمين اللون. ستمنحك اللعبة الألوان الأساسية الثلاثة الأساسية. إذا كنت بحاجة إلى الجمع بين لونين ، فما عليك سوى الضغط على كلا الزرين. بعد الضغط على الزر ، اللعبة ستصدر الحكم بشكل صحيح. أخيرًا ، مناشدًا