Archive for September, 2013

Things will be slow …

Posted in Python RULES!, The downside of Opensource on September 28, 2013 by asteriondaedalus

… semester and my Masters has fired up again.

My brain hurts

I worked out that I needed to spend this weekend re-learning Calculus (differentiation and integration) before going back to my reliability engineering stats as, go figure, you need your calculus to do the stats.

Very slow on hobby stuff for next 24 weeks (two subjects and exams).

I do get distracted though.

I found Boa Constructor which is a python software tool that resembles Borland Delphi (although it works more like their C++ Builder).

I love the idea as I was a big fan/user of Delphi a while back – but it looks like a dead project, based upon python 2.5 and older versions of wxWindows and wxPython – and especially no useful examples for adding your own components. Pity.

Just looking at Kivy vs Qt.  Kivy seemed great.  Ran on my phone okay but wouldn’t run on my desktop – so I may loose interest.  Not going to go through the “newbie” insult if they have software that does not deploy properly as that is a quality issue on them more than on my “competency”.

Robot fish

Posted in Arduino, Prototyping, Sea on September 18, 2013 by asteriondaedalus

robo fish

 

Go figure you don’t have a realistic “fish” thing going to build a robotic fish.

With the $10 second hand handycam dive enclosure we have a body.

sony cam

 

Now I was saving pennies for waterproof servos to see if they would paddle this along.

Then I noticed cheap (really cheap) camera gimbal drivers and brushless motors.  Brushless motors, in principle, can work underwater (plenty of examples on you tube) so I thought why not gimbal motors which work like servo motors.  I will have to re-code the driver but it will be to take the IMU code and replace it with sinusoidal drivers to “undulate” the tail.

gimbal driverI bought 4 $13 motors to try the idea out.

 

pixy post

Posted in Vision on September 12, 2013 by asteriondaedalus

Yep, saw it, joined in.

It occurred …

Posted in Android, Arduino, Python RULES! on September 8, 2013 by asteriondaedalus

Doodling with POSH and SPADE and it occurred it might get a little hard to debug crashing everything together all at once.

So I opted for something saner.

The idea is the POSH/SPADE agents will run on an Android phone and talk to the Arduino firmata slave by Bluetooth.

The great thing is I have been writing the Python experiments on my desktop machine and talking to my android-scripting, install on my Samsung Galaxy SII, with my Stackless Python.

So, a few tricks for old players when modifying the firmata arduino.py for Bluetooth.

1) replace “import serial” with “import android”

2) change the parameters to __init__ to a single droid parameter.  This will be the android-scripting instance of the Android() class.

3) Add a method that will connect to the Bluetooth on your Arduino.  The droid.bluetoothConnect(xxx) needs to use the universal UUID for serial connections, namely: xxx = ‘00001101-0000-1000-8000-00805f9b34fb’ – you need to call this to get a serial connection.

2) JSON calls baulk at chr(x) to build strings for the Bluetooth as it expects utf-8.  Minimal code change was to go from:

self._droid.bluetoothWrite(chr(mode))

to:

self._droid.bluetoothWrite(unichr(mode).encode(‘utf-8’))

So, I seem to have got the Python (on the PC) connecting to the Bluetooth module on the Arduino, via the Android phone.  Closed up shop for the weekend so I was happy the Bluetooth modified Arduino class seemed to run (mostly) like the original serial version.  Needs some more testing though.

The point being, I should be able to drive the Romeo AllInOne on my cheap truck chassis without moving away from firmdata for a while – doubly remotely skipping through phone from PC.  I have been using firmdata, over USB serial, to buzz out the winch servo I am fitting to it to give it more refined steering than came with it.  So first test will be to see if I can do the same over Bluetooth.  Next will be to take some of the romeo examples, in processing, and convert them to firmata calls from python.  This will allow a basic cell bot with firmata at bottom end and a python abstraction – for now.

Anyway, the current setup up is:

pydroid setup

I am going to have to cut up my visa card

Posted in Air, Arduino, Hardware on September 5, 2013 by asteriondaedalus

MWC

So, couldn’t help myself.

Bought two of these beasties for crashing park fliers.  $25 each.

Features:
• 7CH DSM2 Compatible Receiver (PPM SUM)
• Self-voltage checking
• FTD1 protection
• ATMEGA328P Microcontroller
• MPU6050 Accelerometer and Gyro
• BMP085 Digital Barometric Sensor
• HMC5883L Digital Manometer/Compass
• C8051F330 MCU (8051 based, that takes me back 30 years I think)
• CYRF69103 Radio
• Dual IIC Ports
• UART
• GPS Port (GPS not included)
• OLED Screen Port (OLED not included)

Toying with …

Posted in Agent, Android, Python RULES! on September 4, 2013 by asteriondaedalus

The tail end code fragment in the (POSH) launch.py file gave me an idea … well it came to me in the car on the way to work, you all know how those problems simmer in the darkest deepest reaches before peculating up.

loops_running = 1
while loops_running > 0:

time.sleep(0.1)
loops_running = 0
for agent in agents:

if agent.loopStatus()[0]:
loops_running += 1

This is the main (simple) loop that runs until all agent plans are spent.

What occurred to me was that I was looking at how to eventually meld the POSH plan engine into SPADE (some old how).  Currently the POSH agents appear to want to work in the same scope so either a SPADE behaviour (Cyclic and Periodic)  for performing repetitive tasks might be the shot.  Could also be a One Shot in place of the while loop and the SPADE agent sends message to itself to recall the One Shot behaviour if agent.loopStatus()[0]==TRUE.

The thing is, of course, there is some likely confusion in using SPADE AGENTS+BEHAVIOUR as well as POSH AGENTS+BEHAVIOUR.  I am not thinking, for example, there needs be a one-to-one mapping – though it might a side effect of only creating one POSH agent per SPADE agent.  Still, the POSH agent approach seems a neat way to build vehicular components (thus running on on machine) and the SPADE agents can be the communal aspect of a multi agent team.

In any event  the simplest thing might end up multiple inheritance and …