Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorflavio <fdanesse@gmail.com>2012-06-16 20:15:42 (GMT)
committer flavio <fdanesse@gmail.com>2012-06-16 20:15:42 (GMT)
commit7ab16f852de97bd35923a6743da940cfcbf0871b (patch)
treeb88c36ce27cac3d822431a26143fa29f1dc2ee62
parentba2d0af727c1fdc2f9cfd52a413b213b39be5bdf (diff)
Agregando control de sensores y corrijiendo bugs
-rw-r--r--LegoJAM.py45
1 files changed, 34 insertions, 11 deletions
diff --git a/LegoJAM.py b/LegoJAM.py
index be1ac9a..47db6b8 100644
--- a/LegoJAM.py
+++ b/LegoJAM.py
@@ -14,6 +14,7 @@ sys.path.append("nxt_plugin")
# Importamos las funciones de la API
import nxt
from nxt import Motor
+from nxt.sensor import *
from interface.window import Window
@@ -57,8 +58,8 @@ class LegoJAM(Window):
self.show_all()
def select_robot(self, treeview, treepath, column, robots):
- self.set_layout(robots[treepath[0] - 1])
treeview.destroy()
+ self.set_layout(robots[treepath[0] - 1])
def set_layout(self, robot):
self.robot = Robot(robot)
@@ -88,10 +89,11 @@ class LegoJAM(Window):
num += 1
battery_status = gtk.Label(
- 'Estado de la bateria: %s' % self.robot.get_battery_level())
+ 'Estado de la bateria: %s' % self.robot.robot.get_battery_level())
vbox.pack_end(battery_status)
- self.robot.connect('battery-level-changed',
- lambda w, l: battery_status.set_text(l))
+
+ self.robot.connect('battery-label-changed',
+ lambda w, l: battery_status.set_text('Estado de la bateria: %s' % l))
self.canvas.pack_start(vbox, True, True)
self.show_all()
@@ -127,27 +129,34 @@ class LegoJAM(Window):
# robot.get_input_values() takes exactly 2 arguments (1 given)
# robot.get_output_state() takes exactly 2 arguments (1 given)
-class Robot():
+class Robot(gobject.GObject):
__gsignals__ = {'battery-label-changed': (gobject.SIGNAL_RUN_LAST,
gobject.TYPE_NONE,
- int)}
+ [str])}
def __init__(self, robot):
+ gobject.GObject.__init__(self)
+
self.motorA = None
self.motorB = None
self.motorC = None
self.funciones = []
self.set_up(robot)
- gobject.timout_add(1000, self._update_battery_level)
-
def set_up(self, robot):
self.robot = robot.connect()
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)
+ self.presion = Touch(self.robot, PORT_1)
+ self.sonido = Sound(self.robot, PORT_2)
+ self.ultrasonido = Ultrasonic(self.robot, PORT_4)
+ self.luz = Light(self.robot, PORT_3)
+
+ gobject.timeout_add(1000, self.handle)
+
def run_motor(self, motor):
if motor == "A":
self.motorA.run(power=127, regulated=False)
@@ -163,9 +172,23 @@ class Robot():
self.motorB.brake()
elif motor == "C":
self.motorC.brake()
-
- def _update_battery_level(self):
- self.emit('battery-level-changed', self.robot.get_battery_level())
+
+ def handle(self):
+ valor_boton = self.presion.get_sample()
+ print 'Botón: ', valor_boton
+
+ valor_sonido = self.sonido.get_sample()
+ print 'Botón: ', valor_sonido
+
+ valor_ultrasonido = self.ultrasonido.get_sample()
+ print 'Ultrasónico: ', valor_ultrasonido
+
+ valor_luz = self.luz.get_sample()
+ print 'luz: ', valor_luz
+
+ self.emit('battery-label-changed', str(self.robot.get_battery_level()))
+
+ return True
class Mimotor(Motor):