Satura rādītājs:
- 1. darbība: izveidojiet lietotni savā tālrunī
- 2. darbība: sagatavojiet PI
- 3. darbība. Projekta izveide
- 4. darbība: MyProject.js
- 5. solis: MyProject Arduino
- 6. darbība: elektroinstalācija
- 7. solis: Tieši tā
Video: Raspberry PI & Arduino - Blynk Stepper Control: 7 soļi (ar attēliem)
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:58
Šī apmācība parādīs, kā vadīt pakāpju motoru, izmantojot Arduino, Raspberry Pi un lietojumprogrammu Blynk.
Riekstu čaulā lietotne nosūta pieprasījumus Raspberry Pi, izmantojot virtuālās tapas, Pi pēc tam nosūta HIGH/LOW signālu Arduino, un Arduino pēc tam nodarbojas ar pakāpju motoru.
Es domāju, ka šo pieeju ir vieglāk izmantot, jo lielākā daļa cilvēku ir pieraduši strādāt ar Arduino, nevis daudz ar node.js Raspberry Pi.
Šim nolūkam nepieciešamās sastāvdaļas:
- Raspberry PI (es izmantoju Raspberry Pi 3 modeli b)
- Arduino (es izmantoju Arduino Nano)
- Servo motors (es izmantoju 28BYJ-48 5VDC ar tā kontrolieri)
- Daži džemperu vadi
- Barošanas avots (5VDC 2A.)
Arduino skice un Node.js kods ir pieejami lejupielādei. Vienkārši meklējiet failus.
1. darbība: izveidojiet lietotni savā tālrunī
Lejupielādējiet Blynk no AppStore vai GooglePlay
Atveriet lietotni un izveidojiet lietotāju vai piesakieties, izmantojot facebook.
- Izveidojiet jaunu projektu
Nosauciet savu projektu: MyProject
Izvēlieties ierīci: Rasapberry Pi 3 B
Savienojuma veids: Wifi (vai Ethernet, ja jūsu Pi ir pieslēgts tīklam)
- Noklikšķiniet uz Izveidot
Pārbaudiet savu e -pastu, lai atrastu savu marķieri
(izskatās šādi 3aa19bb8a9e64c90af11e3f6b0595b3c)
Šis marķieris ir saistīts ar jūsu pašreizējo lietotni. Ja veicat citu lietotni, jūs ģenerēsit citu marķieri.
Lietotnē pievienojiet šādus logrīkus (skatiet attēlu)
- Pievienojiet 3 pogas
- Pievienojiet 1 LCD
- Rediģējiet pogu
nosauciet pirmo komandu 1, iestatiet tapu kā Virtual Pin 1 un iestatiet režīmu kā SWITCH
nosauciet otro CW, iestatiet tapu kā Virtual Pin 2 un iestatiet režīmu kā PUSH
nosauciet trešo CCW, iestatiet tapu kā Virtual Pin 3 un iestatiet režīmu kā PUSH
- Rediģējiet LCD
iestatiet tapas kā virtuālo tapu 4 un virtuālo tapu 5 un iestatiet režīmu uz PUSH
2. darbība: sagatavojiet PI
Pirmkārt, jums jāinstalē Node.js. Pirms Node.js atjaunināšanas noteikti noņemiet vecās versijas:
Atveriet termināli un ierakstiet
sudo apt-get attīrīt mezglu nodejs
node.js -ysudo apt -get autoremove
Automātiska Node.js instalēšana Pievienot krātuves:
čokurošanās -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
Instalējiet Node.js
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential nodejs -y
Kad Node.js ir instalēts, instalējiet Blynk
sudo npm instalēt blynk -library -g
sudo npm instalēt onoff -g
3. darbība. Projekta izveide
Sāciet, nomainot direktoriju (cd komanda) uz pi direktoriju
Atveriet termināli un ierakstiet:
cd/mājas/pi/
Pēc tam izveidojiet direktoriju, kurā atradīsies jūsu projekts
mkdir MyProject
Mainiet direktoriju uz MyProject, terminālī ierakstiet šo
cd MyProject
Pārbaudiet direktorija saturu (tam jābūt tukšam). Vienkārši ierakstiet terminālī sekojošo
ls
Pēc tam ierakstiet šo, lai izveidotu projekta aprakstu (package.json)
npm init
Vienkārši ierakstiet projekta nosaukumu, autoru, versiju utt.…
Kad tas ir izdarīts, instalējiet Blynk bibliotēku, ieslēgšanas bibliotēku un sistēmas miega bibliotēku SAVU projektu direktorijā. Savā terminālī ierakstiet šo
npm instalēt blynk-library-save
npm instalēt onoff -saglabāt
npm instalējiet sistēmu miega režīms-saglabājiet
Visbeidzot, izveidojiet savu.js failu (šeit atradīsies jūsu kods). Terminālī ierakstiet šo
nano MyProject.js
Kad esat izpildījis šo komandu, tiks atvērts nano (termināļa teksta redaktors).
4. darbība: MyProject.js
Nano rakstiet šādas koda rindas
var Blynk = pieprasīt ('blynk-library');
var AUTH = '*****************'; ŠIS IR JŪSU TOKENS
var blynk = jauns Blynk. Blynk (AUTH);
var Gpio = prasīt ('ieslēgts'). Gpio,
command1 = new Gpio (18, 'out'), // tiks savienots ar Arduino D2
commandCW = new Gpio (23, 'out'), // tiks savienots ar Arduino D3
commandCCW = jauns Gpio (24, 'ārā'); // Tiks savienots ar Arduino D4
var miega = pieprasīt ('system-sleep');
var v1 = jauns blynk. VirtualPin (1); // šī ir jūsu poga Command1 lietotnē
var v2 = jauns blynk. VirtualPin (2); // šī ir jūsu CW poga lietotnē
var v3 = jauns blynk. VirtualPin (3); // šī ir jūsu CCW poga lietotnē
var v4 = jauns blynk. VirtualPin (4); // šī ir jūsu LCD 1. līnija lietotnē
var v5 = jauns blynk. VirtualPin (5); // šī ir jūsu LCD 2. līnija lietotnē
v1.on ('rakstīt', funkcija (param) // Pārbaudiet lietotnē pogu Command1
{
ja (param == 1) // Ja tiek nospiesta poga (kas ir 1), rīkojieties šādi
{
v4.write ("Izpilde"); // LCD pirmajā rindā ierakstiet "Izpilde"
v5.write ("Komanda"); // LCD otrajā rindā ierakstiet "Komanda"
command1.writeSync (1); // Iestatiet GPIO18 (kas ir mainīga komanda1) uz 1 (HIGH)
gulēt (4000); // Pagaidiet 4 sekundes
command1.writeSync (0); // Iestatiet GPIO18 (kas ir mainīgā komanda1) uz 0 (LOW)
v4.write ("Gatavs"); // LCD pirmajā rindā ierakstiet "Gatavs"
v5.rakstīt (""); // LCD otrajā rindā ierakstiet "" (neko)
v1.rakstīt (0); // Uzrakstiet 0 uz Command1 pogu, kas to atgriezīs pozīcijā OFF
}
});
v2.on ('rakstīt', funkcija (param) // Pārbaudiet, vai lietotnē nav pogas CW
{
ja (param == 1) // Ja tiek nospiesta poga (kas ir 1), rīkojieties šādi
{
commandCW.writeSync (1); // Iestatiet GPIO23 (kas ir mainīga komandaCW) uz 1 (HIGH)
}
citādi, ja (param == 0) // Ja poga nav nospiesta (kas ir 0), rīkojieties šādi
{
commadCW.writeSync (0); // Iestatiet GPIO23 (kas ir mainīga komandaCW) uz 0 (LOW)
}
});
v3.on ('rakstīt', funkcija (param) // Pārbaudiet lietotnē CCW pogu
{
ja (param == 1) // Ja tiek nospiesta poga (kas ir 1), rīkojieties šādi
{
commandCCW.writeSync (1); // Iestatiet GPIO24 (kas ir mainīga komandaCCW) uz 1 (HIGH)
}
citādi, ja (param == 0) // Ja poga nav nospiesta (kas ir 0), rīkojieties šādi
{
commandCCW.writeSync (0); // Iestatiet GPIO24 (kas ir mainīga komandaCCW) uz 1 (HIGH)
}
});
Saglabājiet to un izejiet no nano
- lai saglabātu CTRL+O
- lai aizvērtu CTRL+X
Jūs esat pabeidzis lietot Raspberry Pi.
Tagad pārbaudiet to, lai redzētu, vai tajā ir kāda veida kļūdas (lielākoties tās ir drukas kļūdas)
Lai to pārbaudītu, vienkārši ierakstiet šo terminālī
mezgls MyProject.js
Jums vajadzētu iegūt rezultātu, kas izskatās šādi
OnOff režīms
8441
SSL autorizācija…
Pilnvarots
5. solis: MyProject Arduino
Labi, tagad mums ir pabeigtas 2/3 lietas!
Tagad mums vienkārši jāraksta Arduino kods.
- Izveidojiet jaunu Arduino skici un ierakstiet šādu kodu.
#iekļaut
#define STEPS_PER_MOTOR_REVOLUTION 32
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 // 2048
// Tapas savienojumiem jābūt savienotiem ar tapām 8, 9, 10, 11
// uz motora draiveri In1, In2, In3, In4
// Tad tapas tiek ievadītas šeit secībā 1-3-2-4 pareizai secībai
Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
int Steps2Take;
int Command1;
int CommandCW;
int CommandCCW;
anulēts iestatījums ()
{
pinMode (2, INPUT);
pinMode (3, INPUT);
pinMode (4, INPUT);
// (Stepper Library nosaka tapas kā izejas)
}
tukša cilpa ()
{
Komanda1 = digitalRead (2);
CommandCW = digitalRead (3);
CommandCCW = digitalRead (4);
ja (1. komanda == 0)
{
//neko nedarīt
}
citādi
{
ExecutionFunction ();
}
ja (CommandCW == 1)
{
small_stepper.setSpeed (700);
mazs_solītis.solis (-1);
kavēšanās (1);
}
ja (CommandCCW == 1)
{
small_stepper.setSpeed (700);
small_stepper.step (1);
kavēšanās (1);
}
}
void ExecutionFunction ()
{
Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Pagriezt CCW 1/4 pagrieziena
small_stepper.setSpeed (700);
small_stepper.step (Steps2Take); // Jūs varat aizstāt Steps2Take ar jebkuru vērtību no 0 līdz 2048
kavēšanās (500);
Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Pagriezt CW par 1/4 pagriezienu
small_stepper.setSpeed (700);
small_stepper.step (Steps2Take); // Jūs varat aizstāt Steps2Take ar jebkuru vērtību no 0 līdz 2048
kavēšanās (2000);
}
Apkopojiet un augšupielādējiet savā Arduino.
Tagad pārliecinieties, ka viss ir pareizi savienots! Skatiet nākamo elektroinstalācijas soli.
6. darbība: elektroinstalācija
Savienojiet Arduino D3 ar RaspberryPi GPIO18 (kas faktiski ir 12. tapa)
Savienojiet Arduino D4 ar RaspberryPi GPIO23 (kas faktiski ir 16. tapa)
Savienojiet Arduino D4 ar RaspberryPi GPIO24 (kas faktiski ir 18. tapa)
Savienojiet Arduino GND ar RaspberryPi GND (6. tapa)
Pievienojiet Arduino D8 Stepper Controller In1
Pievienojiet Arduino D9 Stepper Controller In2
Pievienojiet Arduino D10 Stepper Controller In3
Pievienojiet Arduino D11 Stepper Controller In4
Savienojiet 5VDC ar Arduino, Raspberry Pi un Stepper Controller
7. solis: Tieši tā
Pārbaudiet video, un jums vajadzētu būt pabeigtam!
Paldies un izbaudi!
Ieteicams:
Stepper Motor kontrolējams Stepper Motor bez mikrokontrollera (V2): 9 soļi (ar attēliem)
Pakāpju motora kontrolēts pakāpju motors bez mikrokontrollera (V2): Vienā no maniem iepriekšējiem norādījumiem es parādīju, kā vadīt pakāpju motoru, izmantojot soļu motoru bez mikrokontrollera. Tas bija ātrs un jautrs projekts, taču tam bija divas problēmas, kuras tiks atrisinātas šajā instrukcijā. Tātad, asprātīgi
Totoro projekts - IoT & MQTT & ESP01: 7 soļi (ar attēliem)
Totoro projekts - IoT & MQTT & ESP01: Totoro projekts ir jauks IoT projekts, kuru varat kopēt daudzos citos veidos. Izmantojot ESP01 dēli, izmantojot MQTT protokolu, jūs varat paziņot pogas statusu MQTT brokerim (manā lieta AdafruitIO). Noderīgs ceļvedis MQTT un reklāmai
Vēl viena Arduino meteoroloģiskā stacija (ESP-01 & BMP280 & DHT11 & OneWire): 4 soļi
Vēl viena Arduino meteoroloģiskā stacija (ESP-01 & BMP280 & DHT11 & OneWire): šeit varat atrast vienu OneWire lietošanas atkārtojumu ar dažām ESP-01 tapām. Šajā pamācībā izveidotā ierīce savienojas ar jūsu Wifi tīklu izvēle (jums ir jābūt akreditācijas datiem …) Savāc maņu datus no BMP280 un DHT11
Wi-Fi kontrolēts FPV Rover robots (ar Arduino, ESP8266 un Stepper Motors): 11 soļi (ar attēliem)
Wi-Fi kontrolēts FPV Rover robots (ar Arduino, ESP8266 un Stepper Motors): šajā pamācībā ir parādīts, kā izveidot bezvadu tīklā vadāmu divriteņu robotu roveri, izmantojot Arduino Uno, kas savienots ar ESP8266 Wi-Fi moduli un divi soļu motori. Robotu var vadīt no parastām interneta uzacīm
Stepper Pomodoro taimeris: 3 soļi (ar attēliem)
Stepper Pomodoro taimeris: Stepper Pomodoro ir galda taimeris, kas palīdz pārvaldīt ikdienas uzdevumu sarakstu, sadalot katru darba periodu 30 minūšu segmentos. Tomēr atšķirībā no parastā Pomodoro taimera tas nerada bažas, parādot atlikušo laiku. Tā vietā