Мазмуну:

Raspberry PI & Arduino - Blynk Stepper Control: 7 кадам (Сүрөттөр менен)
Raspberry PI & Arduino - Blynk Stepper Control: 7 кадам (Сүрөттөр менен)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 кадам (Сүрөттөр менен)

Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 кадам (Сүрөттөр менен)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Ноябрь
Anonim
Raspberry PI & Arduino - Blynk Stepper Control
Raspberry PI & Arduino - Blynk Stepper Control

Бул окуу куралы сизге Arduino, Raspberry Pi жана Blynk тиркемеси менен тепкичтүү моторду кантип башкарууну көрсөтөт.

Жаңгактын кабыгында, колдонмо Raspberry Pi'ге виртуалдык пиндер аркылуу сурамдарды жөнөтөт, Pi андан кийин Arduino жана Arduinoго HIGH/LOW сигналын жөнөтөт, андан кийин тепкич мотору менен иштейт.

Менин оюмча, бул ыкманы колдонуу оңой, анткени көпчүлүк адамдар Raspberry Piдеги node.js менен эмес, Arduino менен иштөөгө көнүп калышкан.

Бул үчүн керектүү компоненттер:

- Raspberry PI (мен Raspberry Pi 3 моделин б колдонуп жатам)

- Arduino (Мен Arduino Nano колдонуп жатам)

- Servo Motor (мен анын контроллери менен 28BYJ-48 5VDC колдонуп жатам)

- Кээ бир секирүүчү зымдар

- Кубат булагы (5VDC 2A.)

Arduino эскизи жана Node.js кодун жүктөп алууга болот. Файлдарды карап көрүңүз.

1 -кадам: Телефонуңузда тиркеме түзүү

Телефонуңузда колдонмо түзүү
Телефонуңузда колдонмо түзүү
Телефонуңузда колдонмо түзүү
Телефонуңузда колдонмо түзүү

Blynkти AppStore же GooglePlayден жүктөп алыңыз

Колдонмону ачып, колдонуучу түзүңүз же Facebook менен кириңиз.

- Жаңы долбоор түзүү

Долбооруңузга ат коюңуз: MyProject

Түзмөктү тандоо: Rasapberry Pi 3 B.

Байланыш түрү: Wifi (же Ethernet, эгер сиздин пиңиз тармагыңызга туташтырылган болсо)

- Түзүүнү чыкылдатыңыз

Токениңиз үчүн электрондук почтаңызды текшериңиз

(окшош 3aa19bb8a9e64c90af11e3f6b0595b3c)

Бул Токен учурдагы колдонмоңуз менен байланыштырылган. Эгерде сиз башка колдонмо жасасаңыз, анда сиз башка токенди жаратасыз.

Колдонмого төмөнкү виджеттерди кошуңуз (сүрөттү караңыз)

- 3 баскычты кошуу

- 1 ЖК кошуу

- Баскычты түзөтүңүз

биринчисин Command1 деп атоо, пинти виртуалдык пин 1 деп коюу жана режимди SWITCH деп коюу

экинчисине CW деп атоо, пинти виртуалдык пин 2 деп коюу жана режимди PUSH деп коюу

үчүнчүсүнө CCW ат коюңуз, пинти виртуалдык пин 3 деп коюңуз жана режимди PUSH деп коюңуз

- ЖКны түзөтүңүз

Pinsти Virtual Pin 4 жана Virtual Pin 5 катары коюп, режимди PUSH деп коюңуз

2 -кадам: PI даярдыгы

Биринчиден, Node.jsти орнотушуңуз керек Node.jsти жаңыртуудан мурун, эски версияларын алып салууну унутпаңыз:

Терминалды ачыңыз жана териңиз

sudo apt-get тазалоо түйүн түйүндөрү

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-essential nodejs -y орнотуу

Node.js орнотулгандан кийин, Blynkти орнотуңуз

sudo npm blynk -library -g орнотуу

sudo npm onoff -g орнотуу

3 -кадам: Сиздин долбоорду түзүү

Каталогду (cd буйругу) pi каталогуна өзгөртүү менен баштаңыз

Терминалды ачыңыз жана териңиз:

cd/home/pi/

Андан кийин, сиздин долбоор турган каталогду түзүңүз

mkdir MyProject

Каталогду MyProject деп өзгөртүңүз, Терминалга төмөнкүлөрдү териңиз

CD MyProject

Каталогдун мазмунун текшериңиз (ал бош болушу керек). Жөн гана Терминалга төмөнкүлөрдү териңиз

ls

Андан кийин, долбоордун сүрөттөмөсүн түзүү үчүн төмөнкүлөрдү териңиз (package.json)

npm init

Жөн эле долбоордун атын, авторун, версиясын ж.б. жазыңыз …

Бул бүткөндөн кийин, Blynk китепканасын, onoff китепканасын жана системалык уйку китепканасын СИЗДИН долбооруңуздун каталогуна орнотуңуз. Терминалга төмөнкүлөрдү териңиз

npm blynk-library орнотуу-сактоо

npm onoff --save орнотуу

npm орнотуу system-sleep-сактоо

Акырында,.js файлыңызды түзүңүз (Бул жерде сиздин кодуңуз жайгашкан). Терминалга төмөнкүлөрдү териңиз

нано MyProject.js

Бул буйрукту аткаргандан кийин нано (терминалдык текст редактору) ачылат.

4 -кадам: MyProject.js

Нанодо төмөнкү код саптарын жазыңыз

var Blynk = талап кылуу ('blynk-library');

var AUTH = '******************'; БУЛ СИЗДИН ТОКЕНИҢИЗ

var blynk = new Blynk. Blynk (AUTH);

var Gpio = талап кылуу ('onoff'). Gpio,

command1 = new Gpio (18, 'out'), // Arduino D2ге туташат

commandCW = жаңы Gpio (23, 'out'), // Arduino D3 менен туташат

commandCCW = new Gpio (24, 'out'); // Arduino D4 менен туташат

var sleep = талап кылуу ('system-sleep');

var v1 = new blynk. VirtualPin (1); // бул колдонмодогу Command1 баскычы

var v2 = new blynk. VirtualPin (2); // бул колдонмодогу CW баскычы

var v3 = new blynk. VirtualPin (3); // бул колдонмодогу CCW баскычы

var v4 = new blynk. VirtualPin (4); // бул колдонмодогу сиздин LCD линияңыз 1

var v5 = new blynk. VirtualPin (5); // бул сиздин LCD линияңыз 2 колдонмодо

v1.on ('жазуу', функция (парам) // Колдонмодогу Command1 баскычын текшериңиз

{

if (param == 1) // Эгерде баскыч басылса (бул 1), анда төмөнкүлөрдү аткарыңыз

{

v4.write ("Аткаруу"); // ЖКнын биринчи сабына "Аткарылып жатат" деп жазыңыз

v5.write ("Буйрук"); // ЖКнын экинчи сабына "Command" деп жазыңыз

command1.writeSync (1); // GPIO18'ди (өзгөрмө команда1) 1ге (ЖОГОРУ) коюңуз

уйку (4000); // 4 секунд күтө туруңуз

command1.writeSync (0); // GPIO18'ди (ал өзгөрмө команда1) 0 (ТӨМӨН) кылып коюңуз

v4.write ("Бүттү"); // ЖКнын биринчи сабына "Бүттү" деп жазыңыз

v5.write (""); // ЖКнын экинчи сабына "" (эч нерсе) деп жаз

v1.write (0); // Command1 баскычына 0 жаз, ал аны OFF абалына кайтарат

}

});

v2.on ('write', function (param) // Колдонмодогу CW баскычын текшериңиз

{

if (param == 1) // Эгерде баскыч басылса (бул 1 болсо), анда төмөнкүлөрдү аткарыңыз

{

commandCW.writeSync (1); // GPIO23 (бул commandCW өзгөрмөлүү) 1ге (ЖОГОРУ) коюңуз

}

else if (param == 0) // Эгерде баскыч басылбаса (бул 0), анда төмөнкүлөрдү аткарыңыз

{

commadCW.writeSync (0); // GPIO23 (бул өзгөрмө commandCW) 0 (LOW)

}

});

v3.on ('write', function (param) // Колдонмодогу CCW баскычын текшериңиз

{

if (param == 1) // Эгерде баскыч басылса (бул 1 болсо), анда төмөнкүлөрдү аткарыңыз

{

commandCCW.writeSync (1); // GPIO24 (бул өзгөрмөлүү commandCCW) 1ге (Жогорку) коюңуз

}

else if (param == 0) // Эгерде баскыч басылбаса (бул 0), анда төмөнкүлөрдү аткарыңыз

{

commandCCW.writeSync (0); // GPIO24 (бул өзгөрмөлүү commandCCW) 1ге (Жогорку) коюңуз

}

});

Сактаңыз жана нанодон чыгыңыз

- CTRL+O сактоо үчүн

- CTRL+X басуу

Сиз Raspberry Pi менен бүттүңүз.

Эми аны текшерип көрүңүз, кандайдыр бир каталар барбы же жокпу (көбүнчө Typo каталары)

Муну текшерүү үчүн Терминалга төмөнкүлөрдү териңиз

түйүн MyProject.js

Сиз ушундай окшош чыгарууну алышыңыз керек

OnOff режими

Байланышуу: blynk-cloud.com 8441

SSL уруксаты…

Ыйгарым укуктуу

5 -кадам: Arduinoдогу MyProject

Макул, азыр бизде 2/3 иштер бүттү!

Эми биз жөн гана Arduino үчүн код жазышыбыз керек.

- Жаңы Arduino эскизин түзүңүз жана төмөнкү кодду териңиз.

#кошуу

32. КАДАМДАРДЫ_АПЕР_МОТОРДУН_РЕВОЛЮЦИЯСЫН аныктаңыз

#depine STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048

// Пин туташуулары 8, 9, 10, 11 пинге туташкан болушу керек

// In1, In2, In3, In4 мотор айдоочуларына

// Андан кийин бул жерге туура ырааттуулук үчүн 1-3-2-4 тизмеги менен пинтер киргизилет

Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);

int Steps2Take;

int Command1;

int CommandCW;

int CommandCCW;

жараксыз орнотуу ()

{

pinMode (2, INPUT);

pinMode (3, INPUT);

pinMode (4, INPUT);

// (Stepper китепканасы казыктарды чыкма катары коёт)

}

боштук цикл ()

{

Command1 = digitalRead (2);

CommandCW = digitalRead (3);

CommandCCW = digitalRead (4);

эгер (Command1 == 0)

{

//эч нерсе кылбоо

}

башка

{

ExecutionFunction ();

}

эгер (CommandCW == 1)

{

Small_stepper.setSpeed (700);

small_stepper.step (-1);

кечигүү (1);

}

эгер (CommandCCW == 1)

{

Small_stepper.setSpeed (700);

Small_stepper.step (1);

кечигүү (1);

}

}

жараксыз ExecutionFunction ()

{

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ге туташтыруу (пин 6)

Arduino D8ди Stepper Controller In1ге туташтырыңыз

Arduino D9ду Step2 Controller In2ге туташтырыңыз

Arduino D10ду Stepper Controller In3 менен туташтырыңыз

Arduino D11ди Step4 Controller In4 менен туташтырыңыз

5VDCди Arduino, Raspberry Pi жана Stepper Controller менен туташтырыңыз

7 -кадам: Болду

Видеону текшериңиз, жана сиз бүтүрүшүңүз керек!

Рахмат жана ырахат алыңыз!

Сунушталууда: