Even one failure of a sensor can result in a disaster for your robot. In this post, I explored the method to make accurate ADC readings with Arduino to eliminate the failures of analog sensors used in robotics applications.
This method is applied to analog sensors such as temperature, light, etc. For accurate readings, you need to take into account the actual value of the power supply voltage.
Of course, I need a development board to test this method. Roboticists, electronicists, hobbyists, hackers, artists seem to have at least one point in common. It is called Arduino. So, to test the method, I used an Arduino UNO board. The same board that I used to build this self-driving robot.
How To Make Accurate ADC Readings with Arduino
Accurate ADC readings
Arduino UNO can be powered from a USB port, one or more batteries and from an AC-to-DC adapter. So far everything is simple. Very simple.
But, when you got the Arduino plugged into one of its compatible power supply sources, you supposedly have a constant voltage to feed the Arduino board. Wrong!
The voltage from the USB ports and batteries fluctuates. The voltage output from an AC-to-DC adapter is more stable. For example, the USB port sometimes outputs a voltage of 5.12V and sometimes 5.14V. Read more →
You have complete freedom to decide what components you use to assemble a robot. If choosing the ingredients of a robot looks more like a playground, the hard part comes when, in one way or another, all these elements have to communicate. But just making them communicate is not enough to make your robot move and make something useful. You have to control all the elements. You need a conductor to put the bits in the right place and hold the rhythm together. You need ROS.
In this post, I did a collection of more than 15 reasons why to use ROS. Below, I have explored from compatible tools to more insights such as its flexibility in controlling things.
Most of the robots in the world (including here the robots built at home by hobbyists) are running Linux. So, this is the line where the ROS’s engineers focused their efforts.
ROS is not actually an operating system. Its name – Robot Operating System – creates confusion and misleading the user. But strictly speaking, it is a collection of software libraries and tools used by the roboticists to develop applications.
And because is not an operating system, ROS is running on a true operating system. ROS uses the OS’s processes management system, user interface, file system and programming utilities. The most used operating system is Linux, followed by Mac OS X and somewhat recently there are some steps forward to make it Windows compatible. Read more →
When a group of engineers at Ericsson invented in 1994 the Bluetooth technology, probably no one could not have imagined the impact on connecting people and things. They don’t imagine that makes happy millions of makers. They don’t even know how happy the roboticists are. Anyone can use the technology to build a robot controlled at a touch of a button while nobody worries about wires.
Like many of you, I want to prototype things. Robots that make me happy. One of them is a remote controlled tank robot.
Let’s start to learn how to use the Bluetooth technology to control the speed and direction of a tank robot platform at a touch of a button.
Probably the best four books about Arduino and Bluetooth connections:
TS – 50 Mini Bluetooth Tank Robot Smart Car Kit + Arduino UNO + HC-06 Bluetooth Module
The key part of this project is the Bluetooth module. Since I use an Arduino UNO, I need a Bluetooth module Arduino compatible. A few months ago, I wrote an article about the Bluetooth modules Arduino compatible with a range of several meters.
Since I have to be in a proximity area to control the robot, a Bluetooth module with a range of 5 meters is enough. I don’t have large rooms in my apartment, so any of these wireless modules can reach this range.
For this project, I use an HC-06 Bluetooth module. This is a slave module that works perfectly with Arduino UNO.
Next, I have to focus on the mobile platform. Read more →
Servo motors are largely used in robotics for precise control. Anyone – well, almost anyone – has mobile devices with Bluetooth connection capabilities. In this tutorial, you will find how to wirelessly control a servo motor with an Arduino UNO and an Android device via a Bluetooth connection. In the end, you will be more connected, you will make things easier and control servo motors at the touch of a touchscreen.
You may be interested in the following related posts:
In this article, I will introduce you to Bluetooth connections with the HC-06 Bluetooth module, Arduino UNO, and the SG90 servo motor. Also, you need extra resources for this tutorial such as an Android smartphone with Bluetooth capabilities and an application to send commands from smartphone to the Bluetooth module.
In the first part of the tutorial, I will show you how to hook up the HC-06 Bluetooth module to the Arduino. In the second part, you can find the source code to enter in AT command mode of the HC-06 Bluetooth module. Here you’ll set the name of your device, password, and the baud rate of the HC-06 module. Finally, in the last part, you will see how to setup the Android application and how to program Arduino to turn the servo motor at the touch of a button.
Probably the best four books about Arduino and Bluetooth connections:
Connect the right pieces and make them communicate with each other. This is the plan of this project. If you already have all the below parts or a part of them, you are lucky. The whole project will cost you nothing, or a few dollars in case you will buy only the missing parts. Otherwise, you have to spend tens of dollars to buy the servo motor, the Bluetooth module, the development board and few other accessories. To have a clear view of the costs, in the right side of each part and accessory used in this project is a link to an online store. Here are the parts:
1 X Arduino UNO (Amazon) – the Bluetooth module is compatible with almost any Arduino model, but all the code and schematics in this tutorial are for UNO.
1 X HC-06 (Amazon) – this is a slave Bluetooth module very easy to use with Arduino using serial communication.
1 X SG90 Servo Motor (Amazon) – this is probably the most popular servo motor in the DIY community.
In this section, I will show you how to wire the Arduino UNO and the HC-06 Bluetooth module.
To use the HC-06 module, simply connect the VCC pin to the 3.3V output on the Arduino, the GND pin to any of Arduino GND pins, then connect the TX pin of the Bluetooth module to pin 10 of Arduino UNO and RX pin of Bluetooth to pin 11 of Arduino.
For servo motor, connect the brown wire to any of Arduino GND pins, the red wire from the SG90 servo to the 5V output of the Arduino, and the orange wire from the servo motor to digital pin 9 of Arduino.
How to setup the SG90 servo motor with Arduino UNO and the HC-06 Bluetooth module
The interest in snow plow robots has exploded over the last 5 years, largely thanks to the hobbyists in robotics area. In this inspirational post, I present the most important parts of a snow plow robot to make your work easier and lets you focus on what is more important: building the snow plow robot.
There’s a lot of variety out there in the snow plow robot designs. Some projects keep a very professional approach (like the open-source snow plow robot) while others have a more eccentric design (like this RC rotary snow plow). But what are the best ways to design a snow plow robot? What are the components and parts that make a snow plow more functional for users? Read on to find out.
1. Build A Strong and Modular Platform
The platform’s design is crucial for the success of any snow plow robot. You need to make sure that the mobile robot is able to clean your house’s sidewalk either through a resistant chassis and a traction system that not lose grip and spin around fruitlessly.
A durable structure
Most makers don’t have time, inclination and a dedicated space to weld a metallic chassis. Should be considered everything else that provides rigidity and simple enough to build it with simple tools.
A range of aluminum channels and profile connectors is the best option for building complex rigid structure suitable for a snow plow robot.
The aluminum rails, cubes and brackets, t-nuts and screws, enclosure
and accessories serve to provide a long-lasting platform for outdoor tasks.
In this project, the designer uses aluminum rails to build a chassis suitable for a lawn mower and a snow plow robot.
There are many motor drivers for heavy-duty robots that can drive the high-torque brushed DC motors of your robot. Though, not many of them come cheaply and with high performances. In this post, I’m covering DC motor drivers for brushed DC motors that can help you focus on what’s important: building robots.
The Dimension Engineering’s motor drivers have a good attraction to hobbyists who are building heavy-duty remote controlled robots. But not many hobbyists take all the advantages of these powerful motor drivers. Looking into any of the Dimension Engineering’s motor drivers, you can use them to control two DC motors via analog voltage, radio control, serial and packetized serial.
All of these motor drivers are overcurrent and thermal protection designed meaning you’ll never damage one of these with accidental stalls or by controlling two big motors. Also, there is a regenerative system which recharges the batteries of the robot whenever it receives a command to slow down or reverse the DC motors.
Any of these motor drivers are designed with a simple interface, just plug and play once you’ve set the switches as needed. Moreover, these require only a single pin for control.
The easier way is to use any microcontroller-compatible analog or digital sensor to send information to a Sabertooth motor driver. At the top of microcontrollers used to control them is Arduino. It is easy to understand why numerous hobbyists use the motor drivers with Arduino. You have great examples for inspiration, libraries, and Arduino code and instructions for a remote controlled robot.
The Dimension Engineering’s motor drivers – Sabertooth Dual 12A/25A/32A/60A – are suitable for mobile robots, electric vehicles, or scooters between 45Kg (100lbs) and 450 Kg (1000lbs). Read more →
The most powerful educational kits for learning robotics and electronics are the ones kids love to use.
Something magical happens when you give your little boy and girl one of these kits. They can create unique projects for personal learning at almost every age. The robotics and electronics applications become more immersed through the power of modular components and versatile platforms like these.
Explore twenty-one of the best kits able to create a-ha moments for smart kids.
Do you want your child to experience clean energy? This robot kit works on electrical energy generated by salt water. Give your children the chance to learn about clean energy while playing with robots. Read more →
The key to have a good experience with an all-terrain robot is the motor driver used to control the high-torque DC motors. In this article, I look into the best motor drivers for 24V brushed DC motors. This selection is made based on the robot specifications which began to take shape with the article about how to choose the 24V DC motor for an all-terrain robot.
What means the best for my robot? The best high current motor drivers must meet at least two conditions. The first condition is the compatibility with development boards such as Arduino and Raspberry Pi. The second one is more related to future plans. Because I have a limited budget, I have to use the same motor driver for both versions of the robot: remote control and autonomous.
Before listing the high current motor drivers, let’s start with important theoretical things.
The difference between a motor controller and a motor driver
To have a clear view of the difference between a motor controller and motor driver, I’ll make a short overview of both.
Whether you’re using a motor controller or a motor driver, both of them are capable to control the speed and direction of the DC motors. The difference consists of the on-board microcontroller or the lack of it.
A motor controller is a motor driver with a microcontroller on it. The motor driver comes without the microcontroller, so it has to be controlled by another device such as an Arduino or Raspberry Pi to control the speed of the motor and direction. Otherwise, you can use a motor controller designed to take care of generating the PWM and control the motor direction. Read more →
This is one of the questions that comes up when I was planning a 4WD mobile robot able to deal with difficult terrains. And because without electrical energy my robot is just a simple piece of furniture, in this article I have to find the best report between technology and price for the batteries that will keep my robot up and running for 1.5 hours.
Furthermore, to simplify the power system of the robot I will use two 12V batteries. I will not use multiple batteries with different nominal voltage for each type of components just because the voltage range may differ. I’ll keep everything as simple as possible.
I know that there are advantages and disadvantages in using only one nominal voltage. One of the advantages is that I can recharge the batteries in the same time with only one battery charger. The second advantage is the low weight of the platform. A light weight would likely be an advantage to traction given that the robot will work outside. A lighter robot requires less power so I need smaller batteries to get more run time.
As a disadvantage, I have to use a lot of voltage regulators since some of the electronics usually operate at different voltages than the actuators and sensors. Read more →
I want to build a 4W robot platform able to deal with difficult terrains. The first step is to make a list of possible DC motors able to push the robot on sand, mud, over rocks, in a forest, in lawns or anywhere else I would like to drive it.
In this article, my objective is to find the theoretical values of torque and RPM for the DC motors. Also, I did a list of DC motors that I can use for this project. I know that matching a motor for a specific application is not easily accomplished through trials and errors. Moreover, the necessity of purchasing and testing many DC motors are inefficient and brings me additional costs. So, I have to determine the optimal DC motor specifications for the functional requirements.
Let’s move a little bit to the functional requirements of the mobile platform. This robot should be able to climb slopes up to 20 degrees, driven by four DC motors connected through belts or shafts to the wheels, supplied voltage = 24 Volts, the diameter of the wheel = 0.35m, and able to reach a maximum speed of 10km/h (6.2 mph). Broadly speaking, these are the functional requirements of the robot. Read more →