- Main Page
- Files

# C:/Users/Michael/Desktop/trunk/program/demo/runbreitenberg_adv.c File Reference

Obstacles follower/avoider. More...

`#include "motor_led/e_init_port.h"`
`#include "motor_led/advance_one_timer/e_motors.h"`
`#include "motor_led/advance_one_timer/e_led.h"`
`#include "motor_led/advance_one_timer/e_agenda.h"`
`#include "uart/e_uart_char.h"`
`#include "a_d/advance_ad_scan/e_ad_conv.h"`
`#include "a_d/advance_ad_scan/e_prox.h"`
`#include "./runbreitenberg_adv.h"`

## Functions
void | shock_neuron (void)
| Calcul the speed to set on each wheel for avoiding.
int | lin_speed_calc (int distance, int gain)
| Calcul the speed to set on each wheel for following.
void | run_breitenberg_follower (void)
| The "main" function of the follower demo.
void | run_breitenberg_shocker (void)
| The "main" function of the avoider demo.

## Detailed Description

Obstacles follower/avoider.

## Introduction

This demo is made to illustrate how to use the 8 proximities sensors.
The demo is divided in two programms:

- A programm to follow what is detected on the front of the e-puck (for exemple another e-puck).
- A programm to avoid the obstacles.

These two programms work exactelly on the same way. First we do the acquisition of the proxymities sensor and then we do a level-headed sum of this acquisition. Finally we set the speed in concordance of the level-headed sum.

## Playing the demo

### Playing the follower

First of all, move the selector to the position 4 and reset the e-puck. The e-puck will go forward until he meets anything (it works good with fingers or another e-puck). After that he will follow him by staying always on the same distance.

### Playing the avoider

First of all, move the selector to the position 5 and reset the e-puck. The e-puck will go forward until he meets an obstacle. At this time he will find the better way to avoid him.

## Video of the demo

- The video of the follower demo: http://www.youtube.com/watch?v=6DYp5O1cnew
- The video of the avoider demo: http://www.youtube.com/watch?v=Y-RsvDyUfUE

Author:
  Code: Michael Bonani, Jonathan Besuchet
  Doc: Jonathan Besuchet

## Function Documentation

int lin_speed_calc | ( | int | distance,
|  | int | gain |
| ) |  |  |

Calcul the speed to set on each wheel for following.

Here we do a level-headed sum to take advantage of each captor depending of there position. For exemple if the captor number 0 detect something, he has to set the left speed high and set the right speed low.

void shock_neuron | ( | void |  | ) |

Calcul the speed to set on each wheel for avoiding.

Here we do a level-headed sum to take advantage of each captor depending of there position. For exemple if the captor number 0 detect something, he has to set the right speed high and set the left speed low.