Operácie

Self Balancing Robot: Rozdiel medzi revíziami

Z SensorWiki

(Pridané obrázky a opis častí zdrojového kódu vývojovej dosky Arduino UNO, presunutá kapitola návrh súčiastok za TOC.)
(Pridaný zoznam komponentov)
Riadok 10: Riadok 10:
 
Projekt sme si zvolili preto, pretože jeho náročnosť bola vhodná pre naše schopnosti, z čoho sme predpokladali, že nadobudneme cenné praktické vedomosti.
 
Projekt sme si zvolili preto, pretože jeho náročnosť bola vhodná pre naše schopnosti, z čoho sme predpokladali, že nadobudneme cenné praktické vedomosti.
  
'''Zoznam komponenotv'''
 
* ..
 
* ..
 
* ..
 
  
'''Použité zdroje a software'''
+
__TOC__
 +
 
 +
===Zoznam komponenotv===
 +
* Arduino UNO
 +
* Bluetooth modul HC-05
 +
* L238n Motor Driver modul
 +
* Arduino UNO Screw Shield V3
 +
* MPU6050 6 osí MEMS gyroskop + akcelerometer
 +
* LiPol batéria
 +
* Motory, kolesá a šróby [Sem pridat link na motory]
 +
* Prepojovacie káble (Počet viď. schéma zapojenia)
 +
* Dištančné stĺpiky matica x matica [sem napíš dĺžku krátkych dištančných stĺpikov] a matica x šrób [sem napíš dĺžku dlhých dištančných stĺpikov]
 +
* Skrutky 3x10 28ks 3x5 4ks (na pripevnie motorv na rámiky)
 +
* Lepiaca páska (izolačná a obojstranná)
 +
* Náradie (šrobováky, imbusové klúče)
 +
 
 +
===Použité zdroje a software===
  
 
* [https://www.vim.org/ Vim]
 
* [https://www.vim.org/ Vim]
Riadok 27: Riadok 39:
 
* [https://github.com/piliwilliam0306/MPU6050_calibration/blob/master/MPU6050_calibration.ino Kalibrácia MPU6050]
 
* [https://github.com/piliwilliam0306/MPU6050_calibration/blob/master/MPU6050_calibration.ino Kalibrácia MPU6050]
  
__TOC__
 
  
 
== Analýza ==
 
== Analýza ==
Riadok 42: Riadok 53:
 
== Popis riešenia ==
 
== Popis riešenia ==
  
=== Návrh súčiastok ===
+
=== Návrh častí robota ===
 
 
====Podvozok (spodný)====
 
 
 
'''Návrh'''
 
 
 
Podvozok bol navrhnutý v programe [https://www.qcad.org/en/ qcad]. Na tomto podvozku sa nachádzajú dierky na priskrutkovanie držiakov motorov. K tejto časti podvozku je tiež prichytená batéria. Taktiež sa na tomto podvozku nachádajú dierky na priskrutkovanie dištančných stĺikov a rovanké dierky slúžia aj na priskrutkovanie nárazníkov.
 
 
 
[[Súbor:Dtv2019_sbr_podvozok_spodny_sopisom.png|400px]]
 
  
'''Materiál'''
+
==== Rezanie lasérom ====
  
Akryl
+
Nasledujúce časti robota boli vyrezané lasérom. Použitý materiál bol akryl.
  
'''Realizácia'''
+
'''Podvozok (spodný)'''
  
Tu bude obrázok podvozku (spodnej časti)
+
Podvozok bol navrhnutý v programe [https://www.qcad.org/en/ qcad]. Na tomto podvozku sa nachádzajú dierky na priskrutkovanie držiakov motorov. K tejto časti podvozku je tiež prichytená batéria. Taktiež sa na tomto podvozku nachádajú dierky na priskrutkovanie dištančných stĺikov a rovanké dierky slúžia aj na priskrutkovanie nárazníkov. Podvozok bol vyrezaný lasérom z platne akrylu.
  
'''Súbory'''
+
[[Súbor:Dtv2019_sbr_podvozok_spodny_sopisom.png|x250px|Návrh spodnej časti podvozku v programe qcad]] Tu bude obrázok podvozku (spodnej časti)
  
 
[[Médiá:dtv2019_sbr_podvozok_spodny_subor_na_rezanie.pdf]]
 
[[Médiá:dtv2019_sbr_podvozok_spodny_subor_na_rezanie.pdf]]
Riadok 66: Riadok 69:
 
[[Médiá:dtv2019_sbr_podvozok_spodny_subor_cad.dxf]]
 
[[Médiá:dtv2019_sbr_podvozok_spodny_subor_cad.dxf]]
  
====Podvozok (vrchný)====
+
'''Podvozok (vrchný)'''
 
 
'''Návrh'''
 
  
 
Nákres bol vyhotovený v programe qcad. Na podvozku sa nachádzajú dierky pre priskrutkovanie modulu na ovládanie motorov L298n a dierky pre priskrutkovanie vývojovej dosky Arduino UNO. Taktiež sa tu nachádzajú dierky pre dištančné stĺpiky, spájajúce tento podvozok so spodným podvozkom a hlavou robota.
 
Nákres bol vyhotovený v programe qcad. Na podvozku sa nachádzajú dierky pre priskrutkovanie modulu na ovládanie motorov L298n a dierky pre priskrutkovanie vývojovej dosky Arduino UNO. Taktiež sa tu nachádzajú dierky pre dištančné stĺpiky, spájajúce tento podvozok so spodným podvozkom a hlavou robota.
  
[[Súbor:Dtv2019_sbr_podvozok_vrchny_sopisom.png|400px]]
+
[[Súbor:Dtv2019_sbr_podvozok_vrchny_sopisom.png|x250px|Návrh vrchnej časti podvozku v programe qcad]] Tu bude obrázok podvozku (vrchnej časti).
 
 
'''Materiál'''
 
 
 
Akryl
 
 
 
'''Realizácia'''
 
 
 
Tu bude obrázok podvozku (vrchnej časti).
 
 
 
'''Súbory'''
 
  
 
[[Médiá:dtv2019_sbr_podvozok_vrchny_subor_na_rezanie.pdf]]
 
[[Médiá:dtv2019_sbr_podvozok_vrchny_subor_na_rezanie.pdf]]
Riadok 88: Riadok 79:
 
[[Médiá:dtv2019_sbr_podvozok_vrchny_subor_cad.dxf]]
 
[[Médiá:dtv2019_sbr_podvozok_vrchny_subor_cad.dxf]]
  
====Senzorová lišta====
+
'''Senzorová lišta'''
 
 
'''Návrh'''
 
  
 
Návrh bol vyhotovený v programe qcad. Táto lišta bude pripevnená na Screw Shield v.3 a slúži ako miesto prilepenia bluetooth modulu HC-05 a ako miesto priskrutkovania MPU6050 gyroskopu.
 
Návrh bol vyhotovený v programe qcad. Táto lišta bude pripevnená na Screw Shield v.3 a slúži ako miesto prilepenia bluetooth modulu HC-05 a ako miesto priskrutkovania MPU6050 gyroskopu.
  
[[Súbor:Dtv2019_sbr_senzorova_lista_sopisom.png|400px]]
+
[[Súbor:Dtv2019_sbr_senzorova_lista_sopisom.png|400px|Návrh senzorovej lišty v programe qcad]] Tu bude obrázok senzorovej lišty.
 
 
'''Materiál'''
 
 
 
Akryl
 
 
 
'''Realizácia'''
 
 
 
Tu bude obrázok senzorovej lišty.
 
 
 
'''Súbory'''
 
  
 
[[Médiá:dtv2019_sbr_senzorova_lista_subor_na_rezanie.pdf]]
 
[[Médiá:dtv2019_sbr_senzorova_lista_subor_na_rezanie.pdf]]
Riadok 110: Riadok 89:
 
[[Médiá:dtv2019_sbr_senzorova_lista_subor_cad.dxf]]
 
[[Médiá:dtv2019_sbr_senzorova_lista_subor_cad.dxf]]
  
====Nárazníky====
+
'''Nárazníky'''
 
 
'''Návrh'''
 
  
 
Nárazníky sú taktiež navrhnuté v programe qcad. Nárazníky sú priskrutkované k spodnému podvozku a slúžia na zastavenia pádu robota. Zabezpečujú, že sa pri páde robota nepoškodia časti elektorniky.  
 
Nárazníky sú taktiež navrhnuté v programe qcad. Nárazníky sú priskrutkované k spodnému podvozku a slúžia na zastavenia pádu robota. Zabezpečujú, že sa pri páde robota nepoškodia časti elektorniky.  
  
[[Súbor:Dtv2019_sbr_narazniky_sopisom.png|400px]]
+
[[Súbor:Dtv2019_sbr_narazniky_sopisom.png|x250px|Návrh nárazníkov programe qcad]] Tu bude obrázok nárazníkov.
 
 
'''Materiál'''
 
 
 
Akryl
 
 
 
'''Realizácia'''
 
 
 
Tu bude obrázok nárazníkov.
 
 
 
'''Súbory'''
 
  
 
[[Médiá:dtv2019_sbr_narazniky_subor_na_rezanie.pdf]]
 
[[Médiá:dtv2019_sbr_narazniky_subor_na_rezanie.pdf]]
Riadok 132: Riadok 99:
 
[[Médiá:dtv2019_sbr_narazniky_subor_cad.dxf]]
 
[[Médiá:dtv2019_sbr_narazniky_subor_cad.dxf]]
  
====Hlava s podstavou====
+
==== 3D tlač ====
  
'''Návrh'''
+
Materiál použitý pri 3D tlači bol PLA filament.
 +
 
 +
'''Hlava s podstavou'''
  
 
3D model bol navruhný v programe tinkercad. Po dokončení bol 3D model vytlačený na 3D tlačiarni Prusa.
 
3D model bol navruhný v programe tinkercad. Po dokončení bol 3D model vytlačený na 3D tlačiarni Prusa.
  
Tu bude obrázok návrhu v tinkercad-e.
+
Tu bude obrázok návrhu v tinkercad-e. Tu bude obrázok Hlavy s podstavou.
 
 
'''Materiál'''
 
 
 
PLA filament
 
 
 
'''Realizácia'''
 
 
 
Tu bude obrázok Hlavy s podstavou.
 
  
'''Súbory'''
+
Tu bude súbor 3D-modelu.
  
====Páska cez oko====
+
==== Rezanie na plotry ====
  
'''Návrh'''
+
'''Páska cez oko'''
  
 
Páska robota je prilepená na hlavu robota.
 
Páska robota je prilepená na hlavu robota.
  
[[Súbor:Dtv2019_sbr_paskacezoko.png|400px]]
+
[[Súbor:Dtv2019_sbr_paskacezoko.png|x250px|Návrh pásky cez oko v programe Inkscape]] Tu bude obrázok pásky cez oko.
 
 
'''Materiál'''
 
 
 
Vinyl.
 
 
 
'''Realizácia'''
 
 
 
Tu bude obrázok pásky cez oko.
 
 
 
'''Súbory'''
 
  
 
[[Médiá:dtv2019_sbr_paskacezoko_inkscape.svg]]
 
[[Médiá:dtv2019_sbr_paskacezoko_inkscape.svg]]
Riadok 231: Riadok 182:
 
===Zapojenie elektronických častí===
 
===Zapojenie elektronických častí===
  
Sem príde obrázok schémy zapojenia. A stručný opis častí.
+
Sem príde obrázok schémy zapojenia a opis. A opis elektroniky.
 +
 
 +
Arduino UNO
 +
 
 +
Vývojová doska Arduino UNO. Zodpovedá za riadenie motorov a vykonávanie príkazov poslaných Bluetooth kanálom.
 +
 
 +
Tu je obrázok Arduino UNO.
 +
 
 +
L298n
 +
 
 +
Ovládač motorv. Sem napísať čo robí.
 +
 
 +
Tu je obrázok L298n motor driver.
 +
 
 +
HC-05
 +
 
 +
Bluetooth komunikačný modul. Umožňuje komunikovať s Arduino UNO vývojovou doskou cez Bluetooth protokol.
 +
 
 +
MPU6050
 +
 
 +
Gyroskop a akcelerometer. Slúži ako senzor náklonu.
 +
 
 +
Tu je obrázok MPU6050.
 +
 
 +
Modul RGB LED diódy
 +
 
 +
RGB led dióda umiestnená v hlave robota.
 +
 
 +
Modul Pushbutton
 +
 
 +
Tlačidlo slúžiace na vypnutie a zapnutie PWM signálu do ovládača motorov.
 +
 
 +
Tu obrázok tlačidla.
 +
 
 +
Screw shield v3
 +
 
 +
Rozšírenie vývodov vývojovej dosky arduino UNO.
 +
 
 +
Tu obrázok screw shield.
 +
 
  
 
===Kalibrácia MPU6050 gyroskopu a akcelerometra a čítanie dát zo senzoru===
 
===Kalibrácia MPU6050 gyroskopu a akcelerometra a čítanie dát zo senzoru===
Riadok 237: Riadok 227:
 
Na čítanie dát zo senzoru bola použitá knižnica [https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050 MPU6050], ktorá vyžaduje inštaláciu knižnice [link na knižnicu i2cdev]. Konkrétne sme ako šablónu využili súbor [https://github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/examples/MPU6050_DMP6/MPU6050_DMP6.ino MPU6050_DMP6.ino]. Pred čítaním dát sa vytvorí globálny objekt mpu, ktorý sa vo funckií setup inicializuje.
 
Na čítanie dát zo senzoru bola použitá knižnica [https://github.com/jrowberg/i2cdevlib/tree/master/Arduino/MPU6050 MPU6050], ktorá vyžaduje inštaláciu knižnice [link na knižnicu i2cdev]. Konkrétne sme ako šablónu využili súbor [https://github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/examples/MPU6050_DMP6/MPU6050_DMP6.ino MPU6050_DMP6.ino]. Pred čítaním dát sa vytvorí globálny objekt mpu, ktorý sa vo funckií setup inicializuje.
  
[[Súbor:Dtv2019_sbr_MPU6050_setup.png|400px]]
+
[[Súbor:Dtv2019_sbr_MPU6050_setup.png|x400px]]
  
 
Čítanie dát zo senzoru prebieha vo funkcií loop.
 
Čítanie dát zo senzoru prebieha vo funkcií loop.
  
[[Súbor:Dtv2019_sbr_MPU6050_citanie_dat.png|400px]]
+
[[Súbor:Dtv2019_sbr_MPU6050_citanie_dat.png|x400px]]
  
Kalibrácia (určenie offestov) bola vykonaná pomocou skriptu, ktorý je možné nájsť [https://github.com/piliwilliam0306/MPU6050_calibration/blob/master/MPU6050_calibration.ino tu]. Tento kalibračný skript si vyžaduje inštaláciu predchádzajúcej knižnice na čítanie dát. Pred spustením kalibrácie je robot umiestnený tak, aby boli podvozky vo vodorovnej polohe. Po ukončení skriptu sa cez sériový port vypíšu offesty. Ďalšie detaily sú opísané na Github stránke.
+
Kalibrácia (určenie offestov) bola vykonaná pomocou skriptu, ktorý je možné nájsť [https://github.com/piliwilliam0306/MPU6050_calibration/blob/master/MPU6050_calibration.ino tu]. Tento kalibračný skript si vyžaduje inštaláciu predchádzajúcej knižnice na čítanie dát. Pred spustením kalibrácie je robot umiestnený tak, aby boli podvozky vo vodorovnej polohe. Po ukončení skriptu sa cez sériový port vypíšu offesty. Offsety sa potom použijú pri nastavení mpu objektu vo funkcii setup.  
  
 
===Komunikácia Arduino UNO cez bluetooth modul HC-05===
 
===Komunikácia Arduino UNO cez bluetooth modul HC-05===
Riadok 249: Riadok 239:
 
V našom prípade ide len o jednosmernú komunikáciu z Android aplikácie cez bluetooth modol do vývojovej dosky Arduino UNO. Pri danom zapojení je monžné dáta z modulu HC-05 čítať ako sériovú linku pomocou metód Serial.read(). Zisťovať prítomnosť neprečítaťných  dát je možné pomocou metódy Serial.available().  
 
V našom prípade ide len o jednosmernú komunikáciu z Android aplikácie cez bluetooth modol do vývojovej dosky Arduino UNO. Pri danom zapojení je monžné dáta z modulu HC-05 čítať ako sériovú linku pomocou metód Serial.read(). Zisťovať prítomnosť neprečítaťných  dát je možné pomocou metódy Serial.available().  
  
[[Súbor:Dtv2019_sbr_HC05_citanie_dat.png|400px]]
+
[[Súbor:Dtv2019_sbr_HC05_citanie_dat.png|x400px]]
  
 
===Definícia kominukačného prtokolu medzi android aplikáciou a vývojovou doskou Arduino UNO===
 
===Definícia kominukačného prtokolu medzi android aplikáciou a vývojovou doskou Arduino UNO===
Riadok 255: Riadok 245:
 
K akciám, ktoré môžu byť vykonávané cez aplikáciu, sme priradili číselné znaky a znaky z abecedy (bajty). Každá operáciu má priradený iný znak, ktorý sa pri stlačení tlačidla pošle cez bluetooth pripojenie do vývojovej dosky. Vývojová doska následne túto hodnotu prečíta a rozhodnote akú operáciu vykonať.
 
K akciám, ktoré môžu byť vykonávané cez aplikáciu, sme priradili číselné znaky a znaky z abecedy (bajty). Každá operáciu má priradený iný znak, ktorý sa pri stlačení tlačidla pošle cez bluetooth pripojenie do vývojovej dosky. Vývojová doska následne túto hodnotu prečíta a rozhodnote akú operáciu vykonať.
  
[[Súbor:Dtv2019_sbr_HC05_protokol.png|400px]]
+
[[Súbor:Dtv2019_sbr_HC05_protokol.png|x400px]]
  
 
===Vývoj android aplikácie===
 
===Vývoj android aplikácie===
Riadok 267: Riadok 257:
 
Prevažná časť projektu bola napísaná v editore [https://www.vim.org/ Vim]. Kompilácia a nahrávanie programu do vývojovej dosky prebiehaly pomocou [https://www.arduino.cc/en/Main/Software Arduino IDE].
 
Prevažná časť projektu bola napísaná v editore [https://www.vim.org/ Vim]. Kompilácia a nahrávanie programu do vývojovej dosky prebiehaly pomocou [https://www.arduino.cc/en/Main/Software Arduino IDE].
  
Na vyvažovanie robota boli použité PID regulátory. Jeden regulátor určuje akčné zásahy pripojené do motorov pri náklone robota dopredu a druhý pri náklone robota dozadu. Parametre regulátorov sú nastavované vyvynutou aplikáciu, keďže tento spôsob natavovania umožňuje zmenu parametrov bez potreby kompilácie a nahratia kódu do vývojovej dosky.  
+
Na vyvažovanie robota boli použité PID regulátory. Prvý regulátor určuje akčné zásahy do motorov pri náklone robota dopredu a druhý pri náklone robota dozadu. Parametre regulátorov sú nastavované vyvynutou aplikáciu, keďže tento spôsob natavovania umožňuje zmenu parametrov bez potreby kompilácie a nahratia kódu do vývojovej dosky.  
  
[[Súbor:Dtv2019_sbr_PID_vypocet_zasahu.png|400px]]
+
[[Súbor:Dtv2019_sbr_PID_vypocet_zasahu.png|x400px]]
  
 
===Zdrojové súbory===
 
===Zdrojové súbory===

Verzia zo dňa a času 17:50, 8. jún 2019

Autor: Eva Štalmachová a Denis Vasko
Študijný odbor: Robotika 3. Bc. (2019)

Opis projektu

Cieľom projektu je zostrojenie dvojkolesového robota typu Segway, ktorý udržuje rovnováhu.

Projekt sme si zvolili preto, pretože jeho náročnosť bola vhodná pre naše schopnosti, z čoho sme predpokladali, že nadobudneme cenné praktické vedomosti.


Zoznam komponenotv

  • Arduino UNO
  • Bluetooth modul HC-05
  • L238n Motor Driver modul
  • Arduino UNO Screw Shield V3
  • MPU6050 6 osí MEMS gyroskop + akcelerometer
  • LiPol batéria
  • Motory, kolesá a šróby [Sem pridat link na motory]
  • Prepojovacie káble (Počet viď. schéma zapojenia)
  • Dištančné stĺpiky matica x matica [sem napíš dĺžku krátkych dištančných stĺpikov] a matica x šrób [sem napíš dĺžku dlhých dištančných stĺpikov]
  • Skrutky 3x10 28ks 3x5 4ks (na pripevnie motorv na rámiky)
  • Lepiaca páska (izolačná a obojstranná)
  • Náradie (šrobováky, imbusové klúče)

Použité zdroje a software


Analýza

Definované časti úlohy

  • Vykonať montáž súčiastok a zapojiť elektronické časti.
  • Kalibrácia MPU6050 gyroskopu a akcelerometra a čítanie dát zo senzoru.
  • Zabezpečiť komunikáciu vývojovej dosky Arduino UNO cez bluetooth modul HC-05.
  • Definovať komunikačný protokol medzi android aplikáciou a vývojovou doskou Arduino UNO.
  • Vývoj android aplikácie.
  • Vývoj algoritmu, ktorý zabezpečí taký akčný zasah pre motory, že robot zostatne vo vyváženej polohe.

Popis riešenia

Návrh častí robota

Rezanie lasérom

Nasledujúce časti robota boli vyrezané lasérom. Použitý materiál bol akryl.

Podvozok (spodný)

Podvozok bol navrhnutý v programe qcad. Na tomto podvozku sa nachádzajú dierky na priskrutkovanie držiakov motorov. K tejto časti podvozku je tiež prichytená batéria. Taktiež sa na tomto podvozku nachádajú dierky na priskrutkovanie dištančných stĺikov a rovanké dierky slúžia aj na priskrutkovanie nárazníkov. Podvozok bol vyrezaný lasérom z platne akrylu.

Návrh spodnej časti podvozku v programe qcad Tu bude obrázok podvozku (spodnej časti)

Médiá:dtv2019_sbr_podvozok_spodny_subor_na_rezanie.pdf

Médiá:dtv2019_sbr_podvozok_spodny_subor_cad.dxf

Podvozok (vrchný)

Nákres bol vyhotovený v programe qcad. Na podvozku sa nachádzajú dierky pre priskrutkovanie modulu na ovládanie motorov L298n a dierky pre priskrutkovanie vývojovej dosky Arduino UNO. Taktiež sa tu nachádzajú dierky pre dištančné stĺpiky, spájajúce tento podvozok so spodným podvozkom a hlavou robota.

Návrh vrchnej časti podvozku v programe qcad Tu bude obrázok podvozku (vrchnej časti).

Médiá:dtv2019_sbr_podvozok_vrchny_subor_na_rezanie.pdf

Médiá:dtv2019_sbr_podvozok_vrchny_subor_cad.dxf

Senzorová lišta

Návrh bol vyhotovený v programe qcad. Táto lišta bude pripevnená na Screw Shield v.3 a slúži ako miesto prilepenia bluetooth modulu HC-05 a ako miesto priskrutkovania MPU6050 gyroskopu.

Návrh senzorovej lišty v programe qcad Tu bude obrázok senzorovej lišty.

Médiá:dtv2019_sbr_senzorova_lista_subor_na_rezanie.pdf

Médiá:dtv2019_sbr_senzorova_lista_subor_cad.dxf

Nárazníky

Nárazníky sú taktiež navrhnuté v programe qcad. Nárazníky sú priskrutkované k spodnému podvozku a slúžia na zastavenia pádu robota. Zabezpečujú, že sa pri páde robota nepoškodia časti elektorniky.

Návrh nárazníkov programe qcad Tu bude obrázok nárazníkov.

Médiá:dtv2019_sbr_narazniky_subor_na_rezanie.pdf

Médiá:dtv2019_sbr_narazniky_subor_cad.dxf

3D tlač

Materiál použitý pri 3D tlači bol PLA filament.

Hlava s podstavou

3D model bol navruhný v programe tinkercad. Po dokončení bol 3D model vytlačený na 3D tlačiarni Prusa.

Tu bude obrázok návrhu v tinkercad-e. Tu bude obrázok Hlavy s podstavou.

Tu bude súbor 3D-modelu.

Rezanie na plotry

Páska cez oko

Páska robota je prilepená na hlavu robota.

Návrh pásky cez oko v programe Inkscape Tu bude obrázok pásky cez oko.

Médiá:dtv2019_sbr_paskacezoko_inkscape.svg


Postup montáže súčiastok

Priskrutkovanie rámov motorov k spodnej časti podvozku.

Obrázok priskrutkovaných rámov motorov.

Priskrutkovanie motorov do rámov pre motory.

Obrázok priskrutkovaných motorov.

Priskrutkovanie kolies k hriadelom motorov.

Obrázok priskrutkovaných kolies.

Priskrutkovanie malých dištančných stĺpikov k spodnej časti podvozku zhora a zároven aj pripenenie nárazníkov z dolnej časti podvozku.

Obrázok priskrutkovaných dištančncýh stĺpikov.

Uloženie batárie na spodný podvozok a jej pripevnenie.

Obrázok uloženia batérie.

Priskrutkovanie vývojovej dosky Arduino UNO a ovládača motorov L298n k vrchnému podvozku.

Obrázok priskrutkovanej vývojovej dosky a ovládača motorov.

Priskruktovanie vrchnej časti podvozku na krátke dištančné stĺpiky dlými stĺpikmi.

Obrázok priskrutkovanej vrchnej časti podvozku.

Pripevnenie senzorovej lišty na Screw shield.

Obrázok pripevnenia Screw shield-u.

Zapojenie elektroniky na základe schémy zapojeina. (Okrem RGB LED diódy umiestnenej v hlave robota)

Obrázok zapojenia elektroniky.

Priskrutkovanie MPU6050 6 osého gyroskou a akcelerometra na senzorovú lištu.

Obrázok priskrutkovania MPU6050 na senzorovú lištu.

Prilepenie bluetooth modulu na senzorovú lištu.

Obrázok prilepenia bluetooth modulu na senzorovú lištu.

Prilepenie modulu RGB LED diódy do vnútra hlavy robota.

Obrázok rgb ledky v hlave robota.

Zapojenie RGB LED diódy na základe schémy zapojenia a priskrutkovanie hlavy s podstavou na vrchné dištančné stĺpiky pomocou skrutiek a matíc.

Obrázok zapojenia rgb ledky.

Prilepenie tlačidla na vyp./zap. PWM motorv na podstavu hlavy.

Obrázok tlačidla.

Zapojenie elektronických častí

Sem príde obrázok schémy zapojenia a opis. A opis elektroniky.

Arduino UNO

Vývojová doska Arduino UNO. Zodpovedá za riadenie motorov a vykonávanie príkazov poslaných Bluetooth kanálom.

Tu je obrázok Arduino UNO.

L298n

Ovládač motorv. Sem napísať čo robí.

Tu je obrázok L298n motor driver.

HC-05

Bluetooth komunikačný modul. Umožňuje komunikovať s Arduino UNO vývojovou doskou cez Bluetooth protokol.

MPU6050

Gyroskop a akcelerometer. Slúži ako senzor náklonu.

Tu je obrázok MPU6050.

Modul RGB LED diódy

RGB led dióda umiestnená v hlave robota.

Modul Pushbutton

Tlačidlo slúžiace na vypnutie a zapnutie PWM signálu do ovládača motorov.

Tu obrázok tlačidla.

Screw shield v3

Rozšírenie vývodov vývojovej dosky arduino UNO.

Tu obrázok screw shield.


Kalibrácia MPU6050 gyroskopu a akcelerometra a čítanie dát zo senzoru

Na čítanie dát zo senzoru bola použitá knižnica MPU6050, ktorá vyžaduje inštaláciu knižnice [link na knižnicu i2cdev]. Konkrétne sme ako šablónu využili súbor MPU6050_DMP6.ino. Pred čítaním dát sa vytvorí globálny objekt mpu, ktorý sa vo funckií setup inicializuje.

Dtv2019 sbr MPU6050 setup.png

Čítanie dát zo senzoru prebieha vo funkcií loop.

Dtv2019 sbr MPU6050 citanie dat.png

Kalibrácia (určenie offestov) bola vykonaná pomocou skriptu, ktorý je možné nájsť tu. Tento kalibračný skript si vyžaduje inštaláciu predchádzajúcej knižnice na čítanie dát. Pred spustením kalibrácie je robot umiestnený tak, aby boli podvozky vo vodorovnej polohe. Po ukončení skriptu sa cez sériový port vypíšu offesty. Offsety sa potom použijú pri nastavení mpu objektu vo funkcii setup.

Komunikácia Arduino UNO cez bluetooth modul HC-05

V našom prípade ide len o jednosmernú komunikáciu z Android aplikácie cez bluetooth modol do vývojovej dosky Arduino UNO. Pri danom zapojení je monžné dáta z modulu HC-05 čítať ako sériovú linku pomocou metód Serial.read(). Zisťovať prítomnosť neprečítaťných dát je možné pomocou metódy Serial.available().

Dtv2019 sbr HC05 citanie dat.png

Definícia kominukačného prtokolu medzi android aplikáciou a vývojovou doskou Arduino UNO

K akciám, ktoré môžu byť vykonávané cez aplikáciu, sme priradili číselné znaky a znaky z abecedy (bajty). Každá operáciu má priradený iný znak, ktorý sa pri stlačení tlačidla pošle cez bluetooth pripojenie do vývojovej dosky. Vývojová doska následne túto hodnotu prečíta a rozhodnote akú operáciu vykonať.

Dtv2019 sbr HC05 protokol.png

Vývoj android aplikácie

Aplikácia bola vyvynutá pomocou softwéru Android Studio.

Sem pridať postup vytvorenia aplikácie.

Vývoj vyvažovacieho algoritmu

Prevažná časť projektu bola napísaná v editore Vim. Kompilácia a nahrávanie programu do vývojovej dosky prebiehaly pomocou Arduino IDE.

Na vyvažovanie robota boli použité PID regulátory. Prvý regulátor určuje akčné zásahy do motorov pri náklone robota dopredu a druhý pri náklone robota dozadu. Parametre regulátorov sú nastavované vyvynutou aplikáciu, keďže tento spôsob natavovania umožňuje zmenu parametrov bez potreby kompilácie a nahratia kódu do vývojovej dosky.

Dtv2019 sbr PID vypocet zasahu.png

Zdrojové súbory

Projekt Arduino IDE: Médiá:dtv2019_sbr_arduino_projekt.zip

Projekt aplikácie v Android Studio: Médiá:dtv2019_sbr_android_projekt.zip

Výsledok

Gifko fungujúceho robota so svietiacou hlavou.

Nezabudnite zdokumentovať výsledok vašej práce. Určite sem patria fotografie, video a zhodnotenie ako ste spokojní s výsledkom,

Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.