Tuesday, June 9, 2015

I, Robot

“The Three Laws of Robotics:

1: A robot may not injure a human being or, through inaction, allow a human being to come to harm;

2: A robot must obey the orders given it by human beings except where such orders would conflict with the First Law;

3: A robot must protect its own existence as long as such protection does not conflict with the First or Second Law;"

- Issac Asimov, I, Robot

Now, I doubt that I will ever built a sentient robot, but a robot I shall endeavor to build nonetheless.

My son has been playing with Lego Mindstorms for a few years now, and I've recently begun to play and experiment with Beaglebone Black and Arduino. I must admit that I find Arduino much more compelling, even though it is clearly less powerful. However, when I am doing electronics projects, I'm doing so because I like to fiddle with stuff, and I'd rather be writing C/C++ code (or even assembler!) than coding in JavaScript or Python and interacting with the GPIO subsystem through a kernel filesystem modules.  Yes, I've seen that you can use /dev/mem for direct GPIO access, but so far the Adruino Uno seems to be right at the level that I am interested in when programming microcontrollers.

Our first goal in robotics is to build an autonomous self-driving robot that can react to the environment around it and move about the house.  I'm thinking that a simple self-driving robot with some touch sensors to detect collisions and perhaps an ultrasonic range finder would be a great first project.

But before we can build our robot, we will spend a bit of time on some simple projects in which we will learn the basics of programming the Arduino and the various other components that we will use (motors, range finders, speakers, etc.).

I started out with the OSEPP 201 Arduino Starter Kit.  It has a nice ultrasonic sensor, a servo motor and a stepper motor, plus of course an Arduino Uno.

OSEPP Uno Kit

As I document our progress in building our first robot, I hope some of the things I learn may be of interest to other people playing with the fun world of Arduino.

No comments:

Post a Comment