Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Francis <francis@sugarlabs.org>2012-06-16 19:41:07 (GMT)
committer Daniel Francis <francis@sugarlabs.org>2012-06-16 19:41:07 (GMT)
commit3eda4eed006dd4df7ae7ca8656bd9f0d2e2efc53 (patch)
treef0c8b6fecf983f1d1f414e6fa32fe2d5a6ba16d7
parent434aba8ebc5c13f1dd72901a0cd65cc70e918c51 (diff)
parentdf7cbaf6b055f4bb5e4ec6bd6996de2edeac0450 (diff)
Speed
-rwxr-xr-xLegoJAM.py158
-rw-r--r--interpreter.py15
2 files changed, 9 insertions, 164 deletions
diff --git a/LegoJAM.py b/LegoJAM.py
deleted file mode 100755
index d9536cd..0000000
--- a/LegoJAM.py
+++ /dev/null
@@ -1,158 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-import os
-import gtk
-import sys
-
-BASE = os.path.dirname(__file__)
-
-sys.path.append("nxt_plugin")
-
-# Import the API functions
-# Importamos las funciones de la API
-import nxt
-from nxt import Motor
-
-from interface.window import Window
-
-
-class LegoJAM(Window):
-
- def __init__(self):
- super(LegoJAM, self).__init__()
- self.set_title("LegoJAM")
- #self.set_icon_from_file(os.path.join(BASE, "Iconos", "ceibal.png"))
-
- self.base_box = None
- # button_motor_A = None
- # button_motor_B = None
-
- self.set_layout()
- self.show_all()
-
- self.connect("delete_event", self.delete_event)
-
- self.robot = Pancho()
-
- def set_layout(self):
- canvas = gtk.VBox()
- store = gtk.ListStore(str, int)
- combobox = gtk.ComboBox(store)
- cell = gtk.CellRendererText()
- combobox.pack_start(cell)
- combobox.add_attribute(cell, 'text', 0)
- canvas.pack_start(combobox, True, False)
- combobox.show()
-
- num = 0
- for i in ['A', 'B', 'C']:
- store.append(['Motor %s' % i, num])
- combobox.set_active(0)
-
- vbox = gtk.VBox()
- run_button = gtk.Button("Encender")
- run_button.show()
- run_button.connect_object("clicked", self.run_motor, combobox)
- vbox.pack_start(run_button)
- stop_button = gtk.Button("Apagar")
- stop_button.show()
- stop_button.connect_object("clicked", self.stop_motor, combobox)
- vbox.pack_start(stop_button)
- vbox.show()
- num += 1
-
- canvas.pack_start(vbox, True, True)
-
- self.set_canvas(canvas)
-
- def run_motor(self, combobox):
- if combobox.get_active() == 0:
- self.robot.run_motor("A")
- elif combobox.get_active() == 1:
- self.robot.run_motor("B")
- elif combobox.get_active() == 2:
- self.robot.run_motor("C")
-
- def stop_motor(self, combobox):
- if combobox.get_active() == 0:
- self.robot.stop_motor("A")
- elif combobox.get_active() == 1:
- self.robot.stop_motor("B")
- elif combobox.get_active() == 2:
- self.robot.stop_motor("C")
-
- def delete_event(self, widget, event):
- self.salir()
- return False
-
- def salir(self, widget=None):
- sys.exit(0)
-
-
-# robot.get_battery_level()
-# robot.get_device_info()
-# robot.get_current_program_name
-# robot.get_firmware_version()
-# robot.get_input_values() takes exactly 2 arguments (1 given)
-# robot.get_output_state() takes exactly 2 arguments (1 given)
-
-class Pancho():
- def __init__(self):
- self.nombre = 'Pancho'
- self.motorA = None
- self.motorB = None
- self.motorC = None
- self.funciones = []
- self.set_up()
-
- def set_up(self):
- try:
- self.robot = nxt.locator.find_one_brick(debug=True)
- for funcion in dir(self.robot):
- self.funciones.append(funcion)
- print funcion
- print self.robot.get_device_info()
- except:
- print "El Robot se Encuentra Desconectado o Apagado"
- sys.exit(0)
- self.motorA = Mimotor("A", self.robot, nxt.PORT_A)
- self.motorB = Mimotor("B", self.robot, nxt.PORT_B)
- self.motorC = Mimotor("C", self.robot, nxt.PORT_C)
-
- def run_motor(self, motor):
- if motor == "A":
- self.motorA.run(power=127, regulated=False)
- elif motor == "B":
- self.motorB.run(power=127, regulated=False)
- elif motor == "C":
- self.motorC.run(power=127, regulated=False)
-
- def stop_motor(self, motor):
- if motor == "A":
- self.motorA.brake()
- elif motor == "B":
- self.motorB.brake()
- elif motor == "C":
- self.motorC.brake()
-
-
-class Mimotor(Motor):
- # motor._get_state()
- def __init__(self, nombre, brick, port):
- Motor.__init__(self, brick, port)
- self.nombre = nombre
-
- #self.turn(power = 100, tacho_units = 360, emulate = True)
- #self.turn(
- #power = 100,
- #tacho_units= 0, brake = True, timeout = 1, emulate = True)
- #self.run(power = 100, regulated=False)
-
-if __name__ == "__main__":
- LegoJAM()
- gtk.main()
-
-'''
-for x in range(5000):
- ....: robot.play_tone_and_wait(x, 1000)'''
diff --git a/interpreter.py b/interpreter.py
index d95b01d..34aba60 100644
--- a/interpreter.py
+++ b/interpreter.py
@@ -16,7 +16,6 @@ class Robot():
self.motors = []
self.funciones = []
self.ready = False
- self.speed = 127
def setup(self):
try:
@@ -28,17 +27,17 @@ class Robot():
except:
print "El Robot se Encuentra Desconectado o Apagado"
return False
- self.motors.append(Motor(self.robot, nxt.PORT_A))
- self.motors.append(Motor(self.robot, nxt.PORT_B))
- self.motors.append(Motor(self.robot, nxt.PORT_C))
+ self.motors.append([Motor(self.robot, nxt.PORT_A), 127])
+ self.motors.append([Motor(self.robot, nxt.PORT_B), 127])
+ self.motors.append([Motor(self.robot, nxt.PORT_C), 127])
self.ready = True
return True
def run_motor(self, motor):
- self.motors[motor].run(power=127, regulated=False)
+ self.motors[motor][0].run(power=self.motors[motor][1], regulated=False)
def stop_motor(self, motor):
- self.motors[motor].brake()
+ self.motors[motor][0].brake()
#self.turn(power = 100, tacho_units = 360, emulate = True)
#self.turn(
@@ -67,6 +66,10 @@ def parse_line(line):
robot.run_motor(int(keywords[2]))
elif keywords[1] == 'stop':
robot.stop_motor(int(keywords[2]))
+ elif keywords[1] == 'get':
+ print robot.motors[int(keywords[2])][1]
+ elif keywords[1] == 'set':
+ robot.motors[int(keywords[2])][1] = int(keywords[3])
while True: