While stuck indoors during these past few months, I have had a lot more time on my hands, something which presumably is very common around the world.
If you, like me, are experiencing newfound free time, there’s never been a better time to improve your repertoire as a programmer, builder, and innovator by working with new technologies and homemade robotics.
The best way to gain knowledge is through experience—this is especially true when it comes to programming and building.
By providing some emerging and innovative concepts in the field of robotics and computing, I hope to offer a way that you can become an innovator with simple homemade robotics projects.
I’ll also share how I used each of these concepts to create a project of my own that demonstrates the real-world applications of these technologies.
First thing: hardware
Many developers focus only on honing in on their programming skills, and not the real-world applications of such programming. However, especially in the field of robotics, it is advantageous for developers to have valuable knowledge on the uses of tangible products, and to have experience working with not only software but hardware as well.
Using a Raspberry Pi 4 as a server
The Raspberry Pi is not a new nor “emerging” technology — the first RPi was released in 2012, and it has established itself as an essential part of many hobby or homemade computer projects.
Despite this, Raspberry Pis are proving themselves to be very efficient microcomputers, and Raspberry Pi clusters are becoming more and more popular among developers and early-stage startups. Raspberry Pis are no longer just for hobbyists and low-resource projects. The Raspberry Pi 4 was recently released and featured a faster processor, 4k mini-HDMI ports, and USB-C power supply.
You can treat a Raspberry Pi as your personal in-house server. If you give it power and don’t turn it off, a Raspberry Pi can be a very effective solution for always-on projects. By simply running your server-side application on your Raspberry Pi, you can have a complete backend that runs inside in-house, which can be a very cost-effective solution.
Controlling robotics components with an Arduino
Like Raspberry Pi, the Arduino has become a necessity in almost all robotics projects. Arduino is a programmable microcomputer that allows its user to control various sensors and moving pieces. Its versatility and user-friendliness make the Arduino one-of-a-kind. Arduinos are used by engineers of all skill levels, from beginners to experienced builders.
Bluetooth on Arduino with HC-05 module
When Bluetooth was introduced to mass markets in the late ’90s and early 2000s, it revolutionized the way people used their devices. With Bluetooth, users are able to wirelessly connect and interact with their devices. This functionality is available on Arduino with the HC-05 module.
With Bluetooth on Arduino, you can wirelessly control your robot from a controller, a computer, or even a smartphone. This opens up many possibilities for creative projects with Arduino.
Software is often overlooked in robotics. Many teams tend to focus solely on the hardware aspect of the robot all the while treating software with less priority.
In fact, software should be of utmost priority to engineers, because lackluster programming can lead to a lackluster final result.
Kotlin, the language of tomorrow
Ktor is a web framework for Kotlin that is “easy to use, fun and asynchronous” — from experience I can confirm that is very true. Kotlin has an innovative modern syntax that allows programmers to be more expressive and efficient with their code. Using Ktor, you can write a fully functional backend server in minimal time.
Kotlin also introduces a concept known as “coroutines” which is a unique, cutting-edge take on asynchronous programming. At a very (very) high level, coroutines allow a program to perform multiple tasks at once, and coroutines give developers a pragmatic way to manage those tasks. With these things in mind, you should consider using Kotlin for your next proof-of-concept and/or server-side application.
Putting it all together
Planning and ideation
After diving deeper into these exciting technologies in the world of robotics, I challenged myself to create my own unique project. The project I chose was a robot built with an Arduino that would be controlled by my smartphone. I decided that I would set up an application flow that would work as follows:
This was what I determined would be the most effective way of accomplishing the final product I wanted.
Remember, software should not be a low priority in your project.
I built the robot using some spare metal parts, a breadboard, a battery case, the HC-05 module, two motors, and of course an Arduino. I was very pleased with the final result.
For the front-end app that would control the robot, I wanted to use the phone’s gyroscope to control the robot. This would mean that when you tilt the phone, the robot would move in that direction. It’s a little gimmicky, but in the end, it was very fun to play around with.
I chose to write the app in Flutter so that it would work cross-platform.
The app works by first connecting to the Raspberry Pi server and establishes a connection via WebSockets. Then, it begins to listen to updates from the phone’s gyroscope. Every 250 milliseconds, the app checks for an update, and if it detects one, it will send the updated data back to the RPi server.
I am working on the ability to program routines for the robot to do. This could be anything from a square, to a couple of spins, to a choreographed dance!
To be an innovator is to do something your own way, and to not be afraid to try new things. What better way to become an innovator than by gaining new skills in the field of robotics?
I hope that by reading about these concepts and technologies for robotics, you are excited to learn more and that you start to build your own projects. The best way to gain knowledge is through experience; this is especially true when it comes to programming and building. These are only a couple of new technologies in the world of programming and robotics. If you are interested in more of these ideas, I implore you to look into the exciting new innovations made in real-world robotics. These new ideas and technologies are going to change our world.
“If you want something new, you have to stop doing something old.” — Peter F. Drucker
This article was written in collaboration with members of FTC Robotics team #10415. Go Warbots!