Para más información mira el tutorial Building Line Following and Line Maze Courses y tienes
además una información adicional escrita por el profesor de robótica R. Vannoy, en el
documento
[http://www.pololu.com/file/download/line-maze-algorithm.pdf?file_id=0J195]
importantes conceptos.
8.b Trabajar con múltiples ficheros C en AVR Studio
El código fuente C para
Nota: Hay una versión compatible para Arduino en Pololu Ard
Este programa es mucho más complicado que el ejemplo ante
ficheros. Se usan varios ficheros para facilitar la creación de código. Por ejemplo el
contiene solo una función, usada para hacer giros en las intersecciones:
turn.c
1.
#include <pololu/3pi.h>
2.
// Turns according to the parameter dir, which should be 'L', 'R', 'S'
3.
// (straight), or 'B' (back).
4.
void turn(char
5.
{
6.
switch(dir)
7.
{
8.
case 'L':
9.
// Turn left.
10.
set_motors(-80,
11.
delay_ms(20
12.
break;
13.
case 'R':
14.
// Turn right.
15.
set_motors(80,-80);
16.
delay_ms(200);
17.
break;
18.
case 'B':
19.
// Turn around.
20.
set_motors(80,-80);
21.
delay_ms(400);
22.
break;
23.
case 'S':
24.
// Don't do anythin
25.
break;
26.
}
27. }
La primera línea del fic
el acceso a las funcione
librería como
de
lay_ms()
salidas de curvas en U. Los "giros" rectos también son manejados por esta función, aunque estos
no obligan a tomar decisiones. La velocidad del motor y los tiempos para los giros son los
parámetros necesarios que necesitamos para ajustar el 3pi; a medida que se trabaja en hacer las
soluciones más rápidas de los laberintos, estos serán algunos de los números necesarios para el
ajuste.
Para acceder a las funciones necesitas los ficheros
fichero de cabecera solo contiene una línea:
1.
turn(char dir);
void
Esta línea declara la función
cada fichero C necesita llamar a
1.
#include "turn.h"
Ten en cuenta los paréntesis usados. Esto significa que el compilador C usa este fichero de
cabecera en el directorio del proyecto, en lugar de ser un sistema de
.
.h
3pi
resolver del laberinto de líneas está en:
dir)
80);
0);
g!
h
ero está escrita para el 3pi, contiene el fichero de cabecera que permite
s de la librería
Pololu AVR. Dentro de turn(), se usan funciones de
y
set_motors()
turn()
sin incluir una copia del código. Para acceder a la declaración
turn()
añadie
para mejorar los giros a izquierda, giros a derecha y
"header file(extensión
ndo la línea siguiente:
(505k
examples\3pi-mazesolver
uino Libraries (ver Sección 5.g).
rior y esta partido en
.h)", como
ficheros de cabecera como
con
pdf)
.
m
últiples
fichero
. Este
turn.h