Next version 'Nixie' is coming soon !

Help us to get ready with MyRobotLab version Nixie: try it !
Javadoc link
Example code (from branch develop):
#file : Pid.py (github)
#########################################
# Pid.py
# categories: pid
# more info @: http://myrobotlab.org/service/Pid
#########################################
 
import time
import random
 
pid = runtime.start("test", "Pid")
 
pid.setPid("pan", 1.0, 0.1, 0.0)
pid.setSetpoint("pan", 320)
 
pid.setPid("tilt", 1.0, 0.1, 0.0)
pid.setSetpoint("tilt", 240)
 
for i in range(0,200):
 
    i = random.randint(200,440)
    pid.compute("pan", i)
    
    i = random.randint(200,440)
    pid.compute("tilt", i)
    
    time.sleep(0.1)

A PID service allows the tracking and transformation of output in relation to iinput.  This is currently used as one of the tracking strategies in the Tracking service.  Input is sent to PID, a "compute" method is sent and appropriate output is sent to a servo.

References

My purpose is to just become more familiar with MRL.

I was trying to replicate the sample tutorial that you have and seem to be having some trouble.

I am interested in getting the speech aspect working for a simple project of face recognition and a comment of recognition.

as for right now though I would just like to get the example working.

Here is a screen shot of what I have done.

Yay ! - LKOptical tracking filter tracking 30 points simultaneously !   The Tracking service can proceed .... Wooh .. about time !  Still need to write a bug up for JavaCV, but the filter works around it.

Added an ouput panel - which allows recording of a video stream or individual frames from the output stream.

Javadoc link
Example code (from branch develop):
#########################################
# ThingSpeak.py
# more info @: http://myrobotlab.org/service/ThingSpeak
#########################################
 
# virtual=1
comPort = "COM12"
# start optional virtual arduino service, used for internal test
if ('virtual' in globals() and virtual):
    virtualArduino = runtime.start("virtualArduino", "VirtualArduino")
    virtualArduino.connect(comPort)
# end used for internal test 
 
readAnalogPin = 15
 
arduino = runtime.start("arduino","Arduino")
thing = runtime.start("thing","ThingSpeak")
 
arduino.setBoardMega() # setBoardUne | setBoardNano
arduino.connect(comPort)
sleep(1)
# update the gui with configuration changes
arduino.broadcastState()
 
thing.setWriteKey("AO4DMKQZY4RLWNNU")
 
# start the analog pin sample to display
# in the oscope
 
# decrease the sample rate so queues won't overrun
# arduino.setSampleRate(8000)
 
def publishPin(pins):
  for pin in range(0, len(pins)):
    thing.update(pins[pin].value)
 
arduino.addListener("publishPinArray",python.getName(),"publishPin")
 
arduino.enablePin(readAnalogPin,1)

If your system has many parts, it is sometimes nice to detach and arrange them in the most convient way depending on how your working.  As an example the InMoov service may have up to 22 servos.  When capturing gestures its nice to have al lthe relevant service tabs arranged in such a way that gestures can be tweaked and code can be modified.

 

Debounce

Implemented digital pin debounce based on this . It puts in a 50 ms wait after a state change on a digital line.  Needs testing. 

It should help with encoders, bumpers, and other bouncy switches although remember boys & girls, you should always try to clean your signal at the source :)

Digital Trigger Only

Update : Radom Mapper ! - it works !  

The cause and effect :  
Arduino wire changes state  (Bumper) ------  sends an  event to Python --------->  Makes a random wall !

The best way to get involved, stay current and even push MyRobotLab development is to uh. . .get a little bloody.  Figuratively that is.

Most people (me included) tend to look for "stable" software releases.  It's "done."  Won't be changing for a while.  Things probably work best and will keep working.

Uh. . .with MyRobotLab, the only one of those that you can really depend on is "Won't be changing for a while."

Something I've wanted for a while is multi-paged Jython editor ... Viola ... (it's still in development - but getting closed to being checked in) 

Now you can have an initialization script in one file, and a State machine in another :)

We can copy paste, from one file to another..

But wait .. There's MORE !

Javadoc link

Houston is a robot service based on DancesWithRobot's (DWR)  Houston project.  Houston is on the bleeding edge of development.

Houston consists of the following sub services :