Construção de um micro-robô autónomo
Funções para programação do robô DETI:
Geral:
1. Imprimir uma frase (string):
void printStr(char *string);
// Ex. printStr("Ola :)\n");
2. Imprimir um valor inteiro:
void printInt10(int val);
// Ex. printInt(contador);
3. Esperar durante um tempo fixo:
void wait(int tenth_seconds);
// Ex. wait(15);
LEDs:
1. Ligar / desligar 1 dos 4 LEDs da placa (0, 1, 2 ou 3):
void setLed(int ledID);
void resettled(int ledID);
// Ex. setLed(0);
// Ex. resetLed(1);
Botões de pressão:
1. Ler o estado do botão “start” (preto):
int startButton(void);
// 0 – botao nao premido
// 1 – botao premido
2. Ler o estado do botão “stop” (vermelho):
int stopButton(void)
// 0 – botao nao premido
// 1 – botao premido
Motores:
1. Comandar os motores:
void setVel2(int leftSpeed, int rightSpeed);
// speed ∈[-100, 100]
// Ex. setVel2(20, -20);
void stopMotors(void);
// Pára os motores
// Ex. stopMotors();
Sensores:
1. Ligar / desligar os sensores de obstáculos:
void enableObstSens(void);
void disableObstSens(void);
// Ex. enableObstSens();
// Ex. disableObstSens();
2. Ler os sensores:
void readSensors(void);
bool readBeacon(void);
// Lê sensores (exc. farol e encoders)
// Ex. readSensors();
// Lê sensor de farol (on/off)
3. Orientar sensor de farol:
void setServoPos(int pos);
// Orienta sensor de farol
// pos ∈[-15, 15]
Universidade de Aveiro - Dep. de Electrónica, Telecomunicações e Informática, 16-20/07/2012
Construção de um micro-robô autónomo
4. Obter o valor de um sensor de obstáculos:
int obstacleSensor(int sensorID); // sensorID: OBST_SENSOR_LEFT
//
OBST_SENSOR_FRONT
//
OBST_SENSOR_RIGHT
5. Obter o valor de um sensor de linha:
int lineSensor(int sensorID);
//
//
//
//
//
// sensorID: LINE_SENSOR_LEFT2
LINE_SENSOR_LEFT1
LINE_SENSOR_CENTER
LINE_SENSOR_RIGHT1
LINE_SENSOR_RIGHT2
LINE_SENSOR_ALL
6. Ler o valor acumulado dos contadores associados aos dois encoders:
void readEncoders(int *enc_mleft, int *enc_mright);
// Após a leitura o valor do contador
// é automaticamente colocado a zero
Estrutura-base de um programa para o robô:
#include "mr32.h"
int main(void)
{
// variáveis declaradas AQUI:
...
initPIC32();
while(TRUE)
{
// programa inserido AQUI:
...
}
return 0;
}
Universidade de Aveiro - Dep. de Electrónica, Telecomunicações e Informática, 16-20/07/2012
Download

Funções para programação do robô DETI: Geral: 1. Imprimir uma