Tag Archives: AVR ATmega128

Modding a wireless rover ‘bot with Atmel’s ATmega128 MCU

Maker Radu Motisan has created a wireless rover ‘bot powered by Atmel’s ATmega128 MCU. As the folks at Hack A Day note, the latest ‘bot is actually the successor to an autonomous follower project started by Motisan a few years back.

“The final goal [was] to have to robot following its user. Putting the rover together was easy except for the tires,” Motisan explained in an article posted on PocketMagic.

“[Atmel’s] Atmega128 wins here with its 128KB flash memory, 16MHz max operating frequency and a multitude of IO ports.”

Radu kicked off his latest project by purchasing the chassis, which included the gear-head motors, tires and control board. He then removed the default chassis control board in favor of an AVR ATmega128 development board and his own motor controller.

Additional key hardware components installed by Radu include a metal bracket system to secure the battery pack, Bluetooth and GPS modules, five ultrasonic sensors, a character display, as well as head and tail lights.

“For the autonomous, human following software I improved the ultrasonic detection algorithm and the movement logic. Now the robot will follow a user more precisely and the speed will vary with the detected signal. [Meaning], if the robots sees the user at a greater distance, [it] will engage with a greater speed. If closer to the user, [the ‘bot] will proceed with smaller steps,” Radu added.

“For the remote control software, where the user controls the robot using a phone, the rover now reports its frontal sensor readings (that show the proximity in centimeters to any detected obstacle) to the smartphone. So the movement commands go from phone to robot – [while] the sensor readings go the opposite way, from robot to phone. [Plus], the software allows the user to turn the lights on/off. Using the frontal distance sensor, a red line is drawn, showing the proximity to an obstacle.”

As previously discussed on Bits & Pieces, Atmel’s high-performance, low-power 8-bit AVR RISC-based ATmega128 microcontroller combines 128KB of programmable flash memory, 4KB SRAM, a 4KB EEPROM, an 8-channel 10-bit A/D converter and a JTAG interface for on-chip debugging. The device supports throughput of 16 MIPS at 16 MHz and operates between 4.5-5.5 volts. By executing instructions in a single clock cycle, the ATmega 128 achieves throughputs approaching 1 MIPS per MHz, balancing power consumption and processing speed.

Additional data about Atmel’s ATmega128 can be found here, while more information on Radu’s ‘bot project is available here.