Python- príručka 1. časť

Python je jednoduchý programovací jazyk so širokými možnosťami použitia. Táto príručka obsahuje všetky základné programovacie postupy.

Príkazy vstupu a výstupu

Príkaz vstupu je input a zapisuje sa takto:

a=input("zadaj udaj")

Do premennej A sa vloží textový údaj, ktorý zadá užívateľ.

a=int(input("zadaj cislo"))

Do premennej A sa vloží textový údaj prevedený príkazom INT na číslo – bude sa s ním dať počítať.

Príkaz výstupu je print a zapisuje sa takto:

print("ahoj svet")
print(a)

Prvý print vypíše na obrazovku hlášku “ahoj svet” a druhý obsah premennej A.

print("hodnota premennej a je",a)

Tento print je kombinácia výpisu hlášky s obsahom premennej.

Podmienky

Ak chceme vykonať činnosť podľa toho čo je obsiahnuté v premennej potrebujeme príkaz IF.

if a==0:
     print("v premennej a je nula")

Základná podmienka obsahuje IF, potom podmienku (a==0) a príkaz čo sa vykoná ak podmienka platí (print(“v premennej a je nula”) ).

Pre porovnanie dvoch hodnôt sa používa == a pre priradenie hodnoty do premennej sa používa = .

Pozor: Keď napíšete dvojbodku v prvom riadku stlačte ENTER aby sa druhý riadok správne odriadkoval. To isté platí aj pri cykloch.

if a>0:
     print("a je kladne")
else:
     print("a nie je kladne")

Rozšírená predošlá podmienka obsahuje časť ELSE kde je príkaz, ktorý sa vykoná ak neplatí podmienka.

if a>0 and a<10:
              print("a je jednociferne")

Hore je príklad použitia podmienky s príkazom and – príkaz sa vykoná ak platia obidve podmienky.

Cyklus While

Cyklus While slúži na opakovanie jedného alebo viacerých príkazov pokým platí podmienka.

i = 1
while i < 6:
      print(i)
      i += 1 

Do premennej i sa priradí 1. Pokým platí že v premennej i je menšie čislo ako 6 tak sa vykonajú príkazy:

print(i) – vypíše obsah premennej i

i+=1 -zvýši hodnotu v premennej i o jeden

Tieto dva príkazy sa opakuje pokým platí podmienka. Keď sa skončí cyklus na obrazovke budú vypísané čisla 1,2,3,4,5 .

Cyklus FOR

Cyklus For slúži na opakovanie jedného alebo viacerých príkazov zadaný počet krát.

FOR i in range(5):
        print(i)

Cyklus sa opakuje 5 krát , pričom hodnota v premennej i sa mení pri každom opakovaní cyklu a to od 0 do 4 (nie do 5) . Hodnoty v premennej sa vypisujú na obrazovku, takže na konci sú vypísané čísla 0-4

For i in range(5,10):
         print(i)

V tomto cykle sa na rozdiel od predchodzieho hodnota premennej i mení od 5-9.

Polia

Pole je údajová štruktúra do ktorej je možné uložiť viacero údajov rovnakého typu – napríklad čísiel.

a=[0]*5

Horeuvedeným príkazom sa vytvorilo pole A s 5 číslami – nulami.

 print(a[2]) 

Týmto príkazom sa vypíše na obrazovku tretí údaj s pola (počíta sa od nuly – a[0],a[1],a[2]).

for i in range(5):
         a[i]=int(input("zadaj udaj do pola"))

Naplniť celé pole je možné aj s použitím cyklu FOR. Tento naplní pole piatimi číslami.

sucet=0
for i in range(5):
         sucet=sucet+a[i]
print(sucet)

Tento cyklus sčíta 5 čísiel v poli pripočítavaním každého prvku pola k premennej sucet.

pom=a[1]
a[1]=a[2]
a[2]=pom

Tieto 3 príkazy s pomocou premennej pom prehodia údaje v prvom a druhom prvku pola A.

Arduino- motor

Motor slúži na pohon robotických autíčok, rôznych podvozkov a podobne.

Na napájanie motora je potrebné zapojiť aj tzv. motorový ovládač ako napríklad tento model L9110 kvôli tomu, že motor potrebuje extra energiu na prevádzku:

Na samotné zapojenie budeme potrebovať Arduino, motorový ovládač, 2 motory, krížový šrobovák a pár káblikov:

Zdroj: fritzing.com

Na pohon 2 motorov stačí aj napájanie s Arduina, ale ak budete mať pocit, že motory idú pomaly alebo slabo môžete na červený (+) a čierny (-) káblik zapojiť 9 voltovú batériu. Samotné zapojenie vyzerá takto:

void setup() {
   pinMode( 6 , OUTPUT);
   pinMode( 7 , OUTPUT);
 pinMode( 8 , OUTPUT);
   pinMode( 9 , OUTPUT);
 }
 void loop() {
 digitalWrite( 6 , HIGH);
   digitalWrite( 7 , LOW);
 digitalWrite( 8 , HIGH);
   digitalWrite( 9 , LOW);
 delay(5000);
 digitalWrite( 6 , LOW);
   digitalWrite( 7 , HIGH);
 digitalWrite( 8 , LOW);
   digitalWrite( 9 , HIGH);
 delay(5000);
   // stop
   digitalWrite( 6 , LOW);
   digitalWrite( 7 , LOW);
 digitalWrite( 8 , LOW);
   digitalWrite( 9 , LOW);
 delay(5000);
 }

Kód je podobný ako pri zapojení LEDiek. Motory sa najprv roztočia dopredu 5 sekúnd, potom dozadu 5 sekúnd a nakoniec 5 sekúnd budú nehybné a to všetko sa bude neustále opakovať.

Prajem Vám veľa zaujímavých projektov s motormi.

Arduino-bluetooth

Bluetooth modul umožňuje prepojiť Arduino s mobilným telefónom cez mobilnú aplikáciu. V tomto návode použijeme bluetooth modul HC-06 (jeden z najpoužívanejších-za cca 3 eurá cez Aliexpress aj s poštovným):

Na jeho zapojenie budeme potrebovať bluetooth modul HC-06, Arduino, nepájivé pole, jednu LEDku, 100 ohmový odpor (budeme cez mobil zapínať a vypínať LEDku) a pár káblikov .Napájanie je 5V – v schéme je to dané na 3,3 V čo je zle a Ledku dajte na pin 12 nie 13 ako to je dané na schéme ):

A program vyzerá takto:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(8, 9); 
int BluetoothData; 
void setup() {
mySerial.begin(9600);
pinMode(12,OUTPUT);
}
void loop() {
if (mySerial.available()) {
BluetoothData=mySerial.read();
if(BluetoothData=='1') 
digitalWrite(12,HIGH);
}
if (BluetoothData=='0'){ 
digitalWrite(12,LOW);
}
delay(100);
}

Ak je bluetooth modul prepojený s Arduinom (mySerial.available()) tak sa prečíta údaj poslaný z mobilu cez bluetooth (BluetoothData=mySerial.read()) a ak je to “1” tak sa zapne LEDka a ak “0” tak sa vypne. Ale na to aby sme mohli poslať tú “1” alebo “0” z mobilu potrebujeme stiahnuť do mobilu príslušnú aplikáciu. V tomto návode použijeme aplikáciu Arduino bluetooth controller alebo podobnú z Google marketu. Iné aplikácie fungujú na veľmi podobnom princípe.

Po nainštalovaní a spustení sa začnú vyhľadávať dostupné bluetooth zariadenia – kliknite na zariadenie s názvom HC-06 (Arduino musí byť zapnuté a s nahratým programom). Program si potom vypýta 4-miestne pripojovacie číslo- zadajte 1234 . Potom sa vám objaví možnosť zvoliť typ ovládača – zvolte možnosť Switch mode. Potom sa vám objaví samotný ovládač. V hornom pravom rohu kliknite na ikonku:

V zobrazenej ponuke pridelíte znak “1” zapnutému stavu ovládača a “0” vypnutému stavu ovládača. Keď sa vrátite späť do okna s ovládačom môžete LEDku ovládať pomocou mobilu.

Ďalšie zapojenia si môžete zapojiť sami jednoduchou úpravou programu. Prajem veľa zaujímavých projektov.

Arduino-merač vzdialenosti

Ultrazvukový merač vzdialenosti zmeria krátku vzdialenosť pred ním. Vhodné ako detektor prekážky na robotickom autíčku, detektor priblíženia a podobne.

Na zapojenie potrebujeme len Arduino, merač vzdialenosti, nepájivé pole a pár káblikov:

Zdroj: https://randomnerdtutorials.com

A program vyzerá takto:

float trvanie, vzdialenost;
 void setup() {
   pinMode(12, INPUT);
   pinMode(11, OUTPUT);
   Serial.begin(9600);
 }
 void loop() {
   digitalWrite(11, LOW);
   delayMicroseconds(2);
   digitalWrite(11, HIGH);
   delayMicroseconds(10);
   digitalWrite(11, LOW);
 trvanie = pulseIn(12, HIGH);
   vzdialenost = (trvanie*.0343)/2;
   Serial.print("Vzdialenost: ");
   Serial.println(vzdialenost);
   delay(100);
 }

Dáta s Arduina sa dajú posielať aj do počítača cez USB kábel s ktorým je s počítačom prepojený. Najprv sa musí zadať rýchlosť prenosu dát napr.: 9600 bitov za sekundu(Serial.begin(9600);) a potom pomocou príkazu Serial.print sa do počítača niečo zašle – v tomto prípade “Vzdialenosť : ” spolu s príslušnou vzdialenosťou. Keď si chceme počítačom prijaté dáta pozrieť musíme stlačiť toto tlačidlo v programe Arduino:

Už treba len nahrať program do Arduina a sledovať vzdialenosť komponentu od povedzme vašej ruky. Údaje sú prepočítane na centimetre ((trvanie*.0343)/2) .

Arduino-fotorezistor a servo

Fotorezistor je súčiastka, ktorá mení odpor podľa dopadajúceho svetla. Vhodný na rôzne stmievače, nočné svetlá a podobne.

Zapojíme si obvod ktorý rozsvieti LEDku keď sa zhasne v miestnosti a naopak. Pre jeho zapojenie potrebujeme Arduino, nepájivé pole, fotorezistor, 10kiloohmový odpor a pre zapojenie LEDky potrebujeme 1 LEDku a 100 ohmový rezistor a ešte pár káblikov:

Zapojenie bude vyzerať nasledovne:

Zdroj: http://arduino.sundh.com

Program vyzerá takto:

int value;                
 void setup(){
  pinMode(3, OUTPUT); 
  pinMode(A0, INPUT);
 }
 void loop(){
   value = analogRead(A0);
 if (value > 300){
     digitalWrite(3, LOW); 
   }
   else{
     digitalWrite(3, HIGH); 
   }
 }

Okrem digitálnych pinov 1-13 máme na Arduine aj analógové piny A0-A5. Tie načítavajú elektrickú energiu s káblika, ktorý je do nich zapojený a keď načítajú nulovú energiu uložia si ju ako 0 a keď maximálnu energiu uložia si ju ako 1000.

Obvod s fotorezistorom je zapojený do A0. Keď naň dopadá svetlo tak do A0 ide veľa energie – uloží sa veľké číslo (číslo sa číta z A0 cez príkaz analogRead) a naopak keď naň dopadá málo svetla uloží sa malé číslo. V programe je podmienka, ktorá ak je uložené číslo väčšie ako 300 vypne LEDku a ak menšie ako 300 tak zapne LEDku. Menej ako 300 je už skoro tma. Ak to nefunguje je potrebné meniť číslo 300 v programe v rozsahu od 0-1000 a skúšať funkčnosť.

Servo motor je súčiastka vhodná na otáčanie častí robotov, robotických rúk, rámp a podobne. Na zapojenie potrebujeme len servo a Arduino. Zapojenie vyzerá takto:

Zdroj: https://www.instructables.com

A program vyzerá takto:

#include <Servo.h>
Servo Servo1; 
 void setup() { 
    Servo1.attach(9); 
 }
 void loop(){ 
    Servo1.write(0); 
    delay(1000); 
    Servo1.write(90); 
    delay(1000); 
    Servo1.write(180); 
    delay(1000); 
 }

Servo sa môže otáčať len od 0 do 180 stupňov – pol otáčky. Program otočí servo na 0 ° , počká 1 sekundu, otočí servo na 90 ° , počká 1 sekundu a otočí servo na 180 ° a počká 1 sekundu o to všetko stále opakuje.

Všimnite si že bolo prvýkrát potrebné pripojiť (include) knihovnu k programu. Základné knihovny (ako táto) sú súčasťou inštalácie programu.

Prajem Vám kopu super projektov s týmito súčiastkami.