The unfortunate grove socket incident with the motor shield / gove breakout means I have to wait for new cables / connectors to arrive before I can look at adding sensors. First priority will be line following an “old classic” for robots and frankly pi + arduino + motor shield is probably over kill for this, but then again I am trying to squeeze as much functionality into a single robot as “robotically” possible.
While I “wait” … I have swapped out the Pi B for my only Pi B+ board so that I now have 4 USB ports (without needing to clutter the already busy platform with more hardware like a USB hub). Now I can have WiFi dongle, coms link from Pi to Arduino and Webcam input, and still have one USB port free for what ever evil genuis plan takes root in my brain.
So now I can use the upgraded python scripted http server / robot controller (glorified serial coms down USB port) to control robot from any web browser (that supports javascript) on any device that can connect via the wifi hotspot (hosted on the robot’s Pi B+ board). Although the webcam is mounted upside down, I have managed to flip the picture using pygame.transform library (yes that’s right I’m using pygame libraries in a robot!), it only displays snapshots (usually after processing a command eg forward, reverse, left, right, stop). Next tasklet is to get this streaming a constant flow of updated images, I dare not call it video streaming as there seems to be a bottleneck in the processing somewhere, so http page refreshes are very slow (something else to work on).
I have also ordered some similar motors / wheels for a new build project which will be the upsizing of the previous frapper bot project, so for those that have seen it before a marco sized frapper bot type design using spare bits of foamex board for the platform. Unlike Marco’s motors the new “kit” comes with 8 pole magnet “hubs” and “hall effect” sensors which will allow me to control and regulate the speed of the individual motors. At the moment Marco turns to the left when going forward because the right motor is going faster than the left even when setting them at the same speed. Even if I manually trim this, as the batteries drain so the trimming comes out of alignment again, so some form of control algorithm is required. The Hall sensors will detect 8 changes in the polarity of the hub as the shaft it is attached to spins around 1 revolution, thus being able to determin both speed and distance of the individual motors. The trick is to use that information to regulate speed, and recognise a stall situation.
I would like to say that I had to work really hard to get the webcam version of the web based control system working, but I had actually already tested this on my PC prior to replacing the B with the B+. I only had to make a minor tweak to the PC version (the image flipping mentioned above) to accomodate the fact that I had to mount the camera upside down. This is really one of those times where you make up for hardware issues with “smart” software.
Enough talking !!! Now for some Marco 2 pictures:
Marco 2 next to Tesco Hudl Tablet used for remote control testing.
And another picture showing Marco 2 next to Tesco Hudl Tablet.
Tablet shot showing controls (left) status information (middle) and webcam image (right).
Top down view of Marco 2 showing motor shield with Arduino Uno board sitting underneath.
Rather blury view (I am not a photographer) of front mounted webcam as stated mounted upside down.
Top Down view of Marco 2’s Pi B+ board.
Wider angle top down view of Marco 2.
Side view just showing battery pack (used to power the Pi B +) tucked between the controller platform base and the motor platform base.
Another side view showing USB connectors (on the far side). The battery pack on top is used by the motor shield to provide power to the motors.
Yay great, stuff, lets hope we get lots of people along to the jam, to see this 🙂