A robot designed for control from anywhere in the world

I’ve spent the last week on-and-off building a robot so I could remotely watch my house when on vacation. What I’ve built is hugely overkill, but it works great and it’ll be easy to repurpose in the future. It has a massive LED on the front, way too much torque, a Linksys WRT54G for transmitting and receiving data, and an Arduino Mega 2560 as a brain.

IMG_0101 IMG_0102 IMG_0103 IMG_0104 IMG_0105

Let’s start with the motors. I am using two drill motors. I bought the drills at Value Village, a local thrift store, for roughly $5 a piece. They weren’t the same voltage, so I have to use software so the robot doesn’t drift. They are extremely powerful; The robot was able to pull around a cart with a very heavy marine battery on it. I could probably pull more, but the limitation was that there wasn’t enough weight above the wheels, so the wheels would spin. I have the motors software limited to roughly 40% of their maximum power, because at 100% they’re incredibly fast.

For the motor drivers, I’m using a pair of BTS7960’s. With a maximum current of 43A, they are massively overkill for the drill motors. Both motors together, when stalled, draw around 10 amps. I imagine if the put the throttle at 100% I might get closer to that 43 amp limit. When driving the robot, the heat sinks don’t even get hot. Because of my frugality, I previously tried to use relays, in an H-Bridge, to drive around. It would have worked, if it wasn’t for the motors being way too fast at 100% power.

On previous robots, I’ve always had a problem with traction. This was due to using wheels from things that were designed to be pushed, for example, the wheels off a stroller. I’ve solved that problem – About a year ago, I saw a very hefty R/C car at the side of the road. I’ve kept the wheels, the motor, and the servo, but threw out the chassis. The wheels are also very hefty, and have no problem getting a grip. One slight problem I have is there isn’t enough weight above them, so they have a tendency to spin.

To mount the wheels to the motor shaft, I had to use a 3D printed part. At first, I just had the shaft screw into the part, but they kept shattering, so I found locknuts to go on the end of the motors, and I designed a part that could fit the lockut. The other end of the part has a few mounting holes – extras, even – and the wheels mount with two screws(which is a lot more secure than it sounds)

The robot also has a flashlight. I used a 30W LED and driver, which is way overkill, but it’s just what I had lying around. (I used it on my bike at night once, with a lead acid battery strapped to the side, and I lit up the entire width of the street and then some!) The driver is just an adjustable step-up converter, rated at 150W. It’s controlled by a 2 channel relay, giving me an extra channel for later.

Oh, and this robot actually has a proper fuse box, which is better than what I used to do, which was to just not mess up. Each motor has its own fuse, the LED has its own fuse, and the final fuse is for all electronics. I probably should have added another fuse between the battery and the power distribution screws, which provide power to the fuses.

For power, I have chosen to use a modest 12V 7AH lead acid battery. I put it right above one of the motors, which helps greatly with traction. I might upgrade to 2x 18AH 12V batteries, one above each motor, but for now, I still get about 2 hours of battery life. I also have a trailer with a marine battery, which should give me a lot more battery life once I add some weight above the wheels.

Power management is interesting. There are two very thick wires between the battery and two screw terminals – One negative, and one positive. There are 4 wires coming off the positive screw. Each goes to a different fuse. There are 6 wires coming off the negative screw, since some fuses have more than one device attached to them. There’s also a USB battery on top of the robot. This is to power the IP camera. While there’s no reason not to get a 12V to 5V converter and connect it to the same source, there’s also no reason to change. The battery is basically weightless, since it’s lithium based, and it runs longer than the lead acid. I had a 12V to 9V switching regulator laying around, so I used it to power the Arduino, to raise its efficiency slightly higher than it would be if I just fed it 12V.

What I’m sure you’ve noticed is that there are two layers. I actually physically ran out of space on the first layer, so I had to add a second layer. They are separated by 4 3D printed parts. I could have used wood, and it would have been stronger, but I have to cut all wood with a handsaw and it was a lot easier just to design and print instead.

I wrote all software myself, from scratch. Actually, that’s a lie, I borrowed some code from previous robots, but I improved upon it a lot for this version. First of all, the software was originally designed to run on a much smaller robot, which meant there were no safeguards. For example, if the robot was going forward and the connection dropped, it would keep going forever. I was able to fix that in this revision, so if no command is received for 250ms it cuts the motors and the light. It’s also able to gracefully recover from an unclean disconnect, instead of requiring a reset, which wouldn’t have been good if I was 1000 miles away. If no command is received for 2500ms, it terminates the client, allowing for it to start looking for another. Oh – and if one person is driving the robot, it doesn’t allow any other connections.

The software is up on git: here

In conclusion, this robot will easily serve its purpose, and then some. I spent around $100 CAD on it in total, which is a very modest price for such a powerful machine. If I had a chance to redo it, I would have given it some slightly bigger batteries, and I would have positioned them above the motors to give me more torque. After attaching a blade to its bottom, it should make a very good autonomous lawnmower.

Here’s a video of it in operation:

WIP: A Betavoltaic Cell to Power All the Things

While browsing Thingiverse, a 3D model hosting site, I stumbled upon this. It’s a betavoltaic cell, meaning it generates electricity from a source of beta waves. In this case, beta waves are generated from a small vial of tritium gas. The beta waves excite phosphorous, coated on the vial, which powers a small array of solar cells. Tritium-fueled betavolatic cells can provide power without intervention for up to 20 years! I found some flaws in his design, though, so I’m designing my own.

The main problem with the design I found is that it uses extremely inefficient solar cells. The cells only have about 45% of their surface area as photovoltaic material, meaning the rest is wasted. The tritium vial puts out minimal light, so every photon counts. Furthermore, I wasn’t able to find a panel of the same size that would still fit, while using the full surface area. My design uses these. They aren’t much bigger, but have 5 times the power output, which is a colossal difference.

There is still research to do before maximum efficiency can be achieved.For example, at what light level do the solar cells perform most efficiently? The more panels are put in a betavoltaic cell, the less light each one gets. If their efficiency was perfectly linear, it would even out, and the betavoltaic cell would generate the same amount of power no matter the number of solar cells, so less solar cells would be better due to the reduced cost. However, this is the real world, and nothing is ever that perfect. Solar cells will have a peak efficiency at a certain light level. That peak efficiency determines the ideal number of cells.

The betavolatic cell. Unpainted.
The betavolatic cell. Unpainted.
The render of the cell. This is what it will look like when painted.

The files to make your own can be found on my git server.



Kinect as a Greenscreen

While looking for an old project on my hard drive, I happened to stumble upon a different project – A Kinect-enabled green-screen that I wrote months ago. The idea is it uses a user-defined threshold to determine what pixels to replace. The default is 2000mm, or 2m. Any pixel closer than that is counted as ‘foreground’, and the corresponding background-image-pixel will be replaced with the pixel from the Kinect camera. This method has a massive advantage: No special lighting, background, or equipment is needed. Not even a flat wall is needed!

Of course, I wrote the program as a proof of concept more than anything. As such, there is no option to record – It just presents the modified image in real time. In fact, many variables that are now customizable through the GUI could only be changed within the code before I rediscovered the project and decided to improve it slightly.

The code can be found here.

Of course, feel free to contribute. I’ve included a TODO list of features that I’ve neglected to add.

Shooting Down Drones With the Kinect

Hi all!

I’ve started working on a new project, to shoot down quadcopters and drones, primarily using an Xbox 360 Kinect. The idea started as a joke back in 2014, shortly after Amazon released its Amazon Prime Air video that went viral. A friend and I came up with the idea, as a joke, of course, to go after the drones for their items. Finally, a few weeks ago, I remembered that idea and thought it would be fun to build it.

Although it isn’t finished yet, it uses 2 nema 23 stepper motors, 2 stepper motor drivers, an Arduino Mega(way overkill) and a 24V 10A power supply. I had all these laying around from a previous project which didn’t work out. Eventually, I plan on attaching an EMP device, although the original plan was to use a HERF gun. The reason I changed my mind is because an EMP isn’t harmful against humans, and also allows me to release a lot of energy in a burst. Also, I’m going to mount a Mini ITX board on it, because right now I have to connect it to my desktop whenever I want to use it.

I wrote the code from scratch in C#. It communicates via Serial to the Arduino and uses the Kinect SDK. Furthermore, it has a graphical interface that allows me to see what the kinect sees, and also shows if it’s moving up, down, left, right, or is in the correct position already. Basically, it finds the object that is closest that is still within $minDist and $maxDist, and moves the Kinect accordingly so it is within $threshold of the center. These are the only 3 configurable variables.

I designed the frame myself, and 3D printed it. The frame mounts onto a large wooden stand that I found in my basement. It’s very sturdy, and if a part ever breaks, I can just print a new one!

The total cost of this project, so far, would be around $150, but with more appropriately sized parts, it would be possible for less than $75. These figures are in CAD and they only include the electronics/the motors. Of course, the EMP device is what will cost the most, due to the capacitor bank it will need.

I don’t ever plan on using this on drones, because that would be extremely illegal and a terrible idea in general. This is nothing more than a proof of concept and should not be attempted.

Here are some pictures and a video in operation. Due to the clutter in my room, it kept losing focus on me. Outdoors, it works much better, which is where it will be operated anyway.

Photo-2015-12-12-17-47-03_0851 Photo-2015-12-12-17-47-10_0852 Photo-2015-12-12-17-47-18_0853 Photo-2015-12-12-17-47-21_0854

Update: I have uploaded all the files to github. Currently, it is going through a major redesign. Also, I’ve created a page on Hackaday.io.

Git: https://git.scd31.com/laptopdude90/drone-defense-system

Hackaday.io: https://hackaday.io/project/8859-a-ground-based-drone-defense-system

Cooking toast on a 3D Printer

3D printers are amazing machines. They can take spools of plastic, and make virtually anything you want. But the real question is, can they cook toast?

Hi all. I had an old heated bed and matching glass that I temporarily used when my 3D printer was out of order. In theory, it could reach a temperature of 130C. Would this be enough to toast bread?

I attached some spade connectors onto the heated bed wires, which I had attached previously. Connecting the whole thing to a SLA battery, I could quickly feel it heating up. I used a piece of glass to keep it from heating up the counter top too much.

So, how did it work out?

After leaving it on the bed for around 20 minutes – 10 minutes on each side – I tried out the toast. It was warm on the outside, but the inside was still ice cold. So, unfortunately, I ended up with only slightly toasted bread.

If I wanted to improve upon my toaster, I would sandwich the toast between 2 heated beds, and I would put something heavy, like a brick, on the top. This would ensure good thermal contact, and would also keep the heat in. I think it could have worked out that way, and it would half the toasting time – the bread wouldn’t have to be flipped.

The heated bed I used.

I Got a 3D Printer!

Hi guys!

I bought a 3D printer! I purchased it from Newegg. With tax and shipping, it cost roughly $588.

I got the Davinci 1.0a. According to the internet, it has a few minor problems that could easily be fixed. When I got mine, I didn’t have any problems and it worked perfectly. Still, I installed Repetier firmware so I could use my own filament rolls.

I have ordered a 1kg each of red, orange, green, and glow in the dark filament.

Already, I’ve printed out a calibration board, a key chain, a pan/tilt servo camera mount, and replacement parts for the 3D printer in case it breaks. Currently, I am printing a spool holder for the extra spools, which are supposed to arrive tomorrow.

Using a cheap HDMI to VGA converter with a Chromecast

Hey all! A got a Chromecast for Christmas, which I was happy about, but my projector doesn’t have an HDMI port. Doing some research, it seemed nobody documented which adapters do and do not work with the Chromecast. I found a cheap $10 one on Ebay, pictured above. It has no power input, which worried me, because that often means it is not an ‘active’ type converter.

It came in the mail today. I hooked everything up, and sure enough, it worked! I’m linking the actual Ebay item, so you can buy the same one and be sure it works.


The Inside of a Solid State Relay from Ebay

Hi all! Sorry I haven’t posted in months, I’ve been really busy with various things!

I ordered a solid state relay off of Ebay for my project, which I’ll post on here when it’s done. It worked fine for a couple of days, but eventually, it failed in the open position. I used plenty of thermal paste, a large heat sink, and all I was driving was some christmas lights, so I was sure it wasn’t me. Either way, I contacted the seller and they sent me a new one for free.

Opening the dead relay was harder than I expected. In the end, I had to chip away at the plastic until it came off. It took about half an hour in total.

I couldn’t get it apart any more than I did, because the whole thing is covered in a weird solidified goop.

It doesn’t look as unsafe as some people say about Ebay relays. The low voltage side and high voltage side are far apart. The high voltage side has traces that definitely can support 25 amps, which is what the relay is rated for.

I tried to get the triac off to see if it had thermal paste behind it, and to see if it had anything visibly wrong with it, but the gunk was in the screw and I couldn’t get it out, unfortunately.

Pictures of the inside below.

The bottom of the PCB. The right is the load/high voltage side. The left is the input/low voltage side. See the lines in the solder on the right? That’s where 2 of the triac terminals went, far from each other and far from the low voltage side.
The top of the board, covered in solidified goop. Left is low voltage, right is high voltage.
The bottom of the relay. The triac is mounted on it. It’s made out of metal, but it’s hard to tell with all the goop on it.

I tried to make a custom PCB today…

It didn’t work.

First, I designed my board in Eagle. The board was to connect my servos to my Arduino, plus some other accessories. It was going to be for my robot Dalek.

Next, I printed the board onto clear paper. I purchased the paper off of Ebay, and it said it was compatible with both Inkjets and Laser-jets. I think this is where I went wrong: My inkjet is too low quality to print PCBs. I am going to try using my dad’s laser-jet sometime.

I put the clear paper against my PCB, and put a 15 watt fluorescent light about 2 inches above it. I left it there for about 15 minutes.

Once it was done, I mixed some MG Chemicals 418 with water, 1:10. I put the board in, and at first, I saw the outline of my board! But as I washed the board, it faded. This is what I’m left with.

2014-07-03 14.28.26 2014-07-03 14.28.40

It’s hard to see in the picture, but there is a tiny trace of my schematic. Can’t wait to try again with the laser-jet!


Project Ideas

Hi guys,

This is a list of project ideas I’d like to do sometime, more for me than for you.

Weather Station:

  • Located at backyard lake
  • Waterproof security cameras
  • Communicates via wireless to house
  • Records rainfall, lake temperature, lake salinity, barometric pressure, temperature, wind speed
  • Small internal hard drive in case of server outage
  • Backup batteries
  • Motion detector and alarm inside
  • Solar powered
  • Antenna at home to communicate with NOAA satellite
  • Powers off less vital equipment as power starts to drop, security system last

Weather Balloon:

  • Takes many different readings
  • Sends live to base station in case of data failure
  • NTX2 transmitter
  • Beaglebone Black


More will be added in the future! Thanks for reading!