جدول المحتويات:
- الخطوة 1: إنشاء التطبيق على هاتفك
- الخطوة الثانية: تجهيز PI
- الخطوة الثالثة: إنشاء مشروعك
- الخطوة 4: MyProject.js
- الخطوة 5: MyProject في Arduino
- الخطوة 6: الأسلاك
- الخطوة 7: هذا كل شيء
فيديو: Raspberry PI & Arduino - Blynk Stepper Control: 7 خطوات (بالصور)
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
سيوضح لك هذا البرنامج التعليمي كيفية التحكم في محرك متدرج باستخدام Arduino و Raspberry Pi وتطبيق Blynk.
في قشرة الجوز ، يرسل التطبيق طلبات إلى Raspberry Pi عبر Virtual Pins ، ثم يرسل Pi إشارة HIGH / LOW إلى Arduino ثم يتعامل Arduino مع محرك السائر.
أعتقد أنه من الأسهل استخدام هذا الأسلوب لأن معظم الناس معتادون على العمل مع Arduino وليس كثيرًا مع node.js على Raspberry Pi.
المكونات اللازمة لهذا:
- Raspberry PI (أنا أستخدم Raspberry Pi 3 model b)
- اردوينو (أنا أستخدم Arduino Nano)
- محرك سيرفو (أنا أستخدم 28BYJ-48 5VDC مع وحدة التحكم الخاصة به)
- بعض أسلاك العبور
- مصدر الطاقة (5VDC 2A.)
رسم Arduino وكود Node.js متاحان للتنزيل. فقط ابحث عن الملفات.
الخطوة 1: إنشاء التطبيق على هاتفك
قم بتنزيل Blynk من AppStore أو GooglePlay
افتح التطبيق وأنشئ مستخدمًا أو سجل الدخول باستخدام facebook.
- إنشاء مشروع جديد
اسم مشروعك: MyProject
اختر الجهاز: Rasapberry Pi 3 B
نوع الاتصال: Wifi (أو Ethernet إذا كان Pi الخاص بك سلكيًا بشبكتك)
- انقر فوق إنشاء
تحقق من بريدك الإلكتروني بحثًا عن الرمز المميز الخاص بك
(يبدو مثل هذا 3aa19bb8a9e64c90af11e3f6b0595b3c)
هذا الرمز مرتبط بتطبيقك الحالي. إذا قمت بعمل تطبيق آخر ، فسوف تقوم بإنشاء رمز مميز آخر.
في التطبيق أضف الحاجيات التالية (انظر الصورة)
- اضافة 3 ازرار
- إضافة 1 LCD
- تحرير الزر
قم بتسمية الأمر الأول Command1 ، وقم بتعيين الدبوس كـ Virtual Pin 1 وقم بتعيين الوضع على أنه SWITCH
قم بتسمية الرقم الثاني CW ، وقم بتعيين Pin كـ Virtual Pin 2 وقم بتعيين الوضع على أنه PUSH
قم بتسمية الرقم الثالث CCW ، وقم بتعيين Pin كـ Virtual Pin 3 وقم بتعيين الوضع على أنه PUSH
- تحرير شاشة LCD
اضبط الدبابيس على شكل Virtual Pin 4 و Virtual Pin 5 واضبط الوضع على PUSH
الخطوة الثانية: تجهيز PI
أولاً ، تحتاج إلى تثبيت Node.js. قبل تحديث Node.js ، يرجى التأكد من إزالة الإصدارات القديمة:
افتح Terminal واكتب
sudo apt-get purge nodejs
node.js -ysudo apt-get autoremove
التثبيت التلقائي Node.js إضافة مستودعات:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
قم بتثبيت Node.js
sudo apt-get update && sudo apt-get Upgrade
sudo apt-get install build-basic nodejs -y
بمجرد تثبيت Node.js ، قم بتثبيت Blynk
sudo npm تثبيت blynk-library-g
تثبيت sudo npm onoff -g
الخطوة الثالثة: إنشاء مشروعك
ابدأ بتغيير الدليل (الأمر cd) إلى دليل pi
افتح Terminal واكتب:
القرص المضغوط / المنزل / pi /
بعد ذلك ، قم بإنشاء دليل حيث سيقيم مشروعك
mkdir MyProject
قم بتغيير الدليل إلى MyProject ، اكتب ما يلي في Terminal
سي دي ماي بروجيكت
تحقق من محتوى الدليل (يجب أن يكون فارغًا). فقط اكتب ما يلي في Terminal
ls
بعد ذلك ، اكتب ما يلي لإنشاء وصف مشروعك (package.json)
الحرف الأول npm
فقط اكتب اسم المشروع ، المؤلف ، الإصدار ، إلخ …
بمجرد الانتهاء من ذلك ، قم بتثبيت مكتبة Blynk ، ومكتبة onoff ومكتبة نوم النظام في دليل مشروعك. اكتب ما يلي في Terminal الخاص بك
npm تثبيت مكتبة blynk - حفظ
npm تثبيت onoff - حفظ
npm تثبيت نظام النوم - حفظ
أخيرًا ، قم بإنشاء ملف.js الخاص بك (سيكون هذا هو المكان الذي ستوجد فيه التعليمات البرمجية الخاصة بك). اكتب ما يلي في Terminal
نانو MyProject.js
بمجرد تنفيذ هذا الأمر ، سيتم فتح nano (محرر نصوص طرفي).
الخطوة 4: MyProject.js
في nano ، اكتب سطور التعليمات البرمجية التالية
var Blynk = تتطلب ('blynk-library') ؛
var AUTH = '******************' ؛ هذا هو رمزك المميز
var blynk = new Blynk. Blynk (AUTH) ؛
var Gpio = يتطلب ('onoff'). Gpio ،
command1 = new Gpio (18، 'out')، // سيتم توصيله بـ Arduino D2
commandCW = new Gpio (23، 'out')، // سيتم توصيله بـ Arduino D3
commandCCW = Gpio جديد (24، 'out') ؛ // سيتم توصيله بـ Arduino D4
فار النوم = تتطلب ("نظام النوم") ؛
var v1 = new blynk. VirtualPin (1) ؛ // هذا هو زر Command1 الخاص بك في التطبيق
var v2 = جديد blynk. VirtualPin (2) ؛ // هذا هو زر CW الخاص بك في التطبيق
var v3 = جديد blynk. VirtualPin (3) ؛ // هذا هو زر CCW في التطبيق
var v4 = جديد blynk. VirtualPin (4) ؛ // هذا هو خط LCD 1 في التطبيق
var v5 = جديد blynk. VirtualPin (5) ؛ // هذا هو خط LCD 2 في التطبيق
v1.on ('write'، function (param) // تحقق من زر Command1 في التطبيق
{
إذا (param == 1) // إذا تم الضغط على الزر (وهو 1) ، فقم بما يلي
{
v4.write ("التنفيذ") ؛ // اكتب "Executing" على السطر الأول من شاشة LCD
v5.write ("الأمر") ؛ // اكتب "أمر" في السطر الثاني من شاشة LCD
command1.writeSync (1) ، // اضبط GPIO18 (وهو أمر متغير 1) على 1 (عالي)
ينام (4000) ؛ // انتظر لمدة 4 ثوان
command1.writeSync (0) ، // اضبط GPIO18 (وهو أمر متغير 1) على 0 (منخفض)
v4.write ("تم") ؛ // اكتب "تم" على السطر الأول من شاشة LCD
v5.write ("") ؛ // اكتب "" (لا شيء) في السطر الثاني من شاشة LCD
v1.write (0) ؛ // اكتب 0 إلى زر Command1 الخاص بك ، والذي سيعيد تعيينه إلى وضع إيقاف التشغيل
}
});
v2.on ('write'، function (param) // تحقق من زر CW في التطبيق
{
إذا (param == 1) // إذا تم الضغط على الزر (وهو 1) ، فقم بما يلي
{
commandCW.writeSync (1) ، // اضبط GPIO23 (وهو أمر متغير CW) على 1 (عالي)
}
وإلا إذا (param == 0) // إذا لم يتم الضغط على الزر (وهو 0) ، فقم بما يلي
{
commadCW.writeSync (0) ، // اضبط GPIO23 (وهو أمر متغير CW) على 0 (منخفض)
}
});
v3.on ('write'، function (param) // تحقق من زر CCW في التطبيق
{
إذا (param == 1) // إذا تم الضغط على الزر (وهو 1) ، فقم بما يلي
{
commandCCW.writeSync (1) ، // اضبط GPIO24 (وهو أمر متغير CCW) على 1 (عالي)
}
وإلا إذا (param == 0) // إذا لم يتم الضغط على الزر (وهو 0) ، فقم بما يلي
{
commandCCW.writeSync (0) ، // اضبط GPIO24 (وهو أمر متغير CCW) على 1 (عالي)
}
});
احفظه واخرج من nano
- لحفظ CTRL + O
- لإنهاء CTRL + X
لقد انتهيت من Raspberry Pi.
اختبرها الآن لمعرفة ما إذا كان لديك أي نوع من الأخطاء (معظم الوقت أخطاء مطبعية)
لاختباره ، ما عليك سوى كتابة ما يلي في Terminal الخاص بك
العقدة MyProject.js
يجب أن تحصل على إخراج يشبه هذا
وضع OnOff
الاتصال بـ: blynk-cloud.com 8441
ترخيص SSL …
مخول
الخطوة 5: MyProject في Arduino
حسنًا ، لقد أكملنا الآن 2/3 أشياء!
الآن نحتاج فقط إلى كتابة بعض التعليمات البرمجية لـ Arduino.
- قم بإنشاء رسم Arduino جديد واكتب الكود التالي.
#يشمل
#define STEPS_PER_MOTOR_REVOLUTION 32
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048
// يجب أن تكون وصلات الدبوس دبابيس 8 ، 9 ، 10 ، 11 متصلة
// إلى Motor Driver In1 ، In2 ، In3 ، In4
// ثم يتم إدخال المسامير هنا في التسلسل 1-3-2-4 للتسلسل الصحيح
Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION ، 8 ، 10 ، 9 ، 11) ؛
int Steps2Take
الأمر int1 ؛
int CommandCW ؛
أمر intCCW ؛
الإعداد باطل()
{
pinMode (2 ، الإدخال) ؛
pinMode (3 ، الإدخال) ؛
pinMode (4 ، الإدخال) ؛
// (مكتبة السائر تضع الدبابيس كمخرجات)
}
حلقة فارغة()
{
Command1 = digitalRead (2) ،
CommandCW = digitalRead (3) ،
CommandCCW = digitalRead (4) ،
إذا (Command1 == 0)
{
//لا تفعل شيئا
}
آخر
{
وظيفة التنفيذ () ؛
}
إذا (CommandCW == 1)
{
small_stepper.setSpeed (700) ،
small_stepper.step (-1) ،
تأخير (1) ؛
}
إذا (CommandCCW == 1)
{
small_stepper.setSpeed (700) ،
small_stepper.step (1) ،
تأخير (1) ؛
}
}
تنفيذ باطل
{
Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4 ، // تدوير CCW 1/4 دورة
small_stepper.setSpeed (700) ،
small_stepper.step (Steps2Take) ، // يمكنك استبدال Steps2Take بأي قيمة بين 0 و 2048
تأخير (500) ؛
Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4 ؛ // تدوير CW 1/4 دورة
small_stepper.setSpeed (700) ،
small_stepper.step (Steps2Take) ، // يمكنك استبدال Steps2Take بأي قيمة بين 0 و 2048
تأخير (2000) ؛
}
تجميع وتحميل إلى Arduino الخاص بك.
تأكد الآن من توصيل كل شيء بشكل صحيح! انظر الخطوة التالية لتوصيل الأسلاك.
الخطوة 6: الأسلاك
قم بتوصيل Arduino D3 بـ RaspberryPi GPIO18 (وهو في الواقع دبوس 12)
قم بتوصيل Arduino D4 بـ RaspberryPi GPIO23 (وهو في الواقع رقم التعريف الشخصي 16)
قم بتوصيل Arduino D4 بـ RaspberryPi GPIO24 (وهو في الواقع رقم 18)
قم بتوصيل Arduino GND بـ RaspberryPi GND (pin 6)
قم بتوصيل Arduino D8 بجهاز تحكم السائر In1
قم بتوصيل Arduino D9 بوحدة التحكم في السائر In2
قم بتوصيل Arduino D10 بجهاز التحكم السائر In3
قم بتوصيل Arduino D11 بجهاز التحكم السائر In4
قم بتوصيل 5VDC بـ Arduino و Raspberry Pi و Stepper Controller
الخطوة 7: هذا كل شيء
تحقق من الفيديو ، ويجب أن تنتهي!
شكرا واستمتع!
موصى به:
DIY Robot Arm 6 Axis (مع Stepper Motors): 9 خطوات (بالصور)
DIY Robot Arm 6 Axis (مع Stepper Motors): بعد أكثر من عام من الدراسات والنماذج الأولية والإخفاقات المختلفة ، تمكنت من بناء روبوت من الحديد / الألومنيوم مع 6 درجات من الحرية تتحكم فيها محركات السائر ، وكان الجزء الأصعب هو التصميم لأنه كنت أرغب في تحقيق 3 أهداف أساسية
محطة الطقس One More Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 خطوات
One More Arduino Weather Station (ESP-01 & BMP280 & DHT11 & OneWire): هنا يمكنك العثور على تكرار واحد لاستخدام OneWire مع عدد قليل جدًا من المسامير في ESP-01. يتصل الجهاز الذي تم إنشاؤه في هذه التعليمات بشبكة Wifi الخاصة بك خيار (يجب أن يكون لديك بيانات الاعتماد …) يجمع البيانات الحسية من BMP280 و DHT11
مؤقت Stepper Pomodoro: 3 خطوات (بالصور)
Stepper Pomodoro Timer: The Stepper Pomodoro هو مؤقت مكتبي لمساعدة الشخص على إدارة قائمة المهام اليومية عن طريق تقسيم كل فترة عمل إلى مقاطع 30 دقيقة. ومع ذلك ، على عكس مؤقت بومودورو العادي ، فإنه لا يجعلك قلقًا من خلال إظهار مقدار الوقت المتبقي. في حين أن،
& acirc؛ & ndash؛ & rsquo؛. :: *، Awesome Design (Microsoft Paint)، * ::. & acirc؛ & ndash؛ & rsquo ؛: 4 خطوات
& acirc؛ & ndash؛ & rsquo؛. :: *، Awesome Design (Microsoft Paint)، * ::. & acirc؛ & ndash؛ & rsquo ؛: سأوضح لك كيفية عمل تصميم رائع باستخدام طلاء Microsoft ، أو مجرد قلم رصاص وورقة! ! ملاحظة. يرجى تقييم والتصويت لمسابقة الكتاب. مليون شكرا
Arduino ProtoShield من & quot؛ منزلي & quot؛ العناصر (العلامة & lt ؛ 5 $): 9 خطوات (بالصور)
Arduino ProtoShield من & quot؛ منزلي & quot؛ العناصر (العلامة & lt ؛ 5 $): أنا أحب Arduino الخاص بي. لقد دفعتني إلى برمجة المتحكم الدقيق وتعلق بها. أنا أيضًا أحب قابلية التوسعة التي توفرها الدروع. يمكن أن يكون My Arduino عبارة عن GPS Locatorone دقيقة واحدة ، وأن يكون متصلاً بالويب في اليوم التالي. هناك أيضًا مجموعة تتيح لك