Projektas #1: Valdykite vykdom?j? varikl?

Sukonstruokite ir užprogramuokite grandin?, kad vykdomojo variklio pad?t? valdytum?te potenciometru.

SUD?TINGUMO LYGIS: Pradedantiesiems.
PRATIMO TRUKM?: 30 min.

MEDŽIAGOS:

  • 1 Vykdomasis variklis
  • 1 potenciometras
  • 1 „Build & Code UNO“ plokšt?
  • 1 bandomoji plokšt?

Kas yra vykdomasis variklis?

Vykdomasis variklis yra nuolatin?s srov?s variklis, kuris yra sukonstruotas taip, kad sukt?si ne nuolat, o pasisukt? konkre?iu kampu, kur? nurodo valdymo signalas, ir pasilikt? toje pad?tyje.

Norint valdyti vykdom?j? varikl?, impulsai siun?iami kas 20 ms, t.y. 50 Hz. Impulso plotis nustatys sukimosi kamp?, kuris yra vadinamas PWM. Šis plotis paprastai yra tarp 0,5 ir 2,5 ms, ta?iau skirtinguose vykdomuosiuose varikliuose jis gali skirtis. Tai suteikia vykdomajam varikliui veikimo diapazon? nuo 0º (impulsas, kurio plotis 0,5 ms) iki maksimalaus 180° (impulsas, kurio plotis 2,5 ms).

Robotikos ir programavimo rinkini? vykdomieji varikliai yra nedideli ir veikia su 5V. Juos valdo „Build&Code UNO“ PWM skaitmeninis kontaktas. Pulso plotis nulemia vykdomojo variklio sukimosi kamp?.

Vykdomasis variklis turi 3 kontaktus: 1 raudona (5V), 1 ruda arba juoda (GND) ir 1 geltona arba balta (Valdymas).

JUNGTYS:

  1. Bandomoji plokšt? gaus elektros srov? iš „Build & Code UNO“ 5V kontakto, tada srov? sugr?š ? bandom?j? plokšt? iš „Build & Code UNO“ ?žeminimo kontakto. Visi grandin?s ?žeminimo kontaktai turi b?ti sujungti tarpusavyje, kad tur?t? t? pa?i? ?žeminimo vert?. Paveiksle ?žeminimas yra pavaizduotas juodu kabeliu, visi jo komponentai yra sujungti tarpusavyje ir prijungti prie ?žeminimo plokšt?s. Raudonas kabelis atitinka 5V kontakt?, kuris tiekia srov? vykdomajam varikliui ir potenciometrui.
  2. Prijunkite prie geltonojo kabelio prilituot? vykdomojo variklio kontakt? prie „Build&Code UNO“ plokšt?s PWM skaitmeninio kontakto. Iliustracijoje galite matyti, kad vykdomasis variklis prie PWM skaitmeninio kontakto Nr. 6 yra prijungtas oranžiniu kabeliu.
  3. Prijunkite potenciometro vidurin?j? kontakt? prie analoginio „Build&Code UNO“ plokšt?s kontakto, nes potenciometras yra analoginis jutiklis. Tokiu b?du j?s nuskaitysite jutiklio informacij?. Iliustracijoje galite matyti, kad potenciometras yra prijungtas prie analoginio kontakto A0 žaliu kabeliu.

PROGRAMOS KODAS

Galite atlikti š? projekt? naudodami „Arduino“ program? arba suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Toliau pateikiamas reikiamas kodas.

„Arduino“ kodas

J?s parašysite program?, kuri nuolat nuskaitys potenciometro informacij?. vykdomasis variklis pasisuks tam tikru kampu ? vien? arba ? kit? pus? pagal potenciometro siun?iam? informacij?.

Jums reik?s naudoti „Arduino“ bibliotek?, kuri jau ?diegta programin?je ?rangoje. Nor?dami j? ?kelti, turite parašyti „#include“. Priklausomai nuo to, kiek j? pasukote, potenciometras rodys rodmenis nuo 0 iki 1023.

„Build&Code“ robotikos ir programavimo rinkini? vykdomasis variklis gali pasisukti nuo 0º iki 180º, taigi tur?site sukurti tiesin? s?saj? tarp 1024 galim? potenciometro pad??i? ir vykdomojo variklio 180°. Nor?dami t? padaryti, naudosite komand? „map“, šio žym?jimo rezultatas yra informacija, kuri? naudosite sukti vykdomajam varikliui.

  1. Parsisi?skite ir ?diekite „Arduino IDE“ program?. Ji si?loma „Windows“, „Mac OS“ ir „Linux“.
  2. Paleiskite „Arduino“ program? ir nukopijuokite ? j? toliau pateikt? program?:
#include //Load the servo control Library

Servo myservo;    //Assign the myservo variable to work with the servomotor


int sensor = A0;    //Potentiometer connected to analog pin A0

int value;    //create variable named value to store the sensor values

int Degrees;   //create variable named Degrees to store the value in grads of the potentiometer (from 0 to 180)


void setup() {
  myservo.attach(6);    //Assign the servo motor to Pin 6

}

void loop() {
  value = analogRead(sensor);   //Instruction to read and store the analog value (from 0 to 1023)

  Degrees = map(value, 0, 1023, 0, 180);   // Scales the sensor readings value with the servo motor rotation degrees


  myservo.write(Degrees);    //Introduce the Degrees value in the servo motor to rotate it
}

Kodas vaizdinio programavimo programinei ?rangai naudojan?iai blokus

  1. Parsisi?skite ir ?diekite program?.
    1. Paleiskite programin? ?rang?
    2. Sukonfig?ruokite program?, kad išsaugotum?te kod? „Build & Code UNO“ plokšt?je. Instrukcijos pateikiamos „Arm Robot“ roboto rankos vadovo pirmuosiuose veiksmuose.
  2. Paleiskite program? ir nukopijuokite toliau pateikt? kod?. Naudokite š? paveiksl?l? kaip vadov?:

PRATIMO REZULTATAS:

LED plokšt?, integruota ? „Build & Code UNO“ plokšt?, ?sijungs ir išsijungs pagal nustatytus laiko intervalus. Tokiu b?du ?sitikinsite, kad „Build & Code UNO“ plokšt? veikia teisingai.