Tag Archive: raspberry pi

2016
03/14

Category:
Computing

TAG:


COMMENTS:
Comments Closed

Robot retro-fit update

I’m excited to go to the Coding Evening in Peterborough event tomorrow, but before I go I wanted to try something out that I was struck by when I was using my old PS2 remote control with my Pi (ahead of getting the motor wired up).

Although I’ve managed to “see” the old helicopter remote control signals, I decided that it was time I heeded my own device (like I keep saying to my 12yo-maker, “start simple, then gradually add complexity”) and so put the helicopter remote side in favour of a known device like the old PlayStation 2 remote control. Which turns out to have been very sensible advice.

I spent some time finally getting my head into the lirc libraries, configuration and sample code. It all worked nicely, but I wasn’t totally satisfied as it didn’t track the key down/up events that make for a smooth motoring experience (as demoed so nicely by the new GPIO Zero library recipes).

But as I tested, I noticed that the cursor was actually moving around the IDLE console output window, and it struck me that perhaps the lirc input could be read by the Python evdev library that I’ve been playing with in school recently…

And this evening I found that indeed it can! It appears that once the lirc configuration is set, the evdev library sees it as another input and from there all is good; I can now track key up, key down (and, should I need them, key held) events which means a smooth control for the all important 4yo soak testing, to come later.

Now I can really look forward to tomorrow evening ?

2016
02/05

Category:
Computing

TAG:




COMMENTS:
Comments Closed

Robot retro-fit

RoboRover

I got a lovely friendly yellow robot (a WowWee RoboRover, as it turns out) as a leaving present from my last school. It’s lovely. But it only goes in one direction: two tractor treads, but only one motor. My 4-year-old loves playing with it, but I can’t help but feel that we could do more…

Over the Christmas break this year, I decided the time had come (particularly in light of the advent of the Raspberry Pi Zero) to upgrade the cute little critter. Tamiya 70097 Today, I finished phase 1 (it sounds better in my head if I pretend I have some kind of structured plan), and proved that the motor unit I’ve picked out will fit in the chassis of the Roborover. It’s a Tamiya 70097 geared twin motor unit, from a range of remote control vehicles (promising start…) and was, itself, rather fun to put together.

I’ve also bought an infra-red receiver, a TSOP38238, to hopefully make use of an old r/c helicopter handset, so that’s this weekend’s challenge; let’s call it phase 2 🙂

Phase 3 will be modifying the chassis to be be able to get the motor unit embedded and running. Ideally, it’ll allow me to use PWM to accurately control the robot speed and direction from the r/c handset stick.

Phase 4 will be re-fitting the body back on top (with modified eye LEDs – I’m hoping to get colour-changing ones in there that will be controlled by the spare stick on the r/c handset.

Phase 5 will be seeing (a) if my 4-year-old is still the same age(!), and (b) whether she likes it!

Wish me luck 🙂

2015
10/29

Category:
Computing

TAG:


COMMENTS:
Comments Closed

Raspberry Pi theremin

This was the supposed to be just a quick project to fill some time while waiting on an eBay purchase from China. I had been building up parts ready to build a simple Raspberry Pi-powered robot (inspired by articles in both Linux Format and The MagPi magazines).

The distance sensor is an HC-SR04, only a couple of quid on eBay, and I then found a simple guide on ModMyPi showing how to wire the sensor into a Raspberry Pi and read the distance in Python.

It being half-term, I had ordered the required resistors and was delighted at how easily the code work. “Fabulous!” I said to myself, “Now I just need to make it round the distance to, say, the nearest 5cm and then play a tone from there.”

How wrong can one statement be?!

After a good two days of intermittent playing, I have managed to get *something* working, basing my theremin on Zulko’s Pianoputer as I simply couldn’t find an easy way to just get Python to play a pitched tone. His code was set to use a keyboard, mine now reads the distance from the HC-SR04 and plays the relevant sound from there. In place of his “bowl.wav” I’ve grabbed (and trimmmed, and down-sampled) a clarinet sample from freesound.org and use that as my base sound, which Zulko’s code then down/up-samples to make the various pitches required, at startup.

So yes, it’s a little clunky. And yes, it can take a while to start up and transpose the various samples.

But I’m a happy geek – I built my own personal theremin!

2013
04/24

Category:
Computing
Teaching

TAG:





COMMENTS:
Comments Closed

After-school MinecraftPi sitrep

So I’ve have a few weeks of running the RaspberryPi after-school programming club and I have to say it’s been an interesting ride. In a way I’m a little disappointed with the lack of programming we’ve managed to achieve. But, on the other hand, the amount of Linux experience they’ve gained (to say nothing of the un-spoken appreciation – there’s been little to no grumbling – they’ve developed for the smoothness of systems like Windows and OSX) has been incredible.

So far, then, we’ve managed to set up and boot a RasPi. We then added configuration to try and work through the school proxy (more on that, later) and then managed to grab MinecraftPi (the “hook” I’m using to get them thinking about coding). This last week we finally managed to get a sample program working (this sample, actually, which draws an analogue clock in the sky) against a couple of the pupil’s MCPi instances.

From here, then, I hope to draw out the programming aspects of the club (using Geany to code Python against their own Minecraft instance, initially, although I hope to work up to running mini-competitions, eg building races, in one world) starting from more simple coding challenges like building a cube of a given material, working up to pyramids (well, ziggurats I s’pose, which I’m thinking must be possible with recursive calls).

So, what have I learned?

Well, it’s mostly been about what I’d do differently next time

Like, having a proxy-configured system image and working from there, instead of having to think on the hoof and get them to change configurations as we go. I could still get them to startup, update and install packages, run X and then shutdown… but I could do it from a position of strength, knowing that the proxy side of things will simply work!

Or, about double-checking the amount of background knowledge required, in order to be able to follow instructions I carefully set out, on how to set up the environment to use the proxy.

Finally, there’s a lesson in terms of not testing, testing and then re-testing (just to test that the testing was working) ideas, configuration and systems before blithely assuming that they would “all work okay” when put in front of pupils; no matter how keen and self-motivated they are, they’re only KS3 and don’t have my 13+ years of programming experience to fall back on when it doesn’t quite work first time because they mis-spelt “Aquire” or didn’t match case in a function definition.

So, one final thing about the proxy. We’re in one of the ex-EMBC counties that stuck with the Capita solution, which means we’re now using the WebShield proxy solution (albeit with custom certificates so I can now actually access Twitter across the school network) – this has been a right royal pain to work around, but for those interested, the answer seems to have been to actually put the proxy login in the configuration, as well as the proxy address.

So, for example, environment variables need to be set like http_proxy=http://user:password@webshield.embc.uk.com:80/ or, for apt-get to function, settings like Acquire::http::proxy "http://user:password@webshield.embc.uk.com:80/"; in the apt.conf file.

Anyone needing fuller details on any of this, don’t hesitate to comment/tweet me – I’m happy to answer questions.