AVR basics: reading analogue input

It’s an increasingly digital world, but not all information comes packaged neatly in 1s and 0s. Sometimes you have to deal with analogue voltage levels using the microcontroller’s analogue to digital (ADC) converter. Measuring analogue voltages is made easy in Arduino projects because the IDE comes with a handy analogRead() function. Providing your input voltage does not exceed what the… Read more »

Sheldon robot: remote control

      No Comments on Sheldon robot: remote control

With any robot, it’s always useful to have some form of remote connection, if not full remote control. The question is how to achieve this. By the way, in this post, I’m definitely in ‘thinking out loud/workshop notebook’ mode, because nothing described here is finished. I’m just playing with concepts. Now, when I mention ‘remote control’, I’m not talking about… Read more »

Sheldon robot: smart sensors

      No Comments on Sheldon robot: smart sensors

Microcontrollers can be busy little beasts. That’s because we load them down with jobs to do  – sometimes too many jobs. In the main loop of an Arduino, AVR or whatever microcontroller takes your fancy, we often spend time polling sensors and then throwing away the data as uninteresting. On the robots I’ve built in the past, for example, that polling… Read more »

Sheldon robot: semi-autonomous motion control node

The overall architecture of the Sheldon robot is going to be modular. Aside from a central computer (probably a Raspberry Pi or some such), there will be multiple computers or microcontrollers each managing some sub-system. And the first of these is for motion control. I decided on this hierarchical approach because of previous experience building robots. Most of these were… Read more »

Sheldon robot: exploring the hall effect sensors

The 9V motors on the T300 robot vehicle are each fitted with two hall effect sensors that act as encoders. I figured I’d take a closer look. The two sensors are positioned to read a magnet attached to the rear of the motor’s shaft. They are quite close together so that, as the magnet rotates, one will be triggered very… Read more »

Sheldon robot: motor encoder connections

The 9V geared motors fitted to the T300 tank, which forms the base vehicle for my Sheldon robot project, come fitted with encoders. I’m not sure I need these, but they might be useful to have. But first I had to do a little simple reverse engineering to work out how to connect them. Each motor has a six-pin connector,… Read more »

Sheldon – the soft robot

      No Comments on Sheldon – the soft robot

A comment over on Reddit made me realise that I haven’t yet mentioned a key characteristic of my Sheldon robot project – inaccuracy. I mean, I could* built a robot with incredible precision that would be able to locate and move itself to tolerances of fractions of a millimetre. Think of those amazing pick-and-place robots that populate circuit boards with hundreds… Read more »

Sheldon robot: controlling the motors

Many beginners’ guides to electronics teach you how to build motor controllers using mosfets, H-bridge circuits and all that good stuff. And maybe I’ll get around to doing that one day. But to get this robot project up and rolling, I decided to go for an off-the-shelf motor controller. I’ve used many before, including Arduino shields from Adafruit and Snootlab…. Read more »

Sheldon robot: architecture

      No Comments on Sheldon robot: architecture

Right from the beginning I knew that the Sheldon robot would have a multi-processor architecture. This appeals to me the same way object-oriented programming appeals – you can create a modular system in which each part does a specific task and can be treated like a black box. The structure will be hierarchical. At the top – what I’m going… Read more »

Sheldon robot: the base vehicle

One of the things that spurred my current interest in electronics was a resurgence of my fascination with robots. And so, here we go with another project – a robot base vehicle that I can use for experimenting with sensors and algorithms. (Technically, this is not a new project – it’s a new start to a years-old project, but anyhoo…)… Read more »

First BBC Basic program: mission creep

It’s always the same. “I’ll just hack out this quick program,” you think. And you get it to the point where it works and does the job you intended it to do. But then: “Maybe it would be nice if it also did this…” And even when you’ve added all the functionality the program will bear, and your wife is… Read more »

A home for my BBC Micro DataCentre

In the last post, I mentioned how I’m using a RetroClinic DataCentre to make it easy to transfer files between the BeebEm emulator on my PC and my real BBC Master 128. A USB memory stick plugged into the DataCentre becomes my main disk drive (*DRIVE 5) for program files. It also holds floppy disk images (single-sided .SSD and double-sided… Read more »

Programming the BBC Micro with ease

No, this isn’t going to be a tutorial on BBC Basic. Nor am I about to offer programming tips and tricks. This is about being comfortable while hacking. In the last post I wrote about recreating the first serious program I ever wrote on the BBC Micro. And I mentioned that I’d written the code using the BeebEm emulator running on… Read more »

First time with BBC Basic

      No Comments on First time with BBC Basic

So what was your first program? You know, the first one that meant anything. My guess is that when you unwrapped your first home computer (mine was a Sinclair Spectrum 48K) the lines of code you typed were little more than snippets – changing some colours on the display, perhaps, or making rude words scroll endlessly down the screen. You… Read more »

Feels like 2001: a fresh Windows XP install

Ah, there’s nothing quite like the feel of a fresh, crisp OS install. It’s just that the OS I’ve just installed is Windows XP. Now that makes no sense… Or does it? As I’m now playing with my BBC Master again, I felt the need for a Windows machine to have alongside it. There’s a bunch of utilities that run… Read more »