Inhoudsopgave:
- Stap 1: De app op uw telefoon maken
- Stap 2: De PI voorbereiden
- Stap 3: Uw project maken
- Stap 4: MijnProject.js
- Stap 5: MijnProject in Arduino
- Stap 6: Bedrading
- Stap 7: Dat is het
Video: Raspberry PI & Arduino - Blynk Stepper Control - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Deze tutorial laat je zien hoe je een stappenmotor bestuurt met een Arduino, een Raspberry Pi en de Blynk-applicatie.
In een notendop, de app stuurt verzoeken naar de Raspberry Pi via virtuele pinnen, de Pi stuurt vervolgens een HOOG/LAAG-signaal naar de Arduino en de Arduino behandelt vervolgens de stappenmotor.
Ik denk dat het gemakkelijker is om die aanpak te gebruiken, omdat de meeste mensen gewend zijn om met Arduino te werken en niet veel met node.js op de Raspberry Pi.
Onderdelen die hiervoor nodig zijn:
- Raspberry PI (ik gebruik de Raspberry Pi 3 model b)
- Arduino (ik gebruik een Arduino Nano)
- Servomotor (ik gebruik een 28BYJ-48 5VDC met zijn controller)
- Enkele jumperdraden
- Stroombron (5VDC 2A.)
De Arduino-schets en de Node.js-code zijn beschikbaar om te downloaden. Zoek de bestanden maar op.
Stap 1: De app op uw telefoon maken
Download Blynk uit de AppStore of GooglePlay
Open de app en maak een gebruiker aan of log in met facebook.
- Maak een nieuw project
Geef uw project een naam: MijnProject
Kies apparaat: Rasapberry Pi 3 B
Verbindingstype: Wifi (of Ethernet als uw Pi op uw netwerk is aangesloten)
- Klik op Maken
Controleer uw e-mail voor uw token
(ziet er zo uit 3aa19bb8a9e64c90af11e3f6b0595b3c)
Deze Token is gekoppeld aan uw huidige app. Als u een andere app doet, genereert u een ander token.
Voeg in de App de volgende widgets toe (zie afbeelding)
- Voeg 3 knoppen toe
- Voeg 1 LCD toe
- Bewerk de knop
noem de eerste Command1, stel de pin in als virtuele pin 1 en stel de modus in als SCHAKELAAR
noem de tweede CW, stel de pin in als virtuele pin 2 en stel de modus in als PUSH
noem de derde CCW, stel de pin in als virtuele pin 3 en stel de modus in als PUSH
- Bewerk het LCD-scherm
stel de pinnen in als virtuele pin 4 en virtuele pin 5 en stel de modus in op PUSH
Stap 2: De PI voorbereiden
Eerst moet je Node.js installeren. Voordat je Node.js bijwerkt, moet je ervoor zorgen dat je oude versies verwijdert:
Terminal openen en typen
sudo apt-get purge node nodejs
node.js -ysudo apt-get autoremove
Automatische installatie van Node.js Repositories toevoegen:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
Installeer Node.js
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essentiële nodejs -y
Zodra Node.js is geïnstalleerd, installeer Blynk
sudo npm installeer blynk-library -g
sudo npm install onoff -g
Stap 3: Uw project maken
Begin met het wijzigen van de map (cd-opdracht) naar de pi-map
Open Terminal en typ:
cd /home/pi/
Maak vervolgens een map waar uw project zich zal bevinden
mkdir MijnProject
Wijzig de map naar MyProject, typ het volgende in de Terminal:
cd MijnProject
Controleer de inhoud van de map (deze moet leeg zijn). Typ gewoon het volgende in de Terminal:
ls
Typ vervolgens het volgende om uw projectbeschrijving te maken (package.json)
npm init
Typ gewoon de projectnaam, auteur, versie, enz …
Zodra dit is gebeurd, installeert u de Blynk-bibliotheek, de onoff-bibliotheek en de systeemslaapbibliotheek in UW projectdirectory. Typ het volgende in uw Terminal:
npm install blynk-library --save
npm installeren aanuit --save
npm install system-sleep --save
Maak ten slotte uw.js-bestand (dit is waar uw code zich zal bevinden). Typ het volgende in de Terminal:
nano MijnProject.js
Zodra u die opdracht uitvoert, wordt nano (terminalteksteditor) geopend.
Stap 4: MijnProject.js
Schrijf in nano de volgende regels code:
var Blynk = vereisen('blynk-bibliotheek');
var AUTH = ' **************** '; DIT IS JOUW TOKEN
var blynk = nieuwe Blynk. Blynk(AUTH);
var Gpio = vereisen ('aanuit'). Gpio,
command1 = nieuwe Gpio (18, 'out'), // Zal worden aangesloten op Arduino D2
commandCW = nieuwe Gpio (23, 'out'), // Zal worden aangesloten op Arduino D3
commandCCW = nieuwe Gpio(24, 'uit'); // Zal worden aangesloten op Arduino D4
var sleep = vereisen('systeem-slaap');
var v1 = nieuwe blynk. VirtualPin(1); //dit is je Command1-knop in de app
var v2 = nieuwe blynk. VirtualPin(2); //dit is je CW-knop in de app
var v3 = nieuwe blynk. VirtualPin (3); //dit is je CCW-knop in de app
var v4 = nieuwe blynk. VirtualPin(4); //dit is je LCD-lijn 1 in de app
var v5 = nieuwe blynk. VirtualPin(5); //dit is je LCD-lijn 2 in de app
v1.on('write', function (param) //Check voor de Command1 knop in de app
{
if (param == 1) //Als de knop wordt ingedrukt (wat 1) is, doe dan het volgende:
{
v4.write("Uitvoeren"); // Schrijf "Executing" op de eerste regel van het LCD-scherm
v5.write("Opdracht"); // Schrijf "Command" op de tweede regel van het LCD-scherm
command1.writeSync(1); //Stel de GPIO18 (dat is een variabele opdracht1) in op 1 (HOOG)
slaap (4000); //Wacht 4 seconden
command1.writeSync(0); // Stel de GPIO18 (dat is een variabele opdracht1) in op 0 (LAAG)
v4.write("Gereed"); // Schrijf "Klaar" op de eerste regel van het LCD-scherm
v5.write(" "); //Schrijf " " (niets) op de tweede regel van het LCD-scherm
v1.write(0); //Schrijf 0 naar je Command1-knop, dat zal het terugzetten naar de UIT-positie
}
});
v2.on('write', function (param) //Controleer op de CW-knop in de app
{
if (param == 1) //Als de knop wordt ingedrukt (wat 1) is, doe dan het volgende:
{
commandCW.writeSync(1); // Stel de GPIO23 (variabele commandCW) in op 1 (HIGH)
}
else if (param == 0) //Als de knop niet is ingedrukt (wat 0 is), doe dan het volgende:
{
commadCW.writeSync(0); // Stel de GPIO23 (variabele commandCW) in op 0 (LOW)
}
});
v3.on('write', function (param) //Check voor de CCW-knop in de app
{
if (param == 1) //Als de knop wordt ingedrukt (wat 1) is, doe dan het volgende:
{
commandoCCW.writeSync(1); //Stel de GPIO24 (die variabele commandCCW is) in op 1 (HIGH)
}
else if (param == 0) //Als de knop niet is ingedrukt (wat 0 is), doe dan het volgende:
{
commandCCW.writeSync(0); //Stel de GPIO24 (die variabele commandCCW is) in op 1 (HIGH)
}
});
Sla het op en verlaat nano
- om CTRL+O. op te slaan
- om CTRL+X. af te sluiten
Je bent klaar met de Raspberry Pi.
Test het nu om te zien of er fouten zijn (meestal zijn het typefouten)
Om het te testen, typt u gewoon het volgende in uw Terminal:
knooppunt MijnProject.js
Je zou een output moeten krijgen die er zo uitziet
AanUit-modus
Verbinding maken met: blynk-cloud.com 8441
SSL-autorisatie…
Geautoriseerd
Stap 5: MijnProject in Arduino
Ok dus nu hebben we 2/3 dingen voltooid!
Nu hoeven we alleen nog wat code voor de Arduino te schrijven.
- Maak een nieuwe Arduino-schets en typ de volgende code.
#erbij betrekken
#define STEPS_PER_MOTOR_REVOLUTION 32
#define STEPS_PER_OUTPUT_REVOLUTION 32 * 64 //2048
// De pin-verbindingen moeten op pinnen 8, 9, 10, 11 aangesloten zijn
// naar Motor Driver In1, In2, In3, In4
// Vervolgens worden de pinnen hier ingevoerd in de volgorde 1-3-2-4 voor de juiste volgorde
Stepper small_stepper (STEPS_PER_MOTOR_REVOLUTION, 8, 10, 9, 11);
int Steps2Take;
int Opdracht1;
int CommandCW;
int CommandCCW;
ongeldige setup()
{
pinMode(2, INPUT);
pinMode (3, INGANG);
pinMode (4, INGANG);
//(Stepper Library stelt pinnen in als uitgangen)
}
lege lus()
{
Command1 = digitalRead (2);
CommandCW = digitalRead (3);
CommandCCW = digitalRead(4);
if(Commando1 == 0)
{
//niets doen
}
anders
{
Uitvoeringsfunctie();
}
if(CommandoCW == 1)
{
small_stepper.setSpeed(700);
kleine_stepper.stap(-1);
vertraging(1);
}
if(CommandoCCW ==1)
{
small_stepper.setSpeed(700);
kleine_stepper.stap(1);
vertraging(1);
}
}
void Uitvoeringsfunctie()
{
Steps2Take = STEPS_PER_OUTPUT_REVOLUTION / 4; // Draai linksom 1/4 slag
small_stepper.setSpeed(700);
small_stepper.step (Steps2Take); // U kunt Steps2Take vervangen door elke waarde tussen 0 en 2048
vertraging (500);
Steps2Take = - STEPS_PER_OUTPUT_REVOLUTION / 4; // Draai CW 1/4 slag
small_stepper.setSpeed(700);
small_stepper.step (Steps2Take); // U kunt Steps2Take vervangen door elke waarde tussen 0 en 2048
vertraging (2000);
}
Compileren en uploaden naar uw Arduino.
Zorg er nu voor dat je alles goed aansluit! Zie de volgende stap voor bedrading.
Stap 6: Bedrading
Sluit Arduino D3 aan op RaspberryPi GPIO18 (wat eigenlijk pin 12 is)
Sluit Arduino D4 aan op RaspberryPi GPIO23 (wat eigenlijk pin 16 is)
Verbind Arduino D4 met RaspberryPi GPIO24 (wat eigenlijk pin 18 is)
Sluit Arduino GND aan op RaspberryPi GND (pin 6)
Sluit Arduino D8 aan op Stepper Controller In1
Sluit Arduino D9 aan op Stepper Controller In2
Sluit Arduino D10 aan op Stepper Controller In3
Sluit Arduino D11 aan op Stepper Controller In4
Sluit 5VDC aan op Arduino, Raspberry Pi en Stepper Controller
Stap 7: Dat is het
Bekijk de video en je zou klaar moeten zijn!
Bedankt en geniet ervan!
Aanbevolen:
CNC servo stepper (geschikt voor GRBL): 4 stappen
CNC Servo Stepper (GRBL Capable): Dit project is een vrij eenvoudige motorcontroller die het gebruik van goedkope krachtige DC-motoren met GRBL mogelijk maakt om de spindels van een CNC-machine te bedienen. Bekijk de video hierboven voor een demonstratie van deze controller op mijn zelfgebouwde CNC-machinecon
Draadloze deurbel - (Raspberry PI & Amazon Dash): 4 stappen (met afbeeldingen)
Draadloze deurbel - (Raspberry PI & Amazon Dash): wat doet het? (zie video) Wanneer de knop wordt ingedrukt, ontdekt Raspberry een nieuwe apparaatregistratie op het draadloze netwerk. Op deze manier kan het de ingedrukte knop herkennen en de informatie over dit feit doorgeven aan uw mobiel (of een apparaat van uw
Temperatuur CubeSat Ben & Kaiti & Q Hour 1: 8 stappen
Temperature CubeSat Ben & Kaiti & Q Uur 1: Heb je ooit zelf iets willen maken dat naar de ruimte kan worden gestuurd en de temperatuur van een andere planeet kan opnemen? In onze natuurkundeles op de middelbare school kregen we de opdracht om een CubeSat te bouwen met een functionerende arduino met de hoofdvraag Hoe kunnen we
Stepper omzetten in spelbewegingen: 4 stappen
Stepper omzetten in spelbewegingen: IntroDit apparaat zet beweging van een zelfgemaakte stepper (stepmachine) om in spelbewegingen. Het werkt voor elk spel dat ("w") als voorwaartse beweging ontvangt. Het kan ook werken voor VR-games als ze toetsenbordinvoer accepteren. Waarschijnlijk gewonnen
Nog een Arduino-weerstation (ESP-01 & BMP280 & DHT11 & OneWire): 4 stappen
Nog een Arduino-weerstation (ESP-01 & BMP280 & DHT11 & OneWire): hier vindt u een iteratie van het gebruik van OneWire met de weinige pinnen van een ESP-01. Het apparaat dat in deze instructable is gemaakt, maakt verbinding met het wifi-netwerk van uw keuze (u moet de inloggegevens hebben…) Verzamelt sensorische gegevens van een BMP280 en een DHT11