This class library has been created for use with the Apeiros Robot by Abe Howell's Robotics.

You are viewing an older revision! See the latest version

Homepage

/media/uploads/abotics/apeiros_gripper_10-04-2014.jpg

Apeiros is a low cost, flexible and entirely open source, educational mobile robot that has been designed for everyone by Abe Howell's Robotics, http://www.abotics.com. With an optional gripper mechanism Apeiros can manipulate objects and perform more advanced robotic tasks and experiments. Sensory expansion has been designed into this robot, so that you can add sensors as they are needed. I created Apeiros so that you can get hit the ground running in the wonderful world of robotics!

My Apeiros class library is released as open source under General Public License (GPL) Version 3, http://www.gnu.org/licenses/gpl-3.0.html, so please feel free to use and modify however you see fit.

An injection molded ABS plastic body helps to make Apeiros durable while providing functional mounting features. A total of (5) GPY0D810Z0F Infrared Red (IR) sensors, http://www.pololu.com/product/1134, by Pololu Robotics & Electronics can be added to Apeiros: 3 sensors in front and 2 in the back. These sensors are great for obstacle detection & avoidance. A custom designed motor & sensor shield functions to control both gear motors via an h-bridge chip while also reading the state of any connected GPY0D810Z0F IR sensors. Optional WW12 wheel encoders by Nubotics, http://www.nubotics.com, can be added when wheel rotation feedback is needed. A set of connectors on the motor shield will accept the WW12 encoders.

I am in the process of finalizing a wireless shield that will utilize the RN42XV Bluetooth module. My wireless shield will also provide ambient light sensors: 2 frontward and 2 rearward facing. With light sensors Apeiros can perform light tracking and avoidance behaviors.

/media/uploads/abotics/apeiros_shield_closeup_08-17-2014.jpg

Below is an example main.cpp file for Apeiros class library.

The Apeiros constructor passes a Serial transmit, tx, and receive, rx, PinName along with left and right motor PWM offsets. I am designing my wireless shield to use PA_9 for tx and PA_10 for rx. For now simply use the built-in USB serial connection by specifying SERIAL_TX & SERIAL_RX. No two gear motors will begin to rotate at the same PWM level, so I have allowed for the specification of a leftMotorPwmOffset and a rightMotorPwmOffset parameter. These values correspond to the PWM level that starts the respective motor rotating. You can determine these values by simply passing zero for the left and right PWM offsets. Then connect with Tera Term and issue the open-loop move command, MOxxx,yyy\r, where xxx is left motor speed and yyy is right motor speed (MO120,115\r). Simply vary the left and right motor speeds until you find the level at which each motor begins to rotate.These values will be the PWM motor offsets that need to passed in the Apeiros constructor.

main.cpp

#include "mbed.h"
#include "Apeiros.h"

Apeiros apeiros(SERIAL_TX, SERIAL_RX,120,115);

int main() {
    
    apeiros.Begin();
    
    while(1) {
        
        if (apeiros.IsSerialDataAvailable()) apeiros.ParseUartData();
        
        // Add your custom code below//
                
    }
}


All wikipages