Sunday, October 18, 2015

Building a Small Rover for the House

A Small Rover for the House

I've been looking for a good platform to build a small rover that explores our house.   The previous "turtle" platform built in September did not seem to be up to the task.  The plastic geared motors are slow and weak.  The wheels slipped and had a hard time both with the wood floors and the area rugs.  Problems with the wheels and gears meant the rover would not move predictably, making it difficult to program.  I needed a small bot with good motors, encoders to measure wheel movement, and a digit compass to check the bot's orientation.

At some point recently, Pololu caught my attention.  I had considered their line-following PI bot, but became interested in the Zumo after seeing Adafruit's amazing bot that chases colored balls, which is built on a Zumo platform and an Arduino and . 


Pixy Pet Robot: chases red ball (image:AdaFruit web site)



For now, I need something that can drive on wood floors with area rugs.  It needs to be able to move from room to room without getting stuck.

Zumo Chassis with Arduino

 

Parts

  1. Pololu Zumo chassis kit with wheels, tractor tread, battery compartment
  2. Pololu 100:1 metal gear motors 
  3. L298N-Dual-H-Bridge
  4. Arudino Mega 
  5. HC-SR04 ultrasonic sensor
  6. NRF24L01 radio transceiver
  7. HMC5883L digital compass
 

 Zumo Platform


So, I'm building a Zumo based rover bot.  I'm starting with just chassis and tiny 6V motors with metal 100:1 gears from Pololu.  The plastic chassis kit is compact and smart and includes everything a small robot needs including wheels, tracks, battery holder with door, motor holders, and a small platform for mounting the rest of the bot gear.

I plan to build the rest of the bot with existing parts, including h-bridge, controllers, transceiver, sensors and software.

H-Bridge

A robot needs an h-bridge to control the flow of electricity to the motors.  The robots controller uses the h-bridge to send power to the motors driving them fast, slow, forward, reverse. 

My L298n h-bridge is big and bulky.  At this point, I wish I had the flat $25 Pololu shield.  

Controller

A robot needs a controller to check input and direct devices like motors, lights, and screens.  Controllers are simple computers with a programmable CPU mounted on a board with ports for sensors and devices.

I plan to use an Ardino Mega.

Transceivers 

Transceivers allow the robot to communicate with other devices.  Driving a robot by remote control requires a device to send and a device to receive.  I want my bot to check-in with the Raspberry PI based house server.

I intend to use a NRF24L01 radio transceiver.  They are cheap, short range, communicators that are easy to work with.

Sensors  

Robots need sensors for navigation.  A house rover needs to be able to navigate floor plans and furniture.  They use range finders, tilt sensors, compasses and even beacons like GPS to figure out their location.

I will use a HC-SR04 ultrasonic sensor, cheap and easy.
I will mount a board that includes a HMC5883L digital compass. 

Software

Controller programming is expressed in start and loop functions, where the start function 'boots' the device and the loop function continuously runs tasks to collect sensor data, make calculations, and drive devices over and over again. Programming is physical, real-time, event based and coded in C using the Arduino IDE.  I've been experimenting with state machines with event transitions.

Someday

I would like a rover bot that can navigate our house and interact with the Raspberry Pi house servers. 


No comments:

Post a Comment