Category Archives: DIY Projects

Homemade Remote Controlled Spycam

Homemade Remote Controlled Spycam

Spycam’s are cool, but mobil spycam’s are even cooler! Using a Raspberry Pi, a webcam, and an old RC car, we’re going to learn how to make a web controlled spycam!

STEP 1: Gather The Parts

If you want to follow along with this project here’s a list of parts you will probably need to order. The more parts that you already have, the cheaper this project will be.

    1. Webcam = $5
    2. RC Car = $12
    3. Raspberry Pi = $35
    4. Motor Controller = $4
    5. Wireless Adapter = $8

STEP 2: Connecting the Components

If you recall, a few months ago, I showed how to create a Smartphone controlled RC Car. As we did for that video, you’ll want to gut the current electronics from the RC car (except for the motor and battery pack) and replace them with the L298N H-bridge motor driver.

Using the GPIO pins on the Raspberry pi, you can connect it to the motor controller. Use the schematic to your left for reference, but here’s the basic outline:

          • GPIO 4 >> INA
          • GROUND >> GROUND
          • GPIO 17 >> INB
          • GPIO 21 >> INC
          • GPIO 22 >> IND
STEP 3: Writing The Code
Installing the OS

As with all new Raspberry Pi installations, you need to download and install the OS. The OS we’ll be using is the Raspbian OS. Clicking that link will download an image file that you will then need to burn to an SD card.

If you are using Windows, then you can burn the image using Win32DiskImager. It will take several minutes to complete, but when it’s through you can eject your card and install it in your Raspberry Pi device. Then with a keyboard, mouse, monitor and wireless plugged in, plug in the power and let it boot up.

Setting up the OS

Once the Raspberry Pi boots up, you’ll be greeted by the configuration screen. Basically, you can configure it however you see fit, but here’s a list of my suggested changes:

        1. Expand Filesystem (Expands the files to use the entire SD card)
        2. Enable Camera (use this option if you have a Raspberry Pi branded camera)
        3. Overclock (useful if you want the streaming software to run faster. I used the 1 Ghz setting)

If you are not from the UK, then it’s a good idea to also go into the internationalisation options and change the keyboard layout to match your country. Otherwise, choose Finish and let the Pi reboot.

After it’s back up, it’ll prompt you for a username and password. The default credentials are “pi” for the username and “raspberry” for the password.

Once you’ve successfully logged in, we need to set up the Raspberry Pi to connect to your wireless. The easiest way to do that is through the desktop interface, so to launch it, type


Now you can run the wireless configuration program and use it to scan for your wireless signal and connect to it. Then you can logout of the desktop to get back to the command line interface.

Installing the Streaming Software

Now it’s time for the fun part (sarcasm). We need to install all the software to run this monstrosity. So as we do with all good linux distributions, let’s update and upgrade it.

sudo apt-get update
sudo apt-get upgrade

Next we need to install the webcam streaming software. I’m going to be using mjpg-streamer. There are plenty of different other options for streaming, but this one proved to be the easiest to set up and the easiest to interface with.

sudo apt-get install libjpeg8-dev imagemagick libv4l-dev
sudo ln -s /usr/include/linux/videodev2.h /usr/include/linux/videodev.h
git clone

This should download it to your home folder, so now we can just make it, and then copy the new files to their appropriate directories.

cd ~/mjpg-streamer/mjpg-streamer-experimental
make mjpg_streamer
sudo cp mjpg_streamer /usr/local/bin
sudo cp /usr/local/lib/
sudo cp -R www /home/pi/www

Then edit the bashrc file

sudo nano ~/.bashrc

And add this to the bottom of it.

Export LD_LIBRARY_PATH=/usr/local/lib/

And then reload bash

source ~/.bashrc

Now we can test it out. If you have a USB webcam, you would want to enter a command similar to this one using “”(this is untested, so it may not work).

mjpg_streamer -i “/usr/local/lib/" -o “/usr/local/lib/ -p 9000 -w www”

If you are using a Raspberry Pi camera, you want to first create a streaming directory, assign it read/write permissions, and then run the following mjpg_streamer command

cd ~
mkdir stream
chmod a+rw stream
mjpg_streamer -i “/usr/local/lib/ -f stream -n pic.jpg" -o “/usr/local/lib/ -p 9000 -w /home/pi/www" &

With the server now running, you can use CTRL C to escape out of it and then run this raspistill cammand to launch the camera

raspistill -w 640 -h 480 -q 5 -o stream/pic.jpg -tl 100 -t 9999999 -th 0:0:0 -n &

The stream should now be ready! You can access it from any browser by typing in any IP address followed by port 9000 (ex. If you click on the “stream” tab, you can see a live stream from your webcam.

When you’re done testing things out, you can kill the program processes by using these commands

pkill raspistill
pkill mjpg-streamer

Installing the GPIO Software
With the webcam streaming software installed, next we need a way to control RC car. We have it all hooked up, so now let’s install the software to control it. For this project, we’ll be using a program called Wiring Pi

git clone git://
cd wiringPi

That’s all you have to do to install it. So now here’s how you can control it:

gpio mode 4 out
gpio write 4 1
gpio write 4 0

Basically you find the GPIO pin that you want to activate, set it’s mode to “out”, write a 1 to turn it on and write a 0 to turn it off. With that done, now all we need as a way to control it from the web.

Installing the Web Software
Like the streaming software, there are also many different options for web server software. For this project, I’m going to be using nginx because it uses the least amount of resources. Then we’ll isntall PHP, because the GPIO software requires it, and then we’ll edit the nginx config file to allow it to run.

sudo apt-get install nginx
sudo apt-get install php5-fpm php-apc
sudo nano /etc/nginx/sites-available/default

Then you want to add these lines below the # listen [::]::80 line.

listen 80;
server_name $domain_name;
root /var/www;
index index.html index.htm;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;

location ~\.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
try_files $uri =404;
include fastcgi_params;

Below are commands to both start and reload the PHP and nginx servers.

sudo /etc/init.d/nginx start
sudo /etc/init.d/php5-fpm reload && sudo /etc/init.d/nginx reload

The last thing to do is to make a webpage that has both the controls and the webcam. If you want to create your own, you can use the following PHP commands:


I’ve created an example setup that you are free to download and use as a very basic web interface. You can download and unzip it like this:

unzip 373_spycam_resources
mv 373_spycam_resources/* www

Then you will need to edit the spi-cam.php file and change it to match your Pi’s IP address.

sudo nano www/spi-cam.php

STEP 4: Test the Setup
Now everything should be ready to go! Be sure to re-start your mjpg-streamer and raspicam serverices and then navigate any browser to http:///spi-cam.php and test it out! Feel free to edit what I’ve already set up and customize it or make it even better!

Spooky Interactive Projections!

Spooky Interactive Projections!

​Halloween is around the corner and this year, I wanted to do a project somewhat unique: A live interactive projection using completely free software. With this set up, we will be able to trigger specific videos to play whenever someone enters or exits a custom specified zone. Alright, there’s a lot to do, so let’s start tinkering!

STEP 1: Gather The Parts

If you would like to follow along with this project there’s a few simple pieces of hardware and software that you will need.


  1. Computer – It has to be a Mac or Windows computer (due to the software limitations) and it needs to have some sort of video output.
  2. Webcam – Practically any webcam will do. the link is to the webcam I used in this video.
  3. Projector – This projector was around $50, but this project can also be done with an LCD screen if access to a projector isn’t possible.


  1. VPT7 - This is video projection mapping software that I used in my “Beginners Guide To Projection Mapping” video. It’s compatible with both Windows and Mac
  2. Video Trigger – This is a webcam motion detecting plugin specifically designed to work with the VPT software. It is also compatible with both Windows and Mac.
  3. Skull Projection Halloween Videos – I’ve custom made these videos for anyone to use free of charge.


STEP 2: Setup The Hardware

This part’s pretty simple. ​Find a flat surface to project onto and setup the webcam and projector so that they are both pointed at the same area. Then connect both the projector and the webcam to your computer.That’s it for the hardware! The rest is done using the VPT software and video trigger.

STEP 3: Setup The Software

Once you have the VPT 7 and Video Trigger software downloaded, you should be able to launch them directly from their respective directories, no installation required. So let’s begin with VPT and set it up by using the videos I’ve provided and by following these steps:

VPT Setup

  1. Copy the videos over to the VPT7 > defaultproject > video folder.
  2. Launch the VPT7 software.
  3. To maximize the projection window to fill the entire projector, click on the Fullscreen button towards the lower left of the VPT window.
  4. In VPT, on the right hand list of rows, turn row 1 on (on a mac, it would be row 5 or row 6) and select the skull_looking.jpg image from the drop down list.
  5. Create a new layer by clicking the “+” button in the upper left. Then in the layer settings (middle/lower left), name the layer front and select 1video from the dropdown menu to attach the first video to it.
  6. Next turn on row 2 and select from the dropdown menu.
  7. Add a new layer (layer 2), rename it to front_left and attach 2video to it from the dropdown menu.
  8. Turn on row 3 and select
  9. Add a new layer (layer 3), rename it to left_front and attach 3video to it from the dropdown.
  10. Turn on row 4, select
  11. Add a new layer (layer 4), rename it to front_right and attach 4video from the dropdown.
  12. Turn on row 5 and attach (or if you’re using a mac, switch this with row 1)
  13. Add a new layer (layer 5), rename it to right_front and attach 5video from the dropdown.

Video Trigger Setup

  1. Launch the Video Trigger software
  2. Click the Video Input Settings button and make sure the correct webcam is chosen and that the settings are correct.
  3. Once the webcam view is how you want it, click the Memorize Background Now button to save the background into memory.
  4. turn Zone 1 on, make sure it is selected (highlighted in green) and draw a rectangle to the left of the skull in the webcam view.
  5. Now we need to set the triggers. Study the attached image for a better explanation of the triggers.
    1. In the first row, we want to start Video 2 playing whenever someone ENTERS the zone.
    2. Row two will fade IN the layer that contains Video 2 (layer 2) from 0 to 1 when someone ENTERS the zone.
    3. Row three will trigger the 3 video to play when someone EXITS the zone.
    4. Row four will fade IN layer 3 from 0 to 1 when someone EXITS the zone
    5. Row five will fade OUT layer 3 from 1 to 0 when someone ENTERS THE ZONE
    6. And row six will fade OUT layer 2 when someone EXITS the zone.
  6. Now turn zone 2 on and with it highlighted, draw a rectangle to the right of the skull in the webcam view.
  7. Lastly, set the triggers for zone 2
    1. Starting with the seventh row, trigger video 4 to play from the beginning whenever someone ENTERS the zone.
    2. In row eight, fade IN layer 4 from 0 to 1 when someone ENTERS the zone
    3. In row nine, fade OUT layer 5 from 1 to 0 when someone ENTERS the zone
    4. In row ten, trigger video 5 to play from the beginning whenever someone EXITS the zone
    5. In row eleven, fade IN layer 5 from 0 to 1 when someone EXITS the zone
    6. In row twelve, fade OUT layer 4 from 0 to 1 when someone EXITS the zone
    7. And to keep the bottom layers visible, in row thirteen, fade OUT layer 5 from 1 to 0 whenever someone ENTERS zone 1.
STEP 5: Test It Out!

Now if you walk to the left or to the right of your projection, the skull should turn towards you! Feel free to turn this into other spooky projects and effects!

If you want to do this in really low light, you can convert your webcam to an IR Webcam following the steps from Gregory0’s instructable.

How To Make A Raspberry Pi NAS (Network Attached Storage)

How To Make A NAS (Network Attached Storage)

Adding a storage device your network is called creating a NAS (Network Attached Storage). And basically it is just a minimalistic computer with a boat load of storage attached to it. So using a Raspberry Pi as our minimalistic computer, let’s create our own Network Attached Storage. You can find the project page for this video at the link below. But for now, let’s start tinkering.

STEP 1: Gather The Parts

There really isn’t much you need to do this project, and aside from the Raspberry Pi, you probably already have everything you need.

  1. Raspberry Pi = $35.00
  2. SD Card = $5.00
  3. 1 TB External Hard Drive = $60.00

Here are some other parts and tools that you you will probably find around the house (as I did):

  1. Keyboard and Mouse
  2. Ethernet Cable
  3. Monitor
STEP 2: Installing The Software
Download Raspbian

The first thing you want to do is download the Raspbian image using the link above. This is a stripped down version of Debian linux, so what I’m doing should also work on other Debian based distros, such as Ubuntu.

You then want to burn this one to an SD card using either Win32diskImager on Windows or the dd command for linux or Mac. Then plug the SD card into your Pi with video, mouse, keyboard, internet, power, and your external storage.

STEP 3: Setting Up The NAS

Once your pi boots up, you can login using “pi” and “raspberry” and then follow these steps to set it up as a NAS:

  1. Update apt-get and install NTFS-3g
    • sudo apt-get update
    • sudo apt-get install ntfs-3g
  2. Find out what path your external drive is located at (ex. /dev/sda1).
    • sudo apt-get update
  3. Mount the external drive to the media folder and then make a shared folder within it.
    • sudo mkdir /media/NASDrive
    • sudo mount -t auto /dev/sda1 /media/NASDrive
    • sudo mkdir /media/NASDrive/shared
  4. Install the Samba software.
    • sudo apt-get install samba-common-bin
  5. Edit the Samba config file.
    • sudo nano /etc/samba/smb.conf
    • Under the “Authentication” header, remove the hash (#) before
      security = user
    • Under the “Share Definitions” header, change
      read only = yes


      read only = yes
    • At the bottom of the page add:
      comment = Shared Folder
      path = /media/NASDrive/shared
      valid users = @users
      force group = users
      create mask = 0660
      directory mask = 0771
      read only = no
  6. Restart Samba
    • sudo /etc/init.d/samba restart
  7. Add a new user to linux
    • sudo useradd [enter new user here] -m -G
    • Create a new password:
      sudo passwd [enter new users name]
  8. Add new user to Samba
    • sudo smbpasswd -a [enter new users name]
STEP 4: Final Steps

Now on a different computer, if you browse the network you should see your raspberry pi. Trying to access it will prompt you for your username and password, and you can just enter the user and password we just created. Then start storing stuff to it!

If you want to access it from mobile devices you can use apps like Samba for Android or File Explorer for iOS to access network shares.

Download OpenMediaVault

Before we dive into the nerdy method of setting up a NAS on a Raspberry Pi, a super simple alternative is to use Open Media Vault. Open Media Vault is a distribution intended to make it super simple to set up and manage your own NAS.

If you want to give it a try yourself, here are the dead easy steps for setting it up:

      1. Download the most recent OpenMediaVault Raspberry Pi Image (using the button above)
      2. Burn it to an SD card (you can use this guide if you don’t know how)
      3. Plug it into your Raspberry Pi along with a monitor, network cable and power.
      4. When it boots up, the screen will give you your IP Address along with instructions on how to log in.
      5. On a separate computer, open up a browser and type in your Pi’s IP address. On the resulting page, login using the provided credentials (default should be admin and openmediavault).
      6. Use the options provided to set up your networking share and add and manage users!

Ultrasonic Madness

Sound waves can be used for more than just making sound. Find out all the amazing things sound is capable of and make some cool projects that harness it’s power!

Click on the tabs to continue learning about ultrasound!

Here are some of the other cool projects you we’ll be creating:

Download Arduino Code

Parts List

The prices really depend on what you would like to purchase. These are cheapest locations to purchase these items that I was able to find.

Part name Price
Ultrasonic Module $2.40
Arduino Uno $8.75

Software Downloads

  1. Arduino Software
  2. New Ping Library Download

Will It Microwave?

Why don’t microwaves and metal get along? What makes microwaves destroy electronics? Let’s dive deep into the world of electromagnetic radiation to find out!

Help support my channel by becoming a patron!   Get social!


Here’s what you will need for each project:



Radio Wave Project

  • A nickel (or any other coin)
  • A 9v battery
  • An AM radio

Small EMP generator

  • A disposable camera
  • A cheap calculator
  • Extra wire
  • A high voltage switch
  • Soldering equipment

World’s cheapest speaker!

What do you need to make the simplest form of a speaker? Surprisingly, you probably already have everything you need! Click on the “Parts list” tab to see what you need to make both bone conducting headphones and your own speaker! Then, if you still want more, click on the “Further Learning” tab to learn more about the history of speakers!


Help support my channel by becoming a patron!


Get social!


Here’s what you will need for these projects:



Bone Conducting Headphones

  • Small DC Motor
  • An old pair of headphones

Cheap Speaker

  • A Paperclip
  • A business card
  • A strong magnet
  • An old pair of headphones

Learn more about the history of speakers!

Beginners Guide To Projection Mapping

366_projection_mapping_thThis video will show you how the basics of projection mapping and how to do it on the cheap!

Here’s what you will need:


Amazon $60 projector

Build One from Recycled Parts

Build One for $5 worth of parts

TOTAL COST: ~$60.00 or less

Installing and Configuring VPT7

  1. VPT7
  2. Beginners Guide Tutorial

Projection Mapping Examples:
Pomplamoose “Happy Get Lucky” –

LG Electronics Building Projection –

Audi A1 Car Projection –

Help support my channel:

Follow Tinkernut!

Google +



Make Your Own Cluster Computer

Learn how to make a cluster computer using Raspberry Pi’s! You can also use this method to build your own super computer.

Acquiring the Parts
Here’s what you will need:

  1. 2 or more Raspberry Pi’s
  2. SD cards for each Pi
  3. Power Cables for each Pi
  4. Powered USB Hub (optional)
  5. Networking Cables
  6. A Hub or a Router

TOTAL COST: ~$100.00 [tabby title=”Software”]

Installing and Configuring Raspbian

  • Download the Raspbian Image from here.
  • Burn the Raspbian Image to your SD Card
  • Once the image is burned to your SD Card, but it into the Raspberry Pi and boot it up with a Keyboard, Mouse, Monitor and Internet attached.
  • Upon first boot, you should see the Rasbperry Pi Configuration screen (otherwise type “sudo raspbi-config“. Here’s the options we’ll need to configure
      • Expand the File System
      • If needed, set the Internationalization options to match your countries keyboard layout.
      • Overlcock the Pi to 800 Mhz
      • Advanced Options
        • Set the Hostname to Pi01
        • Split the memory to 16mb for graphics
        • Enable SSH
      • Finish out of the configuration, but don’t reboot yet
      • To enable auto-login, at the terminal command type “sudo nano /etc/inittab
        • Comment out this line: #1:2345:respawn:/sbin/getty --noclear 38400 tty1
        • And add this line right beneath it: 1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
      • Now you can reboot your Pi and it should auto-login

[tabby title=”Terminal Commands”]

Installing MPICH

  • MPICH is software that allows for multi-processing communication between computers.
  • To install it on your Raspberry Pi, first make sure you have a valid Internet connection going to the Pi. Then follow these Terminal Commands
    • sudo apt-get update
    • mkdir mpich2
    • cd ~/mpich2
    • wget
    • tar xfz mpich-3.1.tar.gz
    • sudo mkdir /home/rpimpi/
    • sudo mkdir /home/rpimpi/mpi-install
    • mkdir /home/pi/mpi-build
    • cd /home/pi/mpi-build
    • sudo apt-get install gfortran
    • sudo /home/pi/mpich2/mpich-3.1/configure -prefix=/home/rpimpi/mpi-install
    • sudo make
    • sudo make install
    • nano .bashrc
      • PATH=$PATH:/home/rpimpi/mpi-install/bin
    • sudo reboot
    • mpiexec -n 1 hostname
  • These commands will download and install MPICH, as well as add it as a path to your BASHRC boot file. The last command runs a test to see if it works. If the last command returns “Pi01″, then you did everything successfully.

Installing MPI4PY

  • As it is, MPICH can run C and Fortran programs. But since the Raspberry Pi has the Python coding environment pre-installed, it would be easiest to install a Python to MPI interpreter. Here’s the commands to do that:
Help support my channel: Follow Tinkernut! Google + Facebook Twitter

Arduino Motion Detecting Squirt Gun

In case you want a nerdier way to make a cheap motion detecting squirt gun, Here’s how you can build your own with an Arduino and a PIR sensor!

Acquiring the Parts
Here’s what you will need:

  1. Raid Auto Trigger
  2. Arduino
  3. PIR Motion Sensor
  4. Diode
  5. NPN Transistor
  6. Wire cutters and wire

TOTAL COST: ~$45.00

Disassemble the Automatic Sprayer
Wire Up The Arduino
Here is a schematic of the Arduino. You can download the Fritzing files by clicking on this link. Screen Shot 2014-03-29 at 3.15.19 PM [tabby title=”Step 3″]

Add The Code
Here is a copy of the Arduino code to upload to your arduino. You can also download it by clicking on this link. const int pirPower = 13; const int pirIn = 12; int motorPin1 = 3; void setup(){ pinMode(pirPower, OUTPUT); pinMode(pirIn, INPUT); pinMode(motorPin1, OUTPUT); digitalWrite(motorPin1, LOW); digitalWrite(pirPower, HIGH); } void loop(){ int value= digitalRead(pirIn); if (value == HIGH){ digitalWrite(motorPin1, HIGH); delay(500); digitalWrite(motorPin1, LOW); } }

Help support my channel: Follow Tinkernut! Google + Facebook Twitter

Motion Detecting Squirt Gun Prank

In this April Fools day video, learn how to make a cheap motion detecting squirt gun using parts that you can find in your local grocery store!

If you want a geekier way to build a motion detecting squirt gun, check out the Arduino version of this same project.

Acquiring the Parts
Here’s what you will need:

TOTAL COST: ~$25.00

Disassemble the Air Freshner
Disassemble the Automatic Sprayer
Connect the Air Freshner to the Automatic Sprayer
Help support my channel: Follow Tinkernut! Google + Facebook Twitter