This week I will be reposting an old blog post of mine from 2016. In this post, I detailed how I took.a finch robot, attached a battery pack to it, and turned it into a wirelessly controlled toy using Python and a Raspberry pi!
So, for some reason you have one of the infamous finch robots in your possession and you’re looking for something to do with it, right? Well whether you’re making something for a class project or just to do something on the side to learn, you came to just the right place! In this section, I’m going to explain to you how to take this annoying little finch and make him wireless so you can control him from anywhere that has internet.
First, let’s gather our supplies.
- Finch Robot
- Cable to run the Finch
- Raspberry Pi (I used the Raspberry Pi 3)
- SD Card
- SD Card Reader
- BatteryPack (I used this battery here…
https://www.amazon.com/gp/product/B00PHP444Q/ref=oh_aui_detailpage_o01_s00?ie=UTF8&psc=1, but any sort of battery pack that outputs enough energy should suffice)
- Unix Terminal (We’re going to be using SSH)
- Supplies to modify the case (Optional)
Once all the supplies are gathered, we need to brainstorm how exactly we are going to control this
finch. In my case, I programmed a GUI that works great on a touchscreen device
I am not going to walk you through how to do this exactly, but I am sure that this works well with Java and Python programs. If you are using Snap to program your Finch then there is a completely different tutorial on how to do that elsewhere that can actually be found on the Finch Robot’s official website. You just have to look.
Now that you have some way to control your finch, we need to start creating a way to control the finch remotely. So in order to do this, we will need to start setting up our Raspberry Pi!
In this section, I am going to assume that you have already setup the OS on your Pi and that you are ready to go. If not, then there is a great tutorial on how to install an operating system on your Raspberry Pi on the Finch Robot’s website as well! It will help you get setup on Berryboot with Debian Wheezy Raspbian (the “official” rPi Raspbian version) which is what I will be using.
We only need to do just a few things on the Pi, so first we are going to ensure that it is connected to the same network that the computer we will be controlling it is on. Once you have done this we need get our Pi setup to run our Finch. So, on your Pi you will need to download the BirdBrain Technologies Software for the Raspberry Pi. The Finch Robot’s website has a download link on there, but to help you save some time I will just link it below.
Once you have that downloaded on your Finch you will need to move it to home directory. What I did was I opened my download folder and moved my BBTechSoftwareForPi zip to my desktop. After this, I opened the terminal (CTRL + ALT + T) and typed the following commands to move it.
mv BBTechSoftwareForPi ~/
The first command should’ve taken you to the Desktop directory and then the other ones unzip it and then move the folder to the directory that it needs to be in. Once you do this you will need to make the Configure script executable. So you will need to enter the following commands:
chmod +x Configure
This is what your terminal should look like.
Once we have this established, let’s test and make sure that python programs are working correctly. So, with your Finch Robot plugged into your pi, let’s navigate to the
~/BBTechSoftwareForPi/FinchPython directory to test it.
Once you are in this directory you can type “ls” to view what files you have. You should see something named “testfinchfunctions.py”. To run python programs with your Finch type the following:
So, in this case, let’s do that with the testfinchfunctions.py! If your finch moves and it outputs something like this, then you have successfully setup python to run on your Pi!
Okay, now that our Pi is connected to the same network as our computer and that we have Python setup and ready to run off our Finch, we just have to take the program that we created (in this case, the GUI controller that I showed earlier) and put it in the FinchPython directory.
All I did here was put my program on the SD card and then pulled it up on the Pi. Once here I moved the program to ~/BBTechSoftwareForPi/FinchPython
Note: I’m not sure if this will be an issue for you, but it was for me so I will mention it. When I programmed my python code, I was using Python 3.4.2, however, the unix terminal by default uses some version of Python 2. This means that you will not be able to properly run your python programming by simply using python <filename>.py, so we will have to install python 3.4.2. We will do this by entering the following into the terminal:
sudo apt-get install python3
It should install, and once it does you can test this by typing python3 into your terminal. So now, if you need to use python3 to run your code you will type
ALRIGHT, now that we got that out of the way. We are now done messing with our Pi. Let’s switch things over to the computer that we wish to be controlling the robot from.
Note: I am using my laptop that has the Ubuntu operating system.
Once you are on your laptop, make sure that you are connected to the same network as your Pi! This is extremely important. After this is done, open the terminal. We are going to connect to our Pi using SSH.
SSH -Y Pi@<Ip-Address>
This is the command that you should enter to connect to your Raspberry Pi. Notice that I included “-Y” in the command. This is required so that you can run your program remotely and see the GUI that you made. After you have done this, if everything has been done correctly, the terminal should ask you for a password. By default, the password to connecting to a raspberry pi is “raspberry”. When this is done, congrats! You are now connected to your Pi remotely!
Now that we are in the Pi, let’s go ahead and navigate over to our program that is inside the Pi and run it.
Congrats! Now you have yourself a fully functional remote-controlled Finch Robot! Woo! But, there’s just one problem.. now you have to figure out how to put the battery pack and the Raspberry Pi on the Finch so it can roam free.
The first thing I did was unscrew the top of the Finch and then set my battery pack on top of it and draw a rough outline of the space I need to cut out.
After I cut out the space I need in the Finch, I then screwed it back on and set my Battery pack inside the space. Then I placed my Raspberry Pi on top of it. At this point, I just found some extra zip ties from a previous build that I had and then zip tied the whole thing together.
All in all, this is a fun little project for kids to do and learn a little bit about computers and how they work. Although, I am not much of a fan of the Finch robot itself because personally I feel that it was poorly crafted.. this is still very educational and can teach you a little bit of basic computer science.
Note: The Type-A to Type-B cable that comes with the Finch is way too long for what I need so I ended up splicing it to make it much shorter. You can see that I did this in the pictures with the cord that has the blue electrical tape on it. You can either try and buy a shorter cable, or you can look up tutorials on how to splice it yourself like I did. It wasn’t that hard, and this was my first time splicing a cord.
Also, I would like to mention that this is the first time I’ve ever written anything like this so any feedback would beneficial. Leave a comment below or send me an email (located on the Contact page) and tell me how I did! I am here to learn just as much as I hope all of you are!
Buy me a cup of coffee!
As always, if you liked what you read and you’d like to support me, please consider buying me some coffee! Every cup of coffee sent my way helps me stay awake after my full-time job so that I can produce more high quality blog posts! Any and all support would be greatly appreciated!
2 thoughts on “Remote Controlled Finch Robot Project”