Category Archives: Projects

The Elegoo Smart Robot Car Kit 3.0

Elegoo, a manufacturer of Arduino-clone electronics and kits based in Shenzhen, China, approached me to do review their new Arduino-powered Smart Robot Car Kit. It’s a neat little kit–something fun to put together on a weekend and mess around with.

As for the meat-and-potatoes, it’s got a few bugs to work out. The car runs great with the included IR remote control, and can easily be programmed to use various sensors or just traverse pre-programmed missions (a la the classic Big Trak toy from Milton Bradley). The ultrasonic obstacle detection/avoidance mode also works like a champ. However, I couldn’t get the Bluetooth functionality working. It may be that the included Bluetooth module is not compatible with the latest versions of Android (as my cursory research and troubleshooting has led me to believe) due to updates in security protocols with Oreo and Pie. Your mileage may vary, though. Also of note was the line-tracking module which had a faulty LED and would only allow the car to spin in circles.

 

My contact at Elegoo was polite and provided me with some generic troubleshooting information, but they were unwilling to replace the faulty parts. If they’re not going to do it for the review, I would assume that they would be unwilling to do it for the consumer as well, so please take note. That being said, this is the first time that I have had as much trouble with an Elegoo-branded product, as I have used their Arduino clones and passive components in the past with no issue. I hope that this experience was a fluke, but only time will tell. I do want to emphasize that these sorts of problems can and do happen with any distributor, so it is not a mark against their quality per se.

At the end of the day, I’ll likely use these parts for some other projects (the geared motors and control boards may come in quite handy later), and have no real qualms about purchasing through Amazon as you’re protected by their returns policy (provided you purchase from the listing “fulfilled by Amazon”). So, give it a try. It’s a lot of fun to build, and makes a great transition from static Lego kits to full-fledged electronics hackery!

The Elegoo Smart Robot Car Kit 3.0 is available from Amazon

Music by Anders Enger Jensen

Project Rankin: A Retro-Commercial Holiday Ornament

A child of the hyper-consumerist 80s and 90s, Matt grew up on a steady diet of sugared cereal and UHF television. As such, his sense of nostalgia is driven as much by advertising trends of the era as it is by music or other sociological elements. This leads to an interesting relationship with the winter holiday season, where seasonally-themed television commercials hold as high a place in tradition as any carol, tree, or gift exchange. To celebrate this odd bit of seasonal nostalgia, Matt builds a retro-television-themed ornament from a Raspberry Pi that plays those magical commercials from his youth and is powered by a strand of holiday fairy lights!

Engage with the element14 presents team on the element14 Community – suggest builds, find project files and behind the scenes video: http://bit.ly/2MFMG0v

Arduino Basics Lesson 2-1: “Play It Again, Sam”

For the “Arduino For Kooks” course, I recommend you get the Arduino Starter Kit available here.

Up until this point in the series, we have been using LEDs to manipulate light with the Arduino. For this project, we’re going to incorporate a piezo buzzer to manipulate sound for Maximum Annoyance Value! The piezo is a small element that vibrates in the presence of an electric current or–alternatively–generates an electric current when it vibrates.

The Circuit:

Connect jumper wires from the +5V and GND pins on the Arduino to the bus rails along one side of the breadboard. Connect a jumper from the +5V rail to one side of a tactile switch. Connect the other side of the switch with a jumper to one side of the next switch, and so on, until you have wired all 4 switches in series. Connect a jumper from the last switch terminal to pin A0 on the Arduino.

Connect the 220R, 1KR, and 1MR resistors to the switches as shown in the diagram.

Connect the ground lead of the piezo buzzer to the ground rail and the positive lead to pin 8 on the Arduino via jumper wires.

The Sketch:

/*
  Play It Again, Sam
A rudimentary Arduino synthesizer

  created 13 Sep 2012
  by Scott Fitzgerald

  This example code is part of the public domain.
*/

// create an array of notes
// the numbers below correspond to the frequencies of middle C, D, E, and F
int notes[] = {262, 294, 330, 349};

void setup() {
  //start serial communication
  Serial.begin(9600);
}

void loop() {
  // create a local variable to hold the input on pin A0
  int keyVal = analogRead(A0);
  // send the value from A0 to the Serial Monitor
  Serial.println(keyVal);

  // play the note corresponding to each value on A0
  if (keyVal == 1023) {
    // play the first frequency in the array on pin 8
    tone(8, notes[0]);
  } else if (keyVal >= 990 && keyVal <= 1010) { // play the second frequency in the array on pin 8 tone(8, notes[1]); } else if (keyVal >= 505 && keyVal <= 515) { // play the third frequency in the array on pin 8 tone(8, notes[2]); } else if (keyVal >= 5 && keyVal <= 10) {
    // play the fourth frequency in the array on pin 8
    tone(8, notes[3]);
  } else {
    // if the value is out of range, play no tone
    noTone(8);
  }
}

Commodore SX-64 1541 Floppy Drive Repair

The Commodore 1541 floppy diskette drive is notorious for breaking down. The Commodore SX-64 floppy drive is no different. As I continue my Commodore SX-64 restoration, I find that the 1541 floppy drive doesn’t read diskettes any more and makes a chattering sound when attempting to read a disk. In this video, I walk through how to diagnose the SX-64 floppy drive as well as possible remedies before finally replacing the 1541 mechanism with a standalone drive.

Commodore SX-64 Keyboard Repair

The Commodore SX-64 keyboard is usually the first thing to fail on these old systems. As such, I need to repair the keyboard on this SX-64 restoration. To begin, I’ll need to DIY an SX-64 keyboard cable from a 25-pin serial cable. I’ll use the SX-64 replacement keyboard cable to diagnose problems with the membrane keyboard itself and resurface the SX-64 membrane keyboard. Finally, I’ll rebuild the plastic shell of the SX-64 keyboard with Bondo automotive filler in order to get the SX-64 keyboard as close to the original stock look as possible.

Commodore SX-64 Blank Screen Fix

In my quest to restore the Commodore SX-64, my first obstacle was the lack of video signal on the internal monitor. I needed to diagnose the Commodore SX-64 video signal before I would be able to move on to any other Commodore SX-64 repairs. In this video, I will go through the process to diagnose a Commodore SX-64 blank screen and step through how to repair a Commodore SX-64 blank screen. In this video, I’ll go over how to build a DIY Commodore AV cable, how to reseat Commodore chips, and how to replace a Commodore PLA chip.

Check out more Commodore SX-64 videos here

Watch the complete Commodore SX-64 restoration here

How To DIY Commodore 64 AV Cable

I was having a little trouble working on my Commodore SX-64, trying to diagnose a blank screen, so I needed to attach the Commodore 64 to a TV. Unfortunately, with these retro computers, the cables seem to vanish into the dustbin of history. So, to fix my borked Commodore SX-64, I needed to hack together a DIY Commodore AV cable. This 5-pin DIN AV cable is compatible with all Commodore models as well as the Atari 800 series and TI-99/4 among others! This video will show you how to DIY a Commodore 64 AV cable with just a few commonly-available components!

Check out more Commodore SX-64 videos here

Watch the complete Commodore SX-64 restoration here

Music by EOX Studios

“Pausesignal NRK” by Anders Enger Jensen Used with permission, available from http://eox.no or on SoundCloud https://soundcloud.com/eox-studios/

Jon’s Crazy Commodore SX-64 (Retro Tech Rogue Trip 01)

My friend Jon Esparza (@jonscrazytweets) discovered a rare Commodore SX-64 while going through his late father’s storage unit. Knowing that I was a retro computer enthusiast, he gave me a call to see if I was interested in doing something with it. So of course I took a road trip to south San Diego to see this “Commodore laptop” in person (and get some bomb tacos)! Jon was kind enough to let me take this Commodore SX-64 off his hands and see if I could get it in any better shape than it’s currently in. This is going to be a rough Commodore restoration, so be sure to stay tuned for the next installment!

Check out more Commodore SX-64 videos here

Watch the complete Commodore SX-64 restoration here

Check out Jon’s Crazy Stuff: http://jonscrazystuff.blogspot.com/

Music by EOX Studios “You On The Dance Floor” by Silverimage “Space Traveler” by Anders Enger Jensen Used with permission, available from http://eox.no or on SoundCloud https://soundcloud.com/eox-studios/

Arduino Basics Lesson 1-4: “These Peoples Try To Fade Me!”

For the “Arduino For Kooks” course, I recommend you get the Arduino Starter Kit available here.

So far, in this series, we have learned to read and write digital information with an Arduino. We have also learned to read analog information with the Arduino and a potentiometer. In this video, we will learn how to send pseudo-analog signals from the Arduino to a device by fading the light on an LED.

The Circuit:

Connect a jumper wire from pin 9 on the Arduino (9 is an analog out pin as denoted by the tilde [~] sign) to a 220R resistor. Connect the other end of the resistor to the anode of an LED. Connect the cathode of the LED to the ground pin of the Arduino using another jumper wire.

The Sketch:

/*
  Fade

  This example shows how to fade an LED on pin 9 using the analogWrite()
  function.

  The analogWrite() function uses PWM, so if you want to change the pin you're
  using, be sure to use another PWM capable pin. On most Arduino, the PWM pins
  are identified with a "~" sign, like ~3, ~5, ~6, ~9, ~10 and ~11.

  This example code is in the public domain.
*/

int led = 9;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 5;    // how many points to fade the LED by

// the setup routine runs once when you press reset:
void setup() {
  // declare pin 9 to be an output:
  pinMode(led, OUTPUT);
}

// the loop routine runs over and over again forever:
void loop() {
  // set the brightness of pin 9:
  analogWrite(led, brightness);

  // change the brightness for next time through the loop:
  brightness = brightness + fadeAmount;

  // reverse the direction of the fading at the ends of the fade:
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  // wait for 30 milliseconds to see the dimming effect
  delay(30);
}

What happens if we change the delay attribute?

What happens if we change the value of the fadeAmountvariable?

As a challenge, see if you can figure out how to use a potentiometer to control the fade effect–either through the rate of the fade or the brightness.

Arduino Basics Lesson 1-3: “Analog Input!”

For the “Arduino For Kooks” course, I recommend you get the Arduino Starter Kit available here.

In the previous lesson, we learned how to use a button to create a simple digital input on the Arduino. We also learned how to use the serial monitor to display the button state. In this lesson, we’re going to use a potentiometer to create an analog input and read it on the serial monitor.

The Circuit:

Connect a jumper wire from the +5V pin to pin 1 (the left pin, input, if you’re looking down the shaft) of a 10k potentiometer. Connect a second jumper wire from pin 2 (the right pin, ground) to the ground pin on the Arduino. Connect a third jumper from pin 3 (center pin, signal) to A0 on the Arduino.

The Sketch:

/*
  AnalogReadSerial

  Reads an analog input on pin 0, prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}

Now, with just a few more lines of code, you can determine the actual voltage going through the potentiometer and into the Arduino:

/*
  ReadAnalogVoltage

  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}