Arduino Adventures.. the begining

This month I thought I would try something different and explore the Arduino that everyone is talking about.  I purchased an Arduino UNO starter kit from Australian Robotics and with a few electronic components I’ve collected over the past few years (plus a few extras that I’ve gotten recently) I’m starting my Arduino Adventures.

I had played around with electronics in the past (like when I was about 10, my uncle bought me a “Dick Smith’s Funway into Electronics”) but most of it was just following along some diagrams and plans. I never really ‘got it’ or understood what was happening. Fast forward about 30 years, and after reading about electronics again and hearing about the Arduino I thought I’d give it another shot.

Arduino Adventures
Electronics Lab

To begin on my Arduino Adventures journey, I setup my ‘electronics lab’ next to my computer (as I obviously need my computer to program the Arduino).  Being neat and organised is vital when you have lots of electronic components about. It provides you with an awesome space to do your inventing (not to mention that it is fun to sort out resistors and capacitors in their own unique draws – my OCD was off the chart!). It also makes the space a little bit more cat friendly. 🙂

I’ve been following along some of the tutorials online, however I’ve really been focusing on the Arduino Workshop book and in a short space of time have built some controlled traffic lights. Woohoo! I have found this book to be quite helpful and works well with my already understanding of basic electronics (without dumbing it down too much).

Arduino Adventures
Arduino Traffic Lights

So here is the final product.  The picture doesn’t really do it justice (next time I should upload a video). Most of the logic controlling the traffic lights is coded within the Arduino itself. You simply hook up your inputs (2 buttons, one for each set of traffic lights) and outputs (3 lights for each traffic light). It is quite an awesome feeling when it finally gets working.

I’ll most likely continue with the Arduino Workshop book for quite some time and once I’ve completed it then I should have a better idea on the kind of things I can build with this little device.  I must admit it is quite addictive.  Seeing REAL physical feedback. I haven’t had this much fun with programming for quite a while. I can’t wait until I can play with motors and stuff (which are later chapters in the book).

Also, I haven’t forgotten all my other projects (such as MonsterMovie and AdventureWorld) as I still plan on finishing those at some point. It is good to have a break from them at times so I figured having some Arduino Adventures would be a good distraction.

Dear 16 year old me

Dear 16 year old me,

As part of my quest of porting over your old Microbee computer game  ‘Adventureworld‘ that you wrote back in 1990, I’ve been studying the code and trying to work out what the 16 year old me  was thinking at the time.

I realise that that you believed that this was your first real big ‘awesome’ application, but seriously you really need to learn some standards NOW before you get yourself into real trouble.

Here are some comments of your coding standards and what you need to do to improve yourself if the 16 year old me has any hope of coding in the future. These guidelines will also make it easier for your future self (and others) to read your code 20 years later. Trust me, you really need to do this!

  • Please don’t use the variable name ‘O’ for anything. Ever! I mean seriously don’t do it! Imaging having to read this line in the future and trying to work out what it means:
    IFO=8ORO=127THEN364ELSEIFO=10ORO=24ORO=27THEN365ELSEIFO=13ORO=11THEN367

    This is especially important when you are mixing up the letter O with the number 0 . Combine that challenge with a dot matrix printout of your source code where the zeros aren’t slashed,  it will create extra headache for your future self. O, 0 look the same. Dear 16 year old me don’t do it! Don’t even get me started with the variable you used called O0. It’s just madness!

  • Please put a little more thought into your variable names. Granted that 16 year old me is just learning to code, and the basic language was rather limited, but seriously if you are going to be using x,y coordinates then maybe you should use variable names such as X and Y. Don’t use B and C (where C = X coord and B = Y coord).
  • Please put some more thought into the structure of your code. The GOTO command especially is evil, Pure evil. It does have its place though – just not here. As a example, don’t do this
    22 GOSUB23:GOTO25:GOTO99
    23 ...do stuff...
    24 RETURN
    25 ...program continues...
    ...
    99 ..do some stuff..:GOTO22
    

    You are looping all over the place.  Don’t embed your subroutines within your code, and try and bring all your code together in the one place.

I’m sure if the 16 year old me followed these guidelines it will make you a better programmer, and your future self would be able to port and understand your game a lot easier. Get started on it now! OK?

Cheers,

– Future Phil.

Note: You will be pleased to know that I have matured as a programmer since the 16 year old me started coding.