Operácie

Robotické rameno: Rozdiel medzi revíziami

Z SensorWiki

(Opis projektu)
(Výsledok)
 
(40 medziľahlých úprav od 2 ďalších používateľov nie je zobrazených)
Riadok 50: Riadok 50:
 
* Implementácia algoritmu riadenia na vybraný mikrokontróler
 
* Implementácia algoritmu riadenia na vybraný mikrokontróler
  
[http://www.arduino.cc]
 
  
  
[http://www.example.com link title]
+
'''Použité zdroje:'''
  
[[Súbor:MojObrazok2.jpg|center|300px]]
+
* Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
 +
[http://www.arduino.cc arduino.cc]
  
[[Médiá:MojZdrojak.c]]
+
[https://www.farnell.com/datasheets/1682209.pdf datasheet Arduino UNO]
  
 +
[https://www.sainsmart.com/products/sensor-shield-v5-bluetooth-analog-input Arduino Sensor Shield]
  
'''Použité zdroje:'''
+
[http://www.es.co.th/schemetic/pdf/et-servo-s3003.pdf Futaba Servo]
 +
 
 +
[http://akizukidenshi.com/download/ds/towerpro/SG90.pdf 9g Servo]
 +
 
 +
[https://www.amazon.com/Tactile-Switch-Momentary-Arduino-6x6x5mm/dp/B06XRH6GNX Tlacitko]
  
* Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.
+
[https://www.aliexpress.com/item/B10K-Single-Linear-Pot-Potentiometer-10K-20mm-Shaft-with-Nuts-Shims/1875869527.html Potenciometer 10K linearny]
  
 
__TOC__
 
__TOC__
Riadok 68: Riadok 73:
 
== Analýza ==
 
== Analýza ==
  
V tejto časti popíšete ako idete daný problém riešiť. Uvediete sem aj všetky potrebné technické údaje,  
+
Konštrukcia robotického ramena musela byť navrhnutá tak, aby rameno bolo schopné jednotlivých pohybov pomocou servo motorov.
ktoré sú potrebné na úspešné vyriešenie projektu. Napríklad:
+
Do jednotlivých častí tohto ramena museli byť namodelované otvory na uchytenie servo motorov.
 +
Pri rezaní laserovým lúčom bola vytvorená krabica z toho dôvodu, aby som mal kde projekt uchytiť. Zo spodu krabice je uchytené
 +
Futaba Servo pomocou skrutiek. Na vrchu krabice sa potom nachádza práve robotické rameno a tiež tu je aj uchetená doska
 +
Arduino UNO, Breadbord a aj batérie, ktoré slúžia na napájanie dosky Arduino UNO.
 +
Na vykonávanie pohybov robota boli vybraté servo motory, ako bolo už spomenuté. Použil som jedno silnejšie servo a dve slabšie.
 +
Silnejšie servo je umiestnené zo spodu krabice, na ktorom vlastne drží potom celá konštrukcia ramena. Ostatné slabšie 9g servá
 +
sa nachádzajú v kĺboch ramena.
 +
Potenciometer, ktorý sa tu nachádza slúži na reguláciu rýchlosti otáčania sa servo motorov.
 +
220 ohmové odpory sú použité ako ochranné odpory pre jednotlivé LED diódy.
 +
Tlačidlá, ktoré sa tu nachádzajú plnia úlohy softvérové alebo manuálneho riadenia ramena. Ďalšie tlačidlá slúžia na manuálne
 +
riadenie jednotlivých pohybov. Na tlačidlá je privedené 5V napájanie a cez 10k ohmové pull down rezistory sa pripájajú na zem.
 +
 
 +
== Popis riešenia ==
 +
 
  
* popis komunikačnej zbernice (i2c, 1-wire, RS-232 a pod.)
 
* obrázok zapojenia vývodov použitej súčiastky
 
* odkaz na katalógový list
 
* priebehy dôležitých signálov
 
* este jedna polozka
 
  
 +
'''Vytvorenie 3D modelu robotického ramena v programe Sketch Up'''
 +
[[Súbor:Sketchup3D.jpg|center|500px]]
  
== Popis riešenia ==
 
  
Sem opíšete ako konkrétne ste problém vyriešili. Začnite popisom pripojenia k procesoru
+
'''Vytvorenie krabice'''
(nezabudnite na schému zapojenia!) a zdôraznite ktoré jeho periférie ste pritom využili.  
+
Krabica pozostáva z piatich obdĺžnikov, ktoré boli rezané laserom:
 +
* 1x 25x15cm
 +
* 2x 25x6cm
 +
* 2x 14.5x6cm
  
'''Schéma zapojenia snímača'''
+
'''Schéma zapojenia súčiastok'''
[[Súbor:Zapojenie.png]]
 
  
[[Súbor:Example.jpg]]
+
[[Súbor:Schemazapojeniarobotrameno.jpg|center|1000px]]
  
Pozn.: Názov obrázku musí byť jedinečný, uvedomte si, že Obr1.jpg už pred vami skúsilo
+
Piny vývojovej dosky Arduino UNO, ktoré boli použité:
nahrať už aspoň 10 študentov.
+
* Digital pin D2 - tlačítko -- stlačením tlačítka sa robotické rameno otáča v smere hodinových ručičiek
 +
* Digital pin D3 - tlačítko -- stlačením tlačítka sa robotické rameno otáča proti smeru hodinových ručičiek
 +
* Digital pin D4 - tlačítko -- stlačením tlačítka sa stredná časť pohybuje smerom dolu
 +
* Digital pin D5 - tlačítko -- stlačením tlačítka sa stredná časť pohybuje smerom hore
 +
* Digital pin D6 - tlačítko -- stlačením tlačítka sa vrchná časť pohybuje smerom dolu
 +
* Digital pin D7 - tlačítko -- stlačením tlačítka sa vrchná časť pohybuje smerom hore
 +
* Digital pin D12 - tlačítko -- stlačením tlačítka sa robot prepne do manuálneho režimu, kde sa pomocou tlačidiel D2-D7 vykonávajú pohyby jednotlivými časťami
 +
* Digital pin D13 - tlačítko -- stlačením tlačítka sa vykonáva softvérové ovládanie robotického ramena
 +
* Digital pin D9 - servo, ktoré je umiestnené zo spodu robota, ktoré vykonáva jeho rotáciu
 +
* Digital pin D10 - servo, ktoré spája prvú a druhú časť
 +
* Digital pin D11 - servo, ktoré spája druhú a tretiu časť
 +
* Digital pin D8 - LED dióda červená
 +
* Analog pin A1 - LED dióda zelená
 +
* Analog pin A0 - potenciometer, ktorým sa nastavuje rýchlosť otáčania servo motorov
  
[[Súbor:MojObrazok.jpg|center|250px]]
 
  
 
=== Algoritmus a program ===
 
=== Algoritmus a program ===
 +
Algoritmus riadenia je naprogramovaný vo vývojovom prostredí Arduino IDE.
 +
Algoritmus spočíva v ovládaní jednotlivých servo motorov pomocou tlačítok, ktoré sú umiestnené na Bread Borde. Ak je stlačené tlačítko, tak rameno vykonáva pohyb jednotlivými časťami. Pri programovaní bola použitá pomocná knižnica Servo.h, ktorú som použil na ovládanie servo motorov.
 +
 +
[[Súbor:Cislovanietlacidiel.jpg|center|250px]]
 +
 +
Tlačidlo S1 - stlačením sa vykonáva algoritmus pre softvérové ovládanie servomotorov
 +
 +
Tlačidlo S2 - aktivuje sa manuálny režim ovládania, ktoré bude realizované pomocou tlačidiel S3-S8
 +
 +
Tlačidlo S3 - stlačením sa vykonáva pohyb vrchnej časti ramena vrchného serva smerom hore
 +
 +
Tlačidlo S4 - stlačením sa vykonáva pohyb vrchnej časti ramena pomocou vrchného serva smerom dole
 +
 +
Tlačidlo S5 - stlačením sa vykonáva pohyb strednej časti ramena pomocou stredného serva smerom hore
 +
 +
Tlačidlo S6 - stlačením sa vykonáva pohyb strednej časti ramena pomocou stredného serva smerom dole
  
Uveďte stručný popis algoritmu, v akom jazyku a verzii vývojového prostredia ste ho vytvorili.
+
Tlačidlo S7 - stlačením sa vykonáva rotácia konštrukcie pomocou spodného serva v smere hodinových ručičiek
Je vhodné nakresliť aspoň hrubú štruktúru programu napríklad vo forme vývojového diagramu.
 
Rozsiahly program pre lepšiu prehľadnosť rozdeľte do viacerých súborov.
 
  
Vyberte podstatné časti zdrojového kódu, použite na to prostredie ''source'':
+
Tlačidlo S8 - stlačením sa vykonáva rotácia konštrukcie pomocou spodného serva proti smeru hodinových ručičiek
  
<source lang="c">
+
Točením potenciometra sa reguluje rýchlosť otáčania jednotlivých servo motorov.
/* A nezabudnite zdroják hojne komentovať  */
 
  
int main(void) {
+
Zelená LED dióda - indikuje dokončenie softvérovej simulácie ramena, keď sa rozsvieti, tak to znamená, že simulácia je dokončená. LED dióda svieti po dobu 1s a čaká, či užívateľ chce zmeniť režim činnosti na manuálny alebo či sa má vykonávať naďalej softvérové ovládanie. Ak zelená LED dióda svieti a stlačí sa tlačidlo S2 počas jej doby svietenia, tak vtedy sa dá prepnút do manuálneho režimu.
   
 
    printf("Hello, World!\n"); 
 
    return(0); 
 
}
 
</source>
 
  
Nezabudnite však nahrať aj kompletné zdrojové kódy vášho programu!
+
Červená LED dióda - rozsvieti sa vtedy, keď pri manuálnom ovládaní je stále držané tlačidlo a servo je mimo rozsahu svojho otáčania. Ak LED dióda svieti, tak sa nedá vykonávať pohyb v danom smere.
  
Zdrojový kód: [[Médiá:Serial.h|serial.h]] a [[Médiá:Pip.c|main.c]]
 
  
[[Médiá:MojProgram.c|program.c]]
+
Zdrojový kód:
  
 +
[[Médiá:DTV_manipulator.ino]]
  
 
=== Výsledok ===
 
=== Výsledok ===
  
Nezabudnite zdokumentovať výsledok vašej práce. Určite sem patria fotografie, video
+
S výsledkom mojej práce som spokojný, pretože sa mi to podarilo spraviť tak, ako som chcel a naučil som sa ako sa pracuje s jednotlivými technológiami ako je 3D tlač a rezanie laserom. Výsledný produkt je možné vidieť na nasledujúcej fotografii.
a zhodnotenie ako ste spokojní s výsledkom,
+
[[Súbor:fotorameno.jpg|center|500px]]
 +
VIDEO:
 +
https://www.youtube.com/watch?v=KnIM_8948MQ&feature=youtu.be
  
Kľúčové slová 'Category', ktoré sú na konci stránky nemeňte.
+
Súbory na 3D tlač: https://ulozto.sk/!7JFH8weZ5nPd/dtv-2015-skp
  
  
 
[[Category:DTV2018]]
 
[[Category:DTV2018]]

Aktuálna revízia z 13:54, 29. máj 2018

Autor: Dominik Dano
Študijný odbor: Robotika a kybernetika 3. Bc. (2018)

Opis projektu

Čo?

Robotické rameno, ktoré je schopné rotácie a tiež sa nim dajú dosiahnuť ďalšie dva pohyby v kĺboch.

Prečo?

Tento projekt ma napadol pri programovaní zadania na predmet Robotika, kde sme v Matlabe robili vizualizáciu pohybov trojčlánkového manipulátora a tak som sa rozhodol si pomocou 3D tlače takýto trojčlánkový manipulátor vytvoriť.

Použité technológie

  • 3D tlač
  • Laserové rezanie
  • Arduino


Návod


  • V softvéri určenom na 3D modelovanie je potrebné si vytvoriť model výrobku
  • Po vymodelovaní je potrebné daný výrobok vytlačiť na 3D tlačiarni
  • Pri tlačení produktu bolo použité percento výplne 15% a bola aj nastavená pomocná výplň "vnútra" produktu
  • Nasledovalo rezanie na laseri
  • Pomocou lasera bolo vyrezaných 5 obdĺžnikov na vytvorenie krabice pre tento projekt
  • Tieto obĺžniky mali nasledovné rozmery:
  1. 1x 25x15cm
  2. 2x 14.5x6cm
  3. 2x 25x6cm
  • Následne bolo potrebné vybrať harvér, ktorý sa použije na realizáciu projektu
  • Zoznam súčiastok:
  1. 1x Vývojová doska Arduino UNO
  2. 1x Arduino Sensor Shield
  3. 1x Bread Board
  4. 1x Potenciometer 10K lineárny
  5. 2x 9g Servo
  6. 1x Futaba S3003 Standard Servo
  7. 1x červená LED dióda
  8. 1x zelená LED dióda
  9. 2x 220 ohmové rezistory
  10. 8x 10k ohmové rezistory
  11. 8x tlačítko
  12. 2x 3.7V batérie
  • Po výbere hardvéru nasledovalo zapojenie jednotlivých súčiastok podľa schém, ktoré sa nachádzajú nižšie
  • Implementácia algoritmu riadenia na vybraný mikrokontróler


Použité zdroje:

  • Zoznam použitej literatúry, vrátane katalógových údajov (datasheet), internetových odkazov a pod.

arduino.cc

datasheet Arduino UNO

Arduino Sensor Shield

Futaba Servo

9g Servo

Tlacitko

Potenciometer 10K linearny

Analýza

Konštrukcia robotického ramena musela byť navrhnutá tak, aby rameno bolo schopné jednotlivých pohybov pomocou servo motorov. Do jednotlivých častí tohto ramena museli byť namodelované otvory na uchytenie servo motorov. Pri rezaní laserovým lúčom bola vytvorená krabica z toho dôvodu, aby som mal kde projekt uchytiť. Zo spodu krabice je uchytené Futaba Servo pomocou skrutiek. Na vrchu krabice sa potom nachádza práve robotické rameno a tiež tu je aj uchetená doska Arduino UNO, Breadbord a aj batérie, ktoré slúžia na napájanie dosky Arduino UNO. Na vykonávanie pohybov robota boli vybraté servo motory, ako bolo už spomenuté. Použil som jedno silnejšie servo a dve slabšie. Silnejšie servo je umiestnené zo spodu krabice, na ktorom vlastne drží potom celá konštrukcia ramena. Ostatné slabšie 9g servá sa nachádzajú v kĺboch ramena. Potenciometer, ktorý sa tu nachádza slúži na reguláciu rýchlosti otáčania sa servo motorov. 220 ohmové odpory sú použité ako ochranné odpory pre jednotlivé LED diódy. Tlačidlá, ktoré sa tu nachádzajú plnia úlohy softvérové alebo manuálneho riadenia ramena. Ďalšie tlačidlá slúžia na manuálne riadenie jednotlivých pohybov. Na tlačidlá je privedené 5V napájanie a cez 10k ohmové pull down rezistory sa pripájajú na zem.

Popis riešenia

Vytvorenie 3D modelu robotického ramena v programe Sketch Up

Sketchup3D.jpg


Vytvorenie krabice Krabica pozostáva z piatich obdĺžnikov, ktoré boli rezané laserom:

  • 1x 25x15cm
  • 2x 25x6cm
  • 2x 14.5x6cm

Schéma zapojenia súčiastok

Schemazapojeniarobotrameno.jpg

Piny vývojovej dosky Arduino UNO, ktoré boli použité:

  • Digital pin D2 - tlačítko -- stlačením tlačítka sa robotické rameno otáča v smere hodinových ručičiek
  • Digital pin D3 - tlačítko -- stlačením tlačítka sa robotické rameno otáča proti smeru hodinových ručičiek
  • Digital pin D4 - tlačítko -- stlačením tlačítka sa stredná časť pohybuje smerom dolu
  • Digital pin D5 - tlačítko -- stlačením tlačítka sa stredná časť pohybuje smerom hore
  • Digital pin D6 - tlačítko -- stlačením tlačítka sa vrchná časť pohybuje smerom dolu
  • Digital pin D7 - tlačítko -- stlačením tlačítka sa vrchná časť pohybuje smerom hore
  • Digital pin D12 - tlačítko -- stlačením tlačítka sa robot prepne do manuálneho režimu, kde sa pomocou tlačidiel D2-D7 vykonávajú pohyby jednotlivými časťami
  • Digital pin D13 - tlačítko -- stlačením tlačítka sa vykonáva softvérové ovládanie robotického ramena
  • Digital pin D9 - servo, ktoré je umiestnené zo spodu robota, ktoré vykonáva jeho rotáciu
  • Digital pin D10 - servo, ktoré spája prvú a druhú časť
  • Digital pin D11 - servo, ktoré spája druhú a tretiu časť
  • Digital pin D8 - LED dióda červená
  • Analog pin A1 - LED dióda zelená
  • Analog pin A0 - potenciometer, ktorým sa nastavuje rýchlosť otáčania servo motorov


Algoritmus a program

Algoritmus riadenia je naprogramovaný vo vývojovom prostredí Arduino IDE. Algoritmus spočíva v ovládaní jednotlivých servo motorov pomocou tlačítok, ktoré sú umiestnené na Bread Borde. Ak je stlačené tlačítko, tak rameno vykonáva pohyb jednotlivými časťami. Pri programovaní bola použitá pomocná knižnica Servo.h, ktorú som použil na ovládanie servo motorov.

Cislovanietlacidiel.jpg

Tlačidlo S1 - stlačením sa vykonáva algoritmus pre softvérové ovládanie servomotorov

Tlačidlo S2 - aktivuje sa manuálny režim ovládania, ktoré bude realizované pomocou tlačidiel S3-S8

Tlačidlo S3 - stlačením sa vykonáva pohyb vrchnej časti ramena vrchného serva smerom hore

Tlačidlo S4 - stlačením sa vykonáva pohyb vrchnej časti ramena pomocou vrchného serva smerom dole

Tlačidlo S5 - stlačením sa vykonáva pohyb strednej časti ramena pomocou stredného serva smerom hore

Tlačidlo S6 - stlačením sa vykonáva pohyb strednej časti ramena pomocou stredného serva smerom dole

Tlačidlo S7 - stlačením sa vykonáva rotácia konštrukcie pomocou spodného serva v smere hodinových ručičiek

Tlačidlo S8 - stlačením sa vykonáva rotácia konštrukcie pomocou spodného serva proti smeru hodinových ručičiek

Točením potenciometra sa reguluje rýchlosť otáčania jednotlivých servo motorov.

Zelená LED dióda - indikuje dokončenie softvérovej simulácie ramena, keď sa rozsvieti, tak to znamená, že simulácia je dokončená. LED dióda svieti po dobu 1s a čaká, či užívateľ chce zmeniť režim činnosti na manuálny alebo či sa má vykonávať naďalej softvérové ovládanie. Ak zelená LED dióda svieti a stlačí sa tlačidlo S2 počas jej doby svietenia, tak vtedy sa dá prepnút do manuálneho režimu.

Červená LED dióda - rozsvieti sa vtedy, keď pri manuálnom ovládaní je stále držané tlačidlo a servo je mimo rozsahu svojho otáčania. Ak LED dióda svieti, tak sa nedá vykonávať pohyb v danom smere.


Zdrojový kód:

Médiá:DTV_manipulator.ino

Výsledok

S výsledkom mojej práce som spokojný, pretože sa mi to podarilo spraviť tak, ako som chcel a naučil som sa ako sa pracuje s jednotlivými technológiami ako je 3D tlač a rezanie laserom. Výsledný produkt je možné vidieť na nasledujúcej fotografii.

Fotorameno.jpg

VIDEO: https://www.youtube.com/watch?v=KnIM_8948MQ&feature=youtu.be

Súbory na 3D tlač: https://ulozto.sk/!7JFH8weZ5nPd/dtv-2015-skp