Category Archives: Arduino

DIY motorized roller blind

This video shows my DIY Motorized roller curtain. It is driven by a stepper motor. An Arduino Nano is used to read IR signals from an old TV remote and control the roller curtain.

EasyEDA project with schematic and PCB layout:
https://easyeda.com/Axbri/roller-curtain-controller

Arduino code:
http://brinkeby.se/downloads/MotorizedRollerBlindCodeV1.zip

3D printed STL parts:
http://brinkeby.se/downloads/MotorizedRollerBlindSTLpartsV1.zip

Rebuild of my “original” balancing robot.

This is the first self-balancing robot that I built that actually worked well. More info about it here. My absolute first self-balancing robot was the “Equaipose bot”, link the page about it here.

This video has gained some attention on youtube, and I think that is why I get at least one email every other week from people asking about the code and schematics for this robot. I have not shared the code of any details about this robot since it is very poorly made and coded. The robot uses multiple Arduinos just to keep the balance and drive the motors, later I also added another Arduino to manage the Ultrasonic sensors and some other stuff. There was also a Raspberry Pi that I planned to use for computer vision experiments, I never came around to doing that using this robot.

Now when I know a lot more about self-balancing robots, and Arduino programming and DIY robots in general, I decided to make a new version of this robot. I new complete rebuild of it. My intention is to make the robot less complicated and also better. I stripped down almost everything in the robot and started over. Still using the same old wooden chassis. The new version is based on a single Arduino MEGA R3 controlling everything in the robot. It reads the MPU6050 IMU, makes all the filtering and balancing calculations, and drives the motors using hardware timers for maximum precision. The new code for this robot is heavily based on the code for my “mini balancing robot”, with some improvements, more info about that robot here. I still use the same old stepper motors, model airplane wheels, and “Big Easy Driver” -stepper motor driver boards. The Arduino MEGA also controls and reads four HC-SR04 ultrasonic sensors using Interrupts. Those sensors are used for obstacle avoidance.

The new version of the robot works now. It balances and drives around avoiding obstacles, but I still have a few things to fix with the code. I want to add a pushbutton for control and a buzzer for feedback, I should also add battery measuring and implement a low voltage cut off to prevent damage to the battery.

I hope to release I video of the robot together with the code and schematic in a couple of weeks.

The servo seen in the pictures is not and will not be implemented in the first version of the code, but the intention is that the servo should be used to make it possible for the robot to raise itself up and start balancing on its own. Maybe I will also ad some sort of remote control since it is a frequently requested feature, But that will be in a later version.

 

Indoor navigation robot update

It has been some time since a worked on this robot. This is a video of me building and installing the main PCB on the robot. The video was actually recorded several months ago, but now I recently found the inspiration to continue to work on this project.

The main board has an Arduino Due that controls the two stepper motors that drive the wheels. The PCB also has a lot of other features including servo outputs/inputs, MOSFET outputs, bumper sensor inputs, 6 DOF IMU (gyro and accelerometer), a few buttons and LEDs, and a couple of other things. In the video, I connect an RC receiver the servo inputs on the board and drive the robot abound using remote control.

The future plans for this robot are to implement a serial interface in the Arduino Due, and then connect it the Rasberry Pi. That way the Rasberry Pi will be able the drive the stepper motors and also read data from the IMU and other sensors. Then I can make a python script or something running on the Pi that gives the robot some interesting behaviors.

I also plan a replacing the Time Of Flight LIDAR sensor mounted on the stepper motor seen in the video with a rotating Laser sensor instead. The problem with the Time Of Flight sensor is that it has a very limited range and sampling time. I recently found out about the rotating Laser Distance Sensor (LDS) used on Xiaomi robot vacuum cleaner robots. It is available for cheap as a replacement part the vacuum robots. There is also an open source project to control the spinning of the sensor an read data from it, which should make it relatively easy to connect to the Rasberry Pi in my robot.

GPS navigation robot – Two waypoints

This video shows a robot I have built that is driving between two waypoints using GPS.

I built this robot last summer, about a year ago. Back then, I never really managed to the software part of the robot working. The weather became worse outside as the fall came, and a lost interest in this project and started working on other things instead.

I wave written all the code myself, apart from the functions used to calculate course and distance between GPS waypoints. I used functions from the TinyGPS library for that. The code runs on an Arduino Due, the robot is using PID control to steer towards the waypoints. The robot uses a combination of GPS-course and integrating the signal from a yaw-gyro to determine its current course. The robot also has a compass, but it does not seem to work very reliably, therefore I do not use it. The robot also has sonar and other sensors, but they are not used in this video. Expect more videos and info about this robot in the near future.

New robot project

This is a new long-term robot project I have been working on for the past couple of months. It is a general purpose indoor robot, that will work as a platform for experimentation. When designing this robot, I have tried to think about and improve everything I have learned from previous robot projects I have made. But this robot will also feature some new stuff I have not tried before. Some of the key features if the robot includes:

  • Stepper motor based four-wheel-drive skid-steering drive system
  • Big Li-Ion battery
  • A lot of custom 3D printed parts
  • Heavy duty bumpers, large ground clearance and large foam wheels
  • Raspberry Pi main computer
  • Arduino Due for controlling low-level peripherals
  • Scanning Lidar sensor
  • Probably a Raspberry Pi camera module mounted on a pan/tilt system

So far, only the majority of the mechanical work is done. Here are a few images, click on them to make them larger:

Obstacle avoidance robot

This is my attempt at building a really good obstacle avoidance robot. The robot is built to drive around a normal indoor environment without getting stuck on stuff. The robot uses an Arduino Maga 2560 and several sonar sensors to detect obstacles.

This robot also has a Raspberry Pi and camera module, that will be used for computer vision experiments in the future.

More info about this robot on the obstacle avoidance robot page