A project log for Cardware

An educational system designed to bring AI and complex robotics into the home and school on a budget.

Morning.StarMorning.Star 03/29/2017 at 23:530 Comments

All the parts I've designed follow the same basic format so I grabbed some parts and hacked up a swivel-mount to put the ICU base on. This is so I can develop the ranging software without having to build the entire system yet. I'm short on servos, half of the ones in the quad were ratty anyway and I sent Mark N some along with an MCU and the bits for the sensor bus to get going with.

I'll get some soon, when I can afford them. $hare the love :-)

I so liked the look of the reused printed sheets built into parts I tried a quick design on the back of the prototype ICU base prints and added a matching lid. I've always liked hexagons anyway and wanted something that would spread over a three dimensional surface evenly. Needs work, but thats good.

Unintentional, but that demonstrates the flexibility of what we're AIMing for.

On to the software. First thing to do is get the cameras working. I borrowed some code from AIMOS and adapted it to read these horrible old cameras. New ones are far less trouble, even the cheap ones have chipsets in them that Pi's will use. These work, but they complain about the framework.

~/Desktop/aimos/motion $ CC=gcc
~/Desktop/aimos/motion $ CXX=c++
~/Desktop/aimos/motion $ export CC CXX
~/Desktop/aimos/motion $ cmake .
-- Configuring done
-- Generating done
-- Build files have been written to: /home/jez/Desktop/aimos/motion
~/Desktop/aimos/motion $ make
[100%] Built target motion
~/Desktop/aimos/motion $ python
Beginning background process
Started. Process IDs are 13292,13296
Acquiring buffers
ioctl: VIDIOC_QUERYCTRL(id=9963788;type=unknown;name="";minimum=0;maximum=0;step=0;default_value=0;flags=0): Input/output error
ioctl: VIDIOC_QUERYCTRL(id=9963800;type=unknown;name="";minimum=0;maximum=0;step=0;default_value=0;flags=0): Input/output error
ioctl: VIDIOC_QUERYCTRL(id=9963802;type=unknown;name="";minimum=0;maximum=0;step=0;default_value=0;flags=0): Input/output error
ioctl: VIDIOC_QUERYCTRL(id=9963803;type=unknown;name="";minimum=0;maximum=0;step=0;default_value=0;flags=0): Input/output error
Initiated Streamer instance; video stream starting...
Motion is up and running.
Hey Origaime...

A bit of cutting and pasting, renaming of stuff and thats working. Still runs at 10FPS with a browser alongside it, a couple of copies of Inkscape and some bits and bobs without stuttering or dropping frames. Saying that, if this works on a single Pi I'll be surprised, that USB hub is smoking.

Origaime is designed to run on a pair of Zero's linked together via serial or i2c controlling an Atmel MCU that handles the hard work running the servos but might be ok on a Pi3 if the USB can take the cameras.