TechLab - Laboratórium budúcnosti

        • 5. DOBOT MAGICIAN - PYTHON + LINUX

        • Dobot Magician – Python + Linux – Robotické rameno

          Trvanie: 90 minút
          Vek: 12–15 rokov
          Potrebné vybavenie: Dobot Magician, gripper, RGB senzor, IR senzor, posuvný pás, notebook s Linuxom
          Software: Python 3, Dobot Python API, terminál
          Predchádzajúce znalosti: žiadne (odporúčané: základy logického myslenia)


          Čo sa dnes naučíš

          • Základné príkazy Linuxu v termináli
          • Písanie a spúšťanie Python skriptov
          • Ovládanie Dobot ramena cez Python
          • Podprogramy (funkcie) a volanie tlačidlom
          • Podmienky reagujúce na senzory (RGB, IR)

          Ako funguje Dobot Magician – prečítaj si pred začatím

          Dobot Magician je robotické rameno s 4 stupňami voľnosti. Pohybuje sa v súradnicovom systéme X, Y, Z (milimetre od základne). Otočenie gripper-a je os R.

          Súčasti ktoré budeš používať:

          • Gripper – pneumatický uchopovač, ovládaný vzduchom
          • RGB senzor – rozoznáva farbu predmetu
          • IR senzor – detekuje prítomnosť predmetu (čierne / biele povrchy, prekážka)
          • Posuvný pás – dopravuje predmety pod rameno

          Komunikácia prebieha cez USB alebo sériový port. Python API posiela príkazy a čaká na potvrdenie.


          Krok 1 – Úvod do Linuxu (15 minút)

          Cieľ: Pohybovať sa v termináli, spustiť skript.

          Otvor terminál:

          • Klávesová skratka: Ctrl + Alt + T
          • Alebo: vyhľadaj „Terminal" v aplikáciách

          Základné príkazy:

          Príkaz Čo robí
          pwd Ukáže kde sa nachádzaš (aktuálny adresár)
          ls Vypíše súbory v aktuálnom adresári
          ls -l Vypíše súbory s detailmi
          cd nazov Vstúpi do adresára nazov
          cd .. Prejde o adresár vyššie
          mkdir techlab Vytvorí nový adresár techlab
          nano subor.py Otvorí textový editor pre súbor
          python3 subor.py Spustí Python skript
          Ctrl + C Zastaví bežiaci program

          Vyskúšaj:

          mkdir techlab
          cd techlab
          pwd
          

          Vytvor prvý Python skript:

          nano hello.py
          

          Napíš:

          print("Hello, Dobot!")
          print("Toto je moj prvy Python skript.")
          

          Ulož: Ctrl + O → Enter → Ctrl + X na zatvorenie

          Spusti:

          python3 hello.py
          

          Krok 2 – Úvod do Pythonu (10 minút)

          Cieľ: Pochopiť premenné, cykly a podmienky pred tým ako použijeme Dobot API.

          Premenné:

          meno = "Dobot"
          rychlost = 50
          print("Robot:", meno, "Rychlost:", rychlost)
          

          Podmienka:

          teplota = 25
          if teplota > 30:
              print("Horuco!")
          else:
              print("V pohode.")
          

          Cyklus:

          for i in range(5):
              print("Krok cislo:", i)
          

          Funkcia:

          def pozdrav(meno):
              print("Ahoj,", meno)
          
          pozdrav("Dobot")
          pozdrav("Robot")
          

          Vyskúšaj každý úryvok v nano editore a spusti ho.


          Krok 3 – Pripojenie Dobota a základný pohyb (15 minút)

          Cieľ: Pripojiť Dobot, presunúť rameno do bodu.

          Inštalácia knižnice (ak ešte nie je):

          pip3 install pydobot
          

          Zisti port:

          ls /dev/ttyUSB*
          

          Výsledok bude niečo ako /dev/ttyUSB0 – to je tvoj port.

          Prvý pohyb:

          from pydobot import Dobot
          
          robot = Dobot(port='/dev/ttyUSB0', verbose=False)
          
          # Presuň sa na pozíciu X=200, Y=0, Z=50, R=0
          # Pohyb do bodu (PTP = Point To Point)
          robot.move_to(200, 0, 50, 0, wait=True)
          print("Dosiel som na poziciu 1")
          
          robot.move_to(200, 100, 50, 0, wait=True)
          print("Dosiel som na poziciu 2")
          
          robot.close()
          

          ⚠️ Pred spustením: Skontroluj že rameno má voľný priestor na pohyb. Stoj bokom od ramena.

          💡 Parameter wait=True znamená že skript čaká kým sa rameno zastaví pred ďalším príkazom. Bez toho by príkazy šli za sebou bez čakania.

          Zisti aktuálnu pozíciu:

          pozicia = robot.get_pose()
          print("Aktualna pozicia:", pozicia)
          

          Toto sa hodí keď chceš zistiť súradnice bodu ručným presúvaním (učenie polohy).


          Krok 4 – Podprogramy a funkcie (15 minút)

          Cieľ: Rozdeliť pohyby do funkcií. Zavolať funkciu stlačením tlačidla na Dobote.

          Definuj funkcie pre pohyby:

          from pydobot import Dobot
          import time
          
          robot = Dobot(port='/dev/ttyUSB0', verbose=False)
          
          def domovska_pozicia():
              robot.move_to(200, 0, 80, 0, wait=True)
              print("Domovska pozicia")
          
          def zdvihni_predmet():
              robot.move_to(200, 0, 30, 0, wait=True)   # zostup k predmetu
              robot.grip(True)                            # zatvor gripper
              time.sleep(0.5)
              robot.move_to(200, 0, 80, 0, wait=True)    # zdvihni
              print("Predmet zdvihnuty")
          
          def poloz_predmet():
              robot.move_to(250, 100, 30, 0, wait=True)  # presun na miesto
              robot.grip(False)                           # otvor gripper
              time.sleep(0.5)
              robot.move_to(250, 100, 80, 0, wait=True)  # zdvihni
              print("Predmet polozeny")
          
          # Zavolaj sekvenciu
          domovska_pozicia()
          zdvihni_predmet()
          poloz_predmet()
          domovska_pozicia()
          
          robot.close()
          

          Volanie funkcie tlačidlom:

          Dobot má tlačidlo na základni. Môžeš čakať na jeho stlačenie:

          print("Stlac tlacidlo na Dobote pre start...")
          while True:
              if robot.get_queued_cmd_current_index() == 0:
                  # jednoduché čakanie - v praxi použi vstup z klávesnice
                  pass
              vstup = input("Stlac Enter pre spustenie sekvencie: ")
              zdvihni_predmet()
              poloz_predmet()
              domovska_pozicia()
          

          💡 Pre skutočné tlačidlo Dobota pozri dokumentáciu get_io_do() – závisí od verzie firmvéru.


          Krok 5 – Senzory, podmienky, triedenie (15 minút)

          Cieľ: Robot triedi predmety podľa farby (RGB senzor) alebo detekuje prítomnosť (IR senzor).

          Čítanie IR senzora:

          IR senzor vracia True/False – je predmet prítomný alebo nie.

          pritomnost = robot.get_ir_switch()
          if pritomnost:
              print("Predmet detekovany!")
              zdvihni_predmet()
          else:
              print("Nic tu nie je.")
          

          Čítanie RGB senzora:

          farba = robot.get_color()
          r = farba[0]
          g = farba[1]
          b = farba[2]
          print(f"Farba: R={r}, G={g}, B={b}")
          
          if r > 150 and g < 100 and b < 100:
              print("CERVENA - poloz na miesto A")
              robot.move_to(200, 150, 30, 0, wait=True)
          elif g > 150 and r < 100 and b < 100:
              print("ZELENA - poloz na miesto B")
              robot.move_to(200, -150, 30, 0, wait=True)
          else:
              print("Nezname - poloz na miesto C")
              robot.move_to(150, 0, 30, 0, wait=True)
          

          Triedenie v slučke s posuvným pásom:

          robot.set_conveyor_belt(speed=0.3, direction=1)  # spusti pás
          time.sleep(2)
          robot.set_conveyor_belt(speed=0, direction=1)     # zastav pás
          
          farba = robot.get_color()
          # ... triedi podľa farby ako vyššie
          

          Zhrnutie – čo si sa naučil

          Čo Príkaz / Funkcia
          Pohyb do bodu robot.move_to(x, y, z, r, wait=True)
          Gripper robot.grip(True/False)
          Aktuálna pozícia robot.get_pose()
          IR senzor robot.get_ir_switch()
          RGB senzor robot.get_color()
          Posuvný pás robot.set_conveyor_belt(speed, direction)
          Funkcia v Pythone def nazov(): ...

          Ďalší krok

          • Naprogramuj celú triedičku: pás prinesie predmet → rameno ho zdvihne → RGB rozhodne kde ho položiť
          • Skús zapísať výsledky triedenia do súboru (open("log.txt", "a"))
          • Pozri dokumentáciu pydobot pre ďalšie možnosti: github.com/luismesas/pydobot
    • Kontakty

      • Základná škola s materskou školou
      • 0915 880 931 - ZÁKLADNÁ ŠKOLA
        0911 348 727 - MATERSKÁ ŠKOLA
        0915 595 176 - ŠKOLSKÁ JEDÁLEŇ
        0908 030 931 - RIADITEĽ
        0940 629 872 - EKONÓMKA
      • Šarišské Dravce 20
        082 73 Šarišské Dravce
        Slovakia
      • sardravce.ms@gmail.com
        sardravce.sj@gmail.com
      • 37876856
    • Prihlásenie