Ping-Pong Press!(opens in new tab)
My robot was written about recently on the Raspberry Pi foundation blog (now seemingly removed š¢, but still available on archive.org), and now on the Pololu blog too, the place I originally got my tracks from!
Curated river of news
Latest posts from blogs I follow
My robot was written about recently on the Raspberry Pi foundation blog (now seemingly removed š¢, but still available on archive.org), and now on the Pololu blog too, the place I originally got my tracks from!
I took my robot to RubyConf. Itās not really Ruby related, but I figured it would go down like a robot at a programmers conference⦠So I took the robot apart, packed it away and headed to Miami: The view ...
I added a prototype lifter arm to my robot yesterday. It needs re-doing (itās unreliable and heavy) but it works for now. Iām using a new motor driver circuit for it as I burned out the SN754410 motor driver I ...
I programmed some remote control software using a Golang receiving program on the robot and a ruby control client using my gamepad ruby gem and an Xbox 1 controller. It worked OK. It was a bit jerky, thereās no PWM ...
Prototypes and rejects from the 3d printer. All part of the design process for my robot: Rejected and prototype 3D printed componenets
I spent all day at hacman Tuesday and Wednesday printing and tweaking robot parts. I put it all together when I got home. This is the front, the lifter arm has holes to allow me to screw in different attachments, ...
First test of the Raspberry Pi running off battery power with no external supply at all. In the picture the 5000mAh battery is the object at the back with ā5000ā written on it. My multimeter is measuring the voltage output. ...
Today I printed out and glued together the first iteration of the ping-pong ball hopper that takes up most of the space of the robot. The assembled hopper Full of ping-pong balls, I can get 12-14 in without packing them ...
I needed to re-design the motor mounts on the robot base, they didnāt hold the motors securely enough and tended to shift around. The new mounts are better fitting and include a small wedge that fits between one of the ...
I printed out the front half of my Raspberry Pi camera module mount. It serves two purposes, providing a way of mounting the camera on my robot, and giving me a place to attach the wide-angle lens Iād bought earlier. ...
Testing the robot power requirements Before I pick a battery I need to know what power requirements my robot is going to have so I took it into the hackspace to test. I hooked it up to one of the ...
The Raspberry Pi camera doesnāt have a field of view that is wide enough for my robot, Iād have to mount it really far from my robot to see enough context to make it drivable so Iāve bought some wide ...
The robot base design from my previous post printed OK. Here it is printing: Robot base 3D printing The finished print. The two small separate objects are the motor covers: Completed robot base print The assembled robot, including Raspberry Pi ...
Iāve re-designed a prototype robot mount in OpenSCAD as Sketchup wasnāt up to the job. It took a while, you have to program the model in a text editor so thereās lots of trial and error. Will have to wait ...
It works, but it needs more refinement. Testing the new motor mount
Printing a motor / caterpillar track mount detail The 3d printer at work
Designing a track mount for my pololu caterpillar tracks. Sketchup is trying very hard to prevent me. Pololu track mount design in progress
I soldered together my MotorPiTX motor controller today and fitted it to the robot: The robot with MotorPiTX board Itās a hell of a lot neater than my original effort, and only trails one wire. It goes forwards and backwards ...
One of my new motors. It's about 10mm in diameter Iāve started work on a top-secret project. I canāt really hide the fact that itās going to be a robot, but Iām not going to say what it is, at ...
Java annotations are syntactic meta-information that can be added to your source code. You can annotate classes, methods, variables, parameters, and even packages. The primary advantage of annotations over Javadoc tags is that they can be reflective. This means the ...
A Piglow glowing A few days ago I got a Piglow. Itās a fairly useless but fun addon board for the Raspberry Pi that has 18 individual user controllable LEDs arranged in Arms/Legs/Tentacles (whatever you want to call them). There ...
A completely incomplete guide to packaging a Python module and sharing it with the world on PyPI.
Google killed its Reader and my beloved Reeder for Mac and iPad officially wonāt get updated in time. I think to have found an adequate setup to replace both.
Even though Java 7 introduced a low-level API to watch for file system changes (see the article here), you also have the option of using the Commons IO library from the Apache Foundation, specifically the org.apache.commons.io.monitor package. The first step ...
A list of best practices for writing bash scripts: Use a portable shebang In computing, a shebang is the character sequence consisting of the characters number sign and exclamation mark (#!) at the beginning of a script. (source wikipedia) Use: ...
Contents Introduction The Binary Heap Why use a Heap? The code Defining the data Implementation Testing Introduction In Computer Science, a Priority Queue is an abstract data type similar to a standard Queue, but with a critical distinction: every element ...
Contents Introduction The Algorithm Implementations Scala Python Haskell Introduction One of the earlier challenges from Programming Praxis was the RPN Calculator. The goal is to create a module that evaluates Reverse Polish Notation (RPN) expressions. RPN is a mathematical notation ...
Introduction If youāve ever tried to write your own calculator, youāve probably needed a way to convert mathematical expressions written in the usual infix notation into Reverse Polish Notation (RPN). This post walks through that conversion using the classic shunting-yard ...
Update (2026): This was the first 'real article' I ever wrote. It actually dates back to before 2010, though I didn't publish it until later. Iāve made a few tweaks here and there, but the original 'old code' remains. Please ...
My first blog post, in which I am writing Hello World!. #include int main() { long long h = 0x0A646C726F57206FLL; long long e = 0x6C6C6548; printf("%.4s%s", (char*)&e, (char*)&h); return 0; }
A lot of the SVG filter primitive content out there is some really rad, deep-dive type content (Iāll link some of these at the end!), so I reckoned it might be nice to do a quick write-up on some effects ...
I have this weird relationship with Incredible Amounts Of Grief where, like, Iāve literally been there ā I know thereās nothing to say, and nothing will heal but time. When The Bad Thing⢠happened, I felt angry so often with ...