Skip to main content

Posts

Showing posts from August, 2016

Arduino Rover #2

My second rover is coming together.  The advantage of a ground rover is that it cannot fall out of the sky, so one tends to get rather more hours of amusement out of it than from a helicopter or fixed wing toy aircraft. The first rover worked, but it was too complicated.  The problem with all toy projects is that I tend to forget what I was doing with it and I like to 'work' on multiple things at the same time.  My shop currently has a glider, a valve guitar amplifier, a VU meter, multiple radio transceivers and this rover all in various stages of incompletion.  Therefore any project needs to be modular and simple, so that I can see what is going on at a glance.  Otherwise, it ends up in a corner, gathering dust, rather sooner than later. Rover #2 uses the Sparkfun Arduino Redboard for its brains and it is meant to be completely autonomous.  Addition of RC makes it too complicated and hard to maintain, so I ripped all that out (and it can now go back into the 2m electr

Arduino LCD Button Shield

The Sparkfun LCD shield works very well.  It has five buttons wired to a single analogue input, which is a neat pin saver.  However, the example code is much too complex to my liking.  Granted, it can handle multiple simultaneous button clicks, but who on earth will ever do that?  So I made something simpler: #include <LiquidCrystal.h> // LCD uses D4 to D9 and A0 for buttons LiquidCrystal lcd( 8, 9, 4, 5, 6, 7 ); void setup() {   lcd.begin(16, 2);   lcd.setCursor(0, 0);   lcd.print("C'mon click it!"); } void loop() {   unsigned char key;   unsigned int sensorValue;     sensorValue = analogRead(A0);     if(sensorValue < 1000)   {      sensorValue = analogRead(A0);           lcd.setCursor(0, 1);      lcd.print("                ");           lcd.setCursor(0, 1);      lcd.print(sensorValue);      if ((sensorValue > 600) && (sensorValue < 620))      {        lcd.print(" Select");      }      if ((sensorValue > 840) &&

Minimalist Arduino GPS Parser

The Sparkfun Redboard and other toys can be a lot of fun indeed.  What I like about the Arduinos, is that the board support packages are very good and it is very easy to intersperse regular C with the simple Sketch code. Here is a minimalist on the fly parser for NMEA GPS data positioning that I've been playing with.  It receives and analyzes one byte at a time, so there is no delay.  You have the data the very moment it is available: // Minimal GPS Parser // Herman Oosthuysen, 2016 #include <string.h> #include <SoftwareSerial.h> // GPS serial: 9600N81 // Example GPS data capture //$GPGSA,A,3,11,31,27,14,,,,,,,,,2.09,1.85,0.96*08 //$GPRMC,155741.000,A,2413.4311,N,05541.2983,E,1.19,45.34,240816,,,A*5D //$GPVTG,45.34,T,,M,1.19,N,2.21,K,A*03 //$GPGGA,155742.000,2413.4313,N,05541.2985,E,1,4,1.85,263.9,M,-29.9,M,,*77 //Time, Lat, North, Long, East, Fix: //$GPGGA,155743.000,2413.4317,N,05541.2986,E,1, //Heading true, heading magnetic, speed knots, speed kph //$GPVTG,4

Audio VU Meter

I have a bunch of dinosaur era Magic Eye tubes which I got from the Tubes-Store in Chellyabinsk and was wondering what to do with these roughly 100 million year old little cathode ray bulbs.  An audio VU meter with a microphone pickup could make a nice magical flickering display as I originally described here: An Angel Dancing On a Pin Head . Audio VU Meter - The First Flickers The example Rusky circuit works, but it needs much more gain to work with a microphone, instead of a direct hook-up to the preamplifier of a guitar amplifier and it needs a power supply of sorts.  So, I dusted the old circuit off, hooked up a little triode as a preamplifier to drive the display tube and my prototype worked.   Moving the resultant rat's nest from the breadboard into a proper display case was another matter though. Eventually, I redesigned the whole circuit when I rebuilt it, and rewrote most of this article. Note that at audio frequencies, any old tube will work.  If you have a weird

FM Crystal Varicap Tuner

I like to keep things simple, but I also like to make things that are a little unusual. To go with my Valve Amplifier , I wanted to make a simple radio tuner.  Where I live, there is a powerful FM transmitter almost in my back yard.  It is very strong and overpowers all other transmissions, so the only FM station that I can receive is Abu Dhabi Classic .  That gets rather trying after a while, but why not turn it into an advantage? Since the radio transmission is very strong, it can be detected with a simple tuned circuit and a non-linear element - there is no need for a complex discriminator or PLL. For an intuitive explanation of how it is possible to demodulate FM with an AM detector: If you tune an AM receiver adjacent to an FM signal, then when the FM signal is closer, the AM signal will be stronger and when it dithers further away, the AM signal will be weaker - that way, a simple envelope detector can detect a FM signal.  Some call this a slope detector. Crystal sets