Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas...

19
"Robotika un modernās tehnoloģijas eTwinning projektos" Semināra mācību materiāls Sigulda, 2017 Autori: Andris Jenerts Edgars Bajaruns

Transcript of Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas...

Page 1: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

"Robotika un modernās tehnoloģijas eTwinning projektos"

Semināra mācību materiāls

Sigulda, 2017

Autori: Andris Jenerts

Edgars Bajaruns

Page 2: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

2

Satura rādītājs 1. Loģiskie slēgumi ................................................................................................................ 3

1.1. IF – JA ......................................................................................................................... 3

1.2. OR – VAI ..................................................................................................................... 4

1.3. AND – UN ................................................................................................................... 5

2. Arduino prototipēšanas platformas pamati ...................................................................... 6

2.1. Baterijas pieslēgšana Arduino Nano .......................................................................... 6

2.2. Arduino un gaismas diodes ........................................................................................ 7

Page 3: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

3

1. Loģiskie slēgumi

1.1. IF – JA

1.Tabula. Nepieciešamās komponentes

Nr.p.k. Komponente Nomināls Skaits

1. baterijas konektors -- 1

2. gaismas diode sarkana/zaļa/zila 1

3. rezistors 470Ω 1

4. spiedpoga -- 1

1.attēls. IF loģiskā slēguma principiālā shēma un modelēts slēgums.

IF loģiskā slēguma principiālā shēma apskatāma 1. attēlā kreisajā pusē, pa labi modelēts

slēgums uz prototipēšanas plates. Izmantojot komplektā iekļautos materiālus, savienots IF slēgums

apskatāms 2. attēlā. Nospiežot pogu, diodei, kas atrodas slēgumā, būtu jāiedegas.

2.Attēls. IF loģiskais slēgums uz prototipēšanas plates.

Page 4: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

4

1.2. OR – VAI

2.Tabula. Nepieciešamās komponentes

Nr.p.k. Komponente Nomināls Skaits

1. baterijas konektors -- 1

2. gaismas diode sarkana/zaļa/zila 1

3. rezistors 470Ω 1

4. spiedpoga -- 2

3.Attēls. OR loģiskā slēguma principiālā shēma un modelēts slēgums.

OR loģiskā slēguma principiālā shēma apskatāma 3. attēlā kreisajā pusē, pa labi modelēts

slēgums uz prototipēšanas plates. Izmantojot komplektā iekļautos materiālus, savienots OR

slēgums apskatāms 4. attēlā. Nospiežot jebkuru no pogām vai abas reizē, diodei, kas atrodas

slēgumā, būtu jāiedegas.

4.Attēls. OR loģiskais slēgums uz prototipēšanas plates.

Page 5: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

5

1.3. AND – UN

3.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. baterijas konektors -- 1

2. gaismas diode sarkana/zaļa/zila 1

3. rezistors 470Ω 1

4. spiedpoga -- 2

6.Attēls. AND loģiskā slēguma principiālā shēma un modelēts slēgums.

AND loģiskā slēguma principiālā shēma apskatāma 6. attēlā kreisajā pusē, pa labi modelēts

slēgums uz prototipēšanas plates. Izmantojot komplektā iekļautos materiālus, savienots AND

slēgums apskatāms 7. attēlā. Nospiežot abas pogas reizē, diodei, kas atrodas slēgumā, būtu

jāiedegas.

7.Attēls. OR loģiskais slēgums uz prototipēšanas plates.

Page 6: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

6

2. Arduino prototipēšanas platformas pamati

2.1. Baterijas pieslēgšana Arduino Nano

Arduino Nano ir prototipēšanas platforma bāzēta uz Atmega 328 mikrokontrolieri. Tādēļ

esiet uzmanīgi un sekojiet līdzi Arduino Nano izvadu nosaukumiem, baterijas pozitīvajam un

negatīvajam vadam, lai mikrokontrolieris netiktu neatgriezeniski bojāts.

1.Attēls. Arduino savienošana ar baterijas konektoru.

Arduino Nano savienošana ar konektoru apskatāma 1. attēlā pa kreisi, bet pa labi redzams

modelēts slēgums uz prototipēšanas plates. Komplektā ir iekļauta 9 V baterija (krona), pieslēdzot

bateriju konektoram, uz Arduino Nano jāiedegas divām sarkanām gaismas diodēm. Viena no

gaismas diodēm mirgos. VIN apzīmē ienākošo spriegumu (Voltage in), GND – zemi (ground). Šī soļa

gala rezultāts, kas saslēgts no komplektā esošajām detaļām apskatāms 2. attēlā.

2.Attēls. Arduino ar pieslēgtu bateriju uz prototipēšanas plates.

Page 7: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

7

2.2. Arduino un gaismas diodes

1.Tabula. Nepieciešamās komponentes

Nr.p.k. Komponente Nomināls Skaits

1. baterijas konektors -- 1

2. gaismas diode sarkana/zaļa/zila 3

3. rezistors 470Ω 3

4. Arduino Nano 1

3.Attēls. Vienas gaismas diodes

pievienošana Arduino Nano.

Gaismas diodes un Arduino Nano savienošana apskatāma 3. attēlā, kur pa kreisi atrodama

principiālā shēma un pa labi modelēts izvietojums uz prototipēšanas plates. Reālie savienojumi uz

prototipēšanas plates apskatāmi 4. attēlā.

4.Attēls. Arduino un gaismas diode uz prototipēšanas plates.

Page 8: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

8

Lai kontrolētu gaismas diodi ar Arduino palīdzību ir nepieciešama programma, kas

apskatāma 1. koda piemērā. 9 V baterija var palikt nepievienota, jo Arduino Nano tiks pieslēgts

datoram, kas nodrošinās nepieciešamo barošanu. Ar atbilstošu programmu iespējams mainīt

gaismas diodes degšanas parametrus.

1.Koda piemērs. Vienas gaismas diodes kontrolēšanā.

const int led = 2; //Tiek norādīts pie kura pina pievienota diode void setup() pinMode(led, OUTPUT); //norāda, ka led ir izeja void loop() digitalWrite(led, HIGH); //ieslēdz diodi delay(1000); //pauze programma 1 sekunžu garumā (cipars apzīmē milisekundes), nosaka cik ilgi deg diode digitalWrite(led, LOW); //izslēdz diodi delay(1000); //nosaka cik ilgi diode ir izslēgta

Programmas paraugs atrodams File > Examples >Apmācības>Gaismas_diode

Patstāvīgais uzdevums

Pēc dotās shēmas, kas apskatāma 5. attēlā, izveidot slēgumu uz prototipēšanas plates ar trīs

gaismas diodēm. Pārveidot koda piemēru tā, lai tas darbotos ar trīs pievienotajām gaismas

diodēm.

5.Attēls. Principiālā shēma ar Arduino un trīs gaismas diodēm.

Page 9: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

9

2.3. Arduino un spiedpogas

1.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. baterijas konektors -- 1

2. gaismas diode sarkana/zaļa/zila 3

3. rezistors 470Ω 3

4. rezistors 10KΩ 3

5. Arduino Nano 1

6. spiedpoga -- 3

1.Attēls. Spiedpogas un gaismas diodes savienošana ar Arduino Nano.

Gaismas diodes un spiedpogas savienošana ar Arduino Nano apskatāma 1. attēlā, kur pa

kreisi principiālā shēma, bet pa labi modulēti savienojumi uz prototipēšanas plates. 2. attēlā

apskatāms gala rezultāts uz reālas prototipēšanas plates.

2.Attēls. Spiedopgas un gaismas diodes pievienošana Arduino Nano.

Page 10: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

10

Programma, kas strādā ar konkrēto shēmu, apskatāma 1. koda piemērā.

1.Koda piemērs. Spiedpoga un gaismas diode.

const int led = 2; //Tiek norādīts pie kura pina pievienota diode const int poga = 3; //Tiek norādīts pie kura pina ir poga boolean state = false; //saglabā stāvokli vai diode ir ieslēgta vai izslēgta void setup() pinMode(led, OUTPUT); //norāda, ka led ir izeja pinMode(poga, INPUT); //norada, ka poga ir ieeja void loop() if(digitalRead(poga) == HIGH && !state) //nostrādā brīdī, kad poga ir nospiesta un led izslēgta digitalWrite(led, HIGH);// ieslēdz led state = true; //piefiksē, ka diode ir ieslēgta delay(200); // pauze lai paspētu atlaist pirkstu if(digitalRead(poga) == HIGH && state) //nostrādā brīdī, kad poga ir nospiesta un led ieslēgta digitalWrite(led, LOW);// izslēdz led state = LOW; //piefiksē, ka diode ir izslēgta delay(200); // pauze lai paspētu atlaist pirkstu

Programmas paraugs atrodams File > Examples >Apmācības>Poga_gaismas_diode

Patstāvīgais uzdevums

Pēc dotās shēmas, kas apskatāma 3. attēlā, izveidot slēgumu uz prototipēšanas plates ar trīs

gaismas diodēm un trīs spiedpogām. Pārveidot koda piemēru tā, lai tas darbotos ar jauno shēmu.

3.Attēls. Principiālā shēma ar trīs gaismas diodēm un spiedpogām.

Page 11: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

11

3. Arduino un sensori

3.1. HC-SR04 attāluma sensors

1.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. Arduino Nano 1

2. HC-SR04 -- 1

1.Attēls. HC-SR04 sensora shēma

Programmas piemērs apskatāms 1. koda piemērā. Šajā programmā tiek lietota Seriālā

komunikācija ar datoru. Ar tās palīdzību var gan nosūtīt informāciju uz Arduino, gan saņem no tā

(kā tas tiek darīts šajā piemērā).

1.Koda piemērs. Arduino programma priekš HC-SR04 sensora.

#include <NewPing.h> // tiek lietota New Ping bibliotēka #define TRIGGER_PIN 2 // pins pie kura pielikts Trig pins no Sensora #define ECHO_PIN 3 // pins pie kura pielikts Echo pins no Sensora #define MAX_DISTANCE 200 // maksimālā distance, līdz kurai sensors mēra //reģistrējam sensoru pēc ievadītajiem datiem NewPing sensors(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); void setup() Serial.begin(9600); //izveido komunikāciju ar datoru void loop() delay(50); //gaida 50 msek starp pingiem Serial.print("Ping: "); // saņem distanci un izdrukā seriālajā monitorā Serial.print(sensors.ping_cm()); Serial.println("cm");

Programmas paraugs atrodams File > Examples >Apmācības>HC-SR04

Page 12: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

12

3.2. IR pults uztvērējs

1.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. Arduino Nano 1

2. IR pults sensors -- 1

1.Attēls. IR pults uztvērēja shēma un modelēts slēgums.

2.Attēls. IR pults uztvērējs uz prototipēšanas plates.

Lai nolasītu pults pogu vērtības tiek lietos 1. koda piemērā apskatītā programma, bet, lai

izpildītu darbības, tiek lietota 2. koda piemērā parādītā programma.

1.Koda piemērs. Programma pogu vērtību nolasīšanai.

#include <IRremote.h> int RECV_PIN = 12; //norāda, ka sensors ir pieslēgts pie 13 pina IRrecv uztverejs(RECV_PIN); //iestata sensoru decode_results vertiba; //uztvertā vērtība

Page 13: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

13

void setup() Serial.begin(9600); uztverejs.enableIRIn(); // sāk uztveršanu void loop() if (uztverejs.decode(&vertiba)) Serial.println(vertiba.value, HEX); uztverejs.resume(); // uztver nākošo vērtību delay(100);

Programmas paraugs atrodams File > Examples >Apmācības>IR_vertibas

2.Koda piemērs. IR pults nolasīto vērtību lietošana

#include <IRremote.h> int RECV_PIN = 12; //norāda, ka sensors ir pieslēgts pie 13 pina IRrecv uztverejs(RECV_PIN); //iestata sensoru decode_results vertiba; void setup() Serial.begin(9600); uztverejs.enableIRIn(); // sāk uztveršanu void loop() if (uztverejs.decode(&vertiba)) // ja kaut kas tiek uztverts switch (vertiba.value) // škito gadijumus case 0xFFA25D: //poga ar šādu vērtību /// // kods ko izpilda Serial.println("Poga: 1"); /// break; case 0xFF629D: /// // kods ko izpilda Serial.println("Poga: 2"); /// break; case 0xFF38C7: /// // kods ko izpilda Serial.println("Poga: OK"); /// break; default: // visi citi gadījumi Serial.println("cita poga"); break; uztverejs.resume(); //uztver nākošo vērtību

Programmas paraugs atrodams File > Examples >Apmācības>IR_pielietojums

Page 14: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

14

3.3. Gaismas sensors

1.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. Arduino Nano 1

2. Rezistors 10KΩ 1

3 Rezistors 470Ω 1

4 Gaismas sensors 10KΩ 1

1.Attēls. Gaismas sensorasavienošana ar Arduino nano.

Gaismas sensors darbojas kā rezistors, bet tā vērtība mainās atkarībā no gaismas

intenstātes. Iegūto vērtību diapazonu var mainīt ne tikai programma, bet arī ar komponentēm,

piemēram, nomainiet 10KΩ rezistoru pret 470Ω un redzēsiet kā mainās iegūtās vērtības.

Programma, kas tiek lietota apskatāma 1. kodu piemērā.

1.Koda piemērs. Gaismas sneora vērtību iegūšana.

const int LDR_pin = A3; //norāda pie kura pina pieslēgts sensors void setup() Serial.begin(9600); //uzsāk seriālā porta komunikāciju void loop() int vertiba = analogRead(LDR_pin); //nolasa un saglabā sensora vērtību Serial.print("Sensora vertiba ir: "); Serial.println(vertiba); //izdrukā saglabāto vērtību delay(100);

Programmas paraugs atrodams File > Examples >Apmācības>Fotorezistors

Page 15: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

15

3.4. Temperatūras sensors

1.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. Arduino Nano 1

2. Rezistors 10KΩ 1

3 Temperatūras sensors 10KΩ 1

1.Attēls. Temperatūras sensora savienošana ar Arduino Nano.

Pievienots temperatūras sensors apskatāms 2. attēla. Šajā gadījuma temperatūras sensors ir

10KΩ rezistors, kura vērtība mainās atkarībā no temperatūras. Pretestības atkarība no

temperatūras ir precīzi zināma, tādēļ iespējams aprēķināt temperatūru, nomērot sprieguma

kritumu diodē. Programma, kas aprēķina temperatūru apskatāma 1. koda piemērā.

2.Attēls. Temperatūras sensors pieslēgts pie Arduino Nano.

Page 16: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

16

1.Koda piemērs. Programma temperatūras sensora temperatūras noteikšanai.

const int NTC_pin = A3; //norāda pie kura pina pieslēgs sensors void setup() Serial.begin(9600); void loop() // put your main code here, to run repeatedly: int vertiba = analogRead(NTC_pin); //nolasa un saglaba vertibu double Temp; //Tiek veikti aprēķini, lai iegūtu temperatūru Temp = log(((10340000 / vertiba) - 10000)); Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp)); Temp = Temp - 273.15; // pārveido uz Celsija grādiem. Serial.print("Temperatura ir: "); Serial.print(Temp); Serial.println("C"); delay(100);

Programmas paraugs atrodams File > Examples >Apmācības>Termistors

Page 17: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

17

4. Motoru kontrolēšana.

4.1. H-bridge lietošana

1.Tabula. Nepieciešamās komponentes.

Nr.p.k. Komponente Nomināls Skaits

1. Arduino Nano 1

2. H-bridge NY9M135 1

3. Motori 2

1.Attēls. H-bridge savienosānas shēma ar Arduino Nano.

H-Bridge ir shēma, kas ļauj kontrolēt motorus izmantojot Arduino digitālās izejas. Pa tiešo

motorus nav iespējams vadīt to lielās strāvas nepieciešamības dēļ. 1. attēlā pa kreisi principiālās

shēma, bet pa labi modelēts savienojums ar Arduino nano uz prototipēšnas plates (attēlā nav

attēlota H-Bridge motoru vadības shēma, kas redzama 2.attēlā). Ievērojiet, ka jāpieslēdz arī

baterijas barošanas vadi - kā parādīts 2. attēlā. Lūdzu, sekojiet līdzi pozitīvajiem un negatīvajiem

izvadiem, lai tie netiktu sajaukti!

2.Attēls. H-Bridge savienots ar Arduino Nano

Page 18: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

18

Ar H-bridge palīdzību iespējams arī mainīt motora griešanās virzienu, kas ir galvenā šis

metodes izmantošanas priekšrocība motoru vadīšanai. Programmu, kas demonstrē kā iespējams

vadīt abus motorus abos virzienos skatīt 1. koda piemērā.

1.Koda piemērs. H-Bridge vadības programma.

//H-bridge kontroles vadi un attiecīgās ieejas const int inA1 = 10; const int inA2 = 9; const int inB1 = 5; const int inB2 = 6; void setup() pinMode(inA1, OUTPUT); pinMode(inA2, OUTPUT); pinMode(inB1, OUTPUT); pinMode(inB2, OUTPUT); void loop() //A motors 1. virzienā digitalWrite(inA1, HIGH); digitalWrite(inA2, LOW); //B motors izslēgts digitalWrite(inB1, LOW); digitalWrite(inB2, LOW); delay(1000); //A motors 2. virzienā digitalWrite(inA1, LOW); digitalWrite(inA2, HIGH); //B motors izslēgts digitalWrite(inB1, LOW); digitalWrite(inB2, LOW); delay(1000); //A motors izslēgts digitalWrite(inA1, LOW); digitalWrite(inA2, LOW); //B motor 1. virzienā digitalWrite(inB1, HIGH); digitalWrite(inB2, LOW); delay(1000); //A motors izslēgts digitalWrite(inA1, LOW); digitalWrite(inA2, LOW); //B motor 2. virzienā digitalWrite(inB1, LOW); digitalWrite(inB2, HIGH); delay(1000); //A motors 1. virzienā digitalWrite(inA1, HIGH);

Page 19: Robotika un modernās tehnoloģijas - eTwinning...Nr.p.k. Komponente Nomināls Skaits 1. baterijas konektors -- 1 2. gaismas diode sarkana/zaļa/zila 1 3. rezistors 470Ω 1 4. spiedpoga

19

digitalWrite(inA2, LOW); //B motor 1. virzienā digitalWrite(inB1, HIGH); digitalWrite(inB2, LOW); delay(2000); //A motors 2. virzienā digitalWrite(inA1, LOW); digitalWrite(inA2, HIGH); //B motor 2. virzienā digitalWrite(inB1, LOW); digitalWrite(inB2, HIGH); delay(2000);