Afstandsbediening Gripper bot (15 / 16 stap)

Stap 15: Codevoorbeeld voor de toepassing van de Python

 #!/usr/bin/env python # # For Linux, BSD or Mac OSX you can chmod +x on this script to make executable # ########### # Rover control app # # Written by Scott Beasley - 2015 # Free to use or modify. Enjoy. # ########### import sys import serial import time from Tkinter import * import tkFont import tkMessageBox # Create the window for the application class App (Frame): # Make the window def createWidgets (self): self.connected = False self.message = StringVar ( ) # Make a little font for the gripper set buttons. helv6 = tkFont.Font (family = 'Helvetica', size = 6, weight = 'normal') self.frame = Frame (self.master) self.frame.pack ( ) self.f1 = Frame (self.frame) self.l1 = Label (self.f1, text = "Comm Port: ") self.l1.pack (side = LEFT) self.comm_entry = Entry (self.f1, bd = 5, name = "comm_entry") self.comm_entry.pack (side = LEFT) self.connectButton = Button (self.f1, text = "Connect", command = self.SerialConnect, name = "b_connect") self.connectButton.pack (side = LEFT) self.disconnectButton = Button (self.f1, text = "Disconnect", command = self.SerialDisconnect, name = "b_disconnect") self.disconnectButton.pack (side = RIGHT) self.f1.grid (row = 0, column = 0) self.f2 = LabelFrame (self.frame, bd = 3, relief = "groove", text="Ground Control") self.g_vert_fm = Frame (self.f2) self.grip_vert = Scale (self.g_vert_fm, from_ = 0, to = 180) self.grip_vert.grid (row = 0, column = 0, rowspan = 4, sticky = W) self.grip_vert_set = Button (self.g_vert_fm, text = "Set", command = self.GripperY, name = "b_grip_vert_set", width = 1, height = 2, font = helv6) self.grip_vert_set.grid (row = 5, column = 0, sticky = W) self.master.bind ("", self.GripperY) self.g_vert_fm.grid (row = 0, column = 0, rowspan = 4, sticky = W) self.leftforwardButton = Button (self.f2, text = "\\", command = self.TurnLeft45, name = "b_left_forward") self.leftforwardButton.grid (row = 0, column = 1) self.master.bind ("<a rel="nofollow">", self.TurnLeft45) self.leftButton = Button (self.f2, text = "<", command = self.TurnLeft, name = "b_left") self.leftButton.grid (row = 1, column = 1) self.master.bind ("</a><a rel="nofollow">", self.TurnLeft) self.rightforwardButton = Button (self.f2, text = "/", command = self.TurnRight45, name = "b_right_forward") self.rightforwardButton.grid (row = 0, column = 3) self.master.bind ("</a><a rel="nofollow">", self.TurnRight45) self.haltButton = Button (self.f2, text = "Halt!", command = self.Halt, name = "b_halt") self.haltButton.grid (row = 1, column = 2) self.master.bind ("</a><a rel="nofollow">", self.Halt) self.rightButton = Button (self.f2, text=">", command = self.TurnRight, name = "b_right") self.rightButton.grid(row = 1, column = 3) self.master.bind ("</a><a rel="nofollow">", self.TurnRight) self.upButton = Button (self.f2, text="^", command=self.Forward, name = "b_forward") self.upButton.grid (row = 0, column = 2) self.master.bind ("</a><a rel="nofollow">", self.Forward) self.leftdownButton = Button (self.f2, text = "/", command = self.TurnRight45, name = "b_left_down") self.leftdownButton.grid (row = 2, column = 1) self.downButton = Button (self.f2, text="V", command=self.Reverse, name = "b_reverse") self.downButton.grid (row=2, column = 2) self.master.bind ("</a><a rel="nofollow">", self.Reverse) self.f2.grid (row = 1, column = 0, pady = 25) self.rightdownButton = Button (self.f2, text = "\\", command = self.TurnLeft45, name = "b_right_down") self.rightdownButton.grid (row = 2, column = 3) self.g_horz_fm = Frame (self.f2) self.grip_horz = Scale (self.g_horz_fm, from_ = 0, to = 180, orient = HORIZONTAL) self.grip_horz.grid (row = 0, column = 0, columnspan = 7, sticky = E) self.grip_horz_set = Button (self.g_horz_fm, text = "Set", command = self.GripperX, name = "b_grip_horz_set", width = 1, height = 2, font = helv6) self.grip_horz_set.grid (row = 0, column = 8) self.master.bind ("<u>", self.GripperX) self.g_horz_fm.grid (row = 4, column = 0, columnspan = 7, sticky = E) self.master.bind ("</u></a><a rel="nofollow"><u>", self.GripperHome) self.f3 = Frame (self.frame) self.l2 = Label (self.f3, text = "Last action: ") self.l2.pack (side = LEFT) self.l3 = Label (self.f3, text=" ", textvariable = self.message) self.l3.pack (side = RIGHT) self.f3.grid (row = 3, column = 0, pady = 8) # Set the state of the bot control buttons. Enable when connected, # Disabled otherwise. def CtrlButtonsState (self, bstate): self.leftforwardButton.config (state = bstate) self.leftButton.config (state = bstate) self.rightforwardButton.config (state = bstate) self.rightButton.config (state = bstate) self.upButton.config (state = bstate) self.leftdownButton.config (state = bstate) self.downButton.config (state = bstate) self.rightdownButton.config (state = bstate) self.haltButton.config (state = bstate) self.disconnectButton.config (state = bstate) self.grip_horz.config (state = bstate) self.grip_vert.config (state = bstate) self.grip_horz_set.config (state = bstate) self.grip_vert_set.config (state = bstate) # Set the state of the comm port entry. Enable when not connected, # Disabled when the bot is connected. def ConnCtrlsState (self, bstate): self.connectButton.config (state = bstate) self.comm_entry.config (state = bstate) # Connect to the comm port typed in the comm entry field. def SerialConnect (self): try: # Change the baud rate here if diffrent then 57600 self.ser = serial.Serial (self.comm_entry.get ( ), 57600) except IOError: tkMessageBox.showerror ("Invalid comm port", "Comm port not found.") return self.ConnCtrlsState (DISABLED) self.CtrlButtonsState (NORMAL) self.message.set ("SerialConnect") self.connected = True time.sleep (3) # Dwell a bit for the connection to happen # Disconnect from the bot (close the comm port). def SerialDisconnect (self): try: # Send a Halt command just in case the bot is still moving. self.send_cmd ('h', "Halt!") time.sleep (1) self.ser.close ( ) except IOError: print "Could not close port..." self.message.set ("SerialDisconnect") self.ConnCtrlsState (NORMAL) self.CtrlButtonsState (DISABLED) self.connected = False time.sleep (2) # Dwell a bit for the disconnection to happen # Send the command to the open comm port def send_cmd (self, action, msg): if self.connected == True: for val in action: self.ser.write (val) self.ser.flush ( ) self.message.set (msg) # Send the bot a turn-left command. def TurnLeft (self, event = None): self.send_cmd ('a', "Left") # Send the bot a turn-left-up command. def TurnLeft45 (self, event = None): self.send_cmd ('q', "Left45") # Send the bot a turn-right command. def TurnRight (self, event = None): self.send_cmd ('s', "Right") # Send the bot a turn-right-up command. def TurnRight45 (self, event = None): self.send_cmd ('e', "Right45") # Send the bot a Forward command. def Forward (self, event = None): self.send_cmd ('w', "Up") # Send the bot a Reverse command. def Reverse (self, event = None): self.send_cmd ('z', "Down") # Send the bot a Halt command. def Halt (self, event = None): self.send_cmd ('h', "Halt!") # Set the gripper (X). def GripperX (self, event = None): # Read the slider control and send the value to the bot controller # Note: 0 is all the way closed and 180 is all the way open grp_change = ('>', chr (self.grip_horz.get ( )), chr (255)) self.send_cmd (grp_change, "Gripper X") # Set the gripper Y. def GripperY (self, event = None): # Read the slider control and send the value to the bot controller # Note: 0 is all the way up and 180 is all the way down grp_change = ('^', chr (self.grip_vert.get ( )), chr (255)) self.send_cmd (grp_change, "Gripper Y") # Set the gripper to the "home" position. def GripperHome (self, event = None): self.send_cmd (('c', chr (255)), "Gripper Home") def __init__ (self, master = None): Frame.__init__ (self, master) self.pack ( ) self.createWidgets ( ) self.CtrlButtonsState (DISABLED) # Kick off the GUI (Tk) then size and title the app window def main ( ): root = Tk ( ) root.geometry ("450x350") root.wm_title ("Rover Control Center (RCC)") app = App (master = root) app.mainloop ( ) if __name__ == '__main__': main ( ) <br> 

Gerelateerde Artikelen

Boom en Gripper bot

Boom en Gripper bot

Robot grijpers zijn altijd leuke dingen om te spelen met. Het toevoegen van een aan een robot is alsof je een afstandsbediening Tonka speelgoed uit mijn kindertijd. In het verleden, grijpers, waar een grote deal aan bouw- en constructie, maar met 3D-
Gebruik van Arduino Remote Control Bot t.v Remote

Gebruik van Arduino Remote Control Bot t.v Remote

Dit is een afstandsbediening Arduino Bot die kan worden bediend met elke afstandsbediening die gewone.Het belangrijkste kenmerk van dit project is een IR ontvanger TSOP1738, waarmee we kunnen gebruik maken van de knoppen van een gewone afstandsbedien
Arduino bot Android afstandsbediening II

Arduino bot Android afstandsbediening II

Toen kocht ik mijn Complubot een jaar geleden, ik niet dacht dat hoe leuk ik zou kunnen zijn, ik heb praktijk met volgen lijn voertuig, borstel de auto, maar toen ik las ik lees het artikel op instructables aan bluethooth gerelateerde rc, begon ik te
Arduino bot Android afstandsbediening

Arduino bot Android afstandsbediening

Hallo daar,In dit instructable wil de verbinding tussen de Arduino en Android verkennen. Beide zijn open, gemakkelijk-aan-programma omgeving (Nou ja, Android niet zo eenvoudig, maar heel), en de interactie tussen hen interessante human-to-device inte
Parallax BoE-Bot afstandsbediening aangedreven door Afero

Parallax BoE-Bot afstandsbediening aangedreven door Afero

De Parallax BoE-Bot is een geweldig platform voor het experimenteren met Robotica, en toen ik dacht over het toevoegen van een Afero Modulo zodat de afstandsbediening het leek een natuurlijke paring. De BoE-Bot het fysieke ontwerp zou maken het gemak
Hacking the Spy Video Trakr III: Maak een Grabber Bot uit Legos, Snap Circuits en de Spy Video Trakr

Hacking the Spy Video Trakr III: Maak een Grabber Bot uit Legos, Snap Circuits en de Spy Video Trakr

In dit instructable demonstreer ik hoe met Legos, Snap Circuits en de Spy Video Trakr maken van een externe gecontroleerde grabbelen bot. Hier demonstreer ik hoe te downloaden en installeren van de taal C compiler voor de Trakr. Daarna leg ik uit hoe
Maak zelf een TV afstandsbediening gecontroleerde Arduino Robot!

Maak zelf een TV afstandsbediening gecontroleerde Arduino Robot!

Hallo jongens.Abhay en Akshay hier!Vandaag gaan we naar het maken van een TV remote controlled Robot dat niet alleen werkt als een charme, maar u het ook upgraden kunt door het bewerken van de code en gebruik te maken van een paar meer knoppen op de
AFSTANDSBEDIENING auto een FLUITJE van een cent

AFSTANDSBEDIENING auto een FLUITJE van een cent

Hallo iedereen in deze opdracht staat. Ik zal tonen u stap voor stap instructies over hoe te maken van eenvoudige rf(radio frequency) RC (afstandsbediening) auto. Dit kan worden gedaan door elke beginners binnen één uurIk zal bespreken over de werkin
Afstandsbediening robotarm

Afstandsbediening robotarm

dit is de eeuw High School Science Olympiad robotarm die op het Minnesota 2012 staat Science Olympiad toernooi met 32 andere teams streden. Ik bouwde en liep deze afstandsbediening robot-arm voor het toernooi, 8e (als gevolg van onvoorziene problemen
Autonome/RC menselijk Bot

Autonome/RC menselijk Bot

intro: 18 +ik ben een 24 jaar oude student aan technische Instituut York elektrotechniek studeren en dit is mijn robot die ik heb gewerkt voor een project en wilde delen met alle studenten, onderwijzers en hobbyisten.Deze robot kan worden aangestuurd
Bristle bot vanuit een oude rc helikopter (Heldendicht ontbreekt contest)

Bristle bot vanuit een oude rc helikopter (Heldendicht ontbreekt contest)

Ik had een oude mini rc helikopter tot rond met een gebroken afstandsbediening dus ik dacht dat is heeft de geschikte onderdelen te maken een bristle-botStap 1: Demonteren de helikopter Dit deel is ongecompliceerd. Neem een passende schroevendraaier
Arduino 4wd robot met ping sensor "J-Bot"

Arduino 4wd robot met ping sensor "J-Bot"

ervaringsniveau: Intermediate (vereist solderen)Benodigde tijd: 3-5 uur afhankelijk van ervaringJ-BOT Kit JamecoIemand vermeldde dat Jameco nodig een robotachtige mascotte. Ik heb altijd al een tinkerer, vooral met de radio-gecontroleerde Elektronika
Gevecht Bots

Gevecht Bots

Strijd je vrienden met deze Intel eentraps gevecht bots. Deze kleine bots blast elkaar met water spuit en detecteren hits met water sensoren bekleed langs hun lichamen. Elk bot wordt aangedreven door een Intel Galileo bord en draadloos gecontroleerd
Eng bots en super creeps - vibrobots met verbindingslijnen, draad en kabel banden

Eng bots en super creeps - vibrobots met verbindingslijnen, draad en kabel banden

maken grappig, eng, onnozele trillende bot wezens met weinig meer dan connectoren, Kabelbinders en elektrische draad. De bots in de foto's en video zijn slechts voorbeelden van wat u kunt maken. Uw verbeelding is de limiet. Dankzij de veelzijdigheid