An active tactile sensor which is going to mount on the mobile robot, is an antenna that can be used to detect the obstacles and identify their materiel , the distance from the robot and the shape. Since the model is independent of lighting condition, it can be use without any light source to track the paths . Accelerator is the only sensor which is mounted on top of the antenna . The antenna is able to detect the acceleration which is happen due to some contact and by analyzing that data the system is able to identify the material and shape of the object.
Continue the study of reading materials. According to the reading materials a proper data set is needed to go for analyzing process of the project. Therefore mainly focus on the collecting data set.
Initial accelerator and pan tilt unit testing were started. Two MR RC 1503 servo motors were used to design prototype pan tilt unit and it was controlled by using raspberry pi 3 development board and the PCA 9685 servo controller.Initially the servo motors were controlled without using the PCA9685. In that case studied the behavior of the servo motors to set the PWM (Pulse Width Modulation) signal to the motors. Specification details of the used motors as follows.
Brand: MR.RC
Stall torque: 4kg/cm (4.8V), 6kg/cm (6.0V)
Operating voltage: 3.5-8.4V
Operating speed: 0.14sec/60°at 4.8v, 0.11sec/60°at 6v
Cable length: 300mm
Weight: 47g
if it is used a micro controller which has a PWM out put like (ARDUINO) it is very much easy to control the motors. But the controlling boards like Raspberry doesn't have a PWM pin it self. Therefore we need to have manually calculate the pulse for the PWM signals.
Figure 01: Calculations for the servo motor PWM signal
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
p = GPIO.PWM(11, 50)
q = GPIO.PWM(12, 50)
p.start(7.5)
q.start(7.5)
try:
while True:
p.ChangeDutyCycle(2.5)
q.ChangeDutyCycle(2.5) # turn towards 0 degree
time.sleep(1) # sleep 1 second
p.ChangeDutyCycle(12.5)
q.ChangeDutyCycle(12.5) # turn towards 180 degree
time.sleep(1) # sleep 1 second
except KeyboardInterrupt:
p.stop()
GPIO.cleanup()
Figure 02: Test setup of the Pan-tilt unit
The following video shows how the prototype unit of the pan tilt works at the initial state.