Posts Tagged ‘beta02’

Projecto beta02 – Primeiros testes

26 de Janeiro de 2012

O robot tem novo programa com todos os sensores e atuadores a trabalhar em conjunto. Já cumpre em grande parte o objectivo de evitar obstáculos como pode ser visto no video. Ainda é necessário afinar a velocidade quando está a recuar ou a desviar-se de um obstáculo, assim como acertar quanto o tempo em deverá fazer essas manobras.

É preciso agora encontrar um balanço entre a velocidade e o tempo por forma a que as manobras sejam o mais eficazes sem virar demais ou de menos como se vê no video. Isto leverá à alteração dos parâmetros e sucessivos testes até melhorar o comportamento de acordo com o esperado.

Video

Programa

/*
 * P012_ir_servo_decision_motors_2.pde - Wall avoider
 *   
 * 20120121 Luis Sismeiro
 */

#include <Servo.h>
#include <L29x.h>

#define SERVOMAXRIGHT 10
#define SERVOMAXLEFT 155
#define SERVOCENTER 75
#define IRSAMPLES 10
#define IRTHRESHOLD 170
#define FASTSPEED 255
#define SLOWSPEED 255
#define ROTATEDELAY 500

(more…)

Anúncios

Robot beta02 – Teste dos sensores e actuadores

18 de Janeiro de 2012

Desta vez e com a confiança adquirida no projecto anterior avancei logo para a programação do robot beta02. Mas como em qualquer projecto quando atalhamos alguns dos processos é natural que as coisas não funcionem à primeira.

Visto que já estava a ter problemas com o novo programa e também comecei a desconfiar do circuito e da electrónica, decidi refazer todo o circuito e também criar um programa só para testar os vários sensores e actuadores.

Esta parte devia ter sido a primeira por onde devia ter começado para despistar facilmente problemas tanto do hardware como do software. Não que não soubesse já que devia assim mas como facilitei tive de voltar ao início.

Deixo aqui o código que criei para os testes e aproveito para anunciar a estreia da bilblioteca Arduino feita por mim para usar o L293 no controlo do robot beta02. Para além de facilitar o controlo dos motores, fica melhor testada numa aplicação “real”.

Lista de testes

  • Roda direita para a frente à maxíma velocidade e para trás a 4/6 da velocidade máxima
  • Roda esquerda para a frente à maxíma velocidade e para trás a 4/6 da velocidade máxima
  • Servo vira para a direita, depois à esquerda e por fim centro
  • Sensor direito e esquerdo do parachoques que acende LED no pin 13 (não é feito no video)
  • Leitura do valor do sensor de distância IR e envio para a porta série (não é visível no video)

Video

(more…)

L29x – Informação e exemplo de uso da biblioteca

16 de Janeiro de 2012

No outro dia apresentei a minha primeira biblioteca Arduino para ajudar no uso de pontes H para controlo de motores. Neste momento estou a usar a biblioteca no controlo dos motores do robot beta02.

Desde a primeira versão já houve alterações e correcções que deram origem à versão 2. Deixo aqui o README e o exemplo da biblioteca que estou a distribuir. Sugestões e correcções são bem-vindas.

README

L29x Arduino Library
--------------------
This is a library to simplify the use of H bridges in you sketches. You
need to configure the Arduino pins that are connected to the H bridge
according to their functions.

For example we connect an L293 driving two motors to the Arduino Uno.
This are the pins used:

    L293 ------------- Arduino
    --------------------------
    1,2EN ------------ 2
    1A --------------- 3 (PWM)
    2A --------------- 4
    3,4EN ------------ 6 (PWM)
    3A --------------- 7
    4A --------------- 8

We start declaring the two motors:

    L29x motorOne(3, 2, 4);
    L29x motorTwo(6, 7, 8);

(more…)

L29x – Biblioteca Arduino para pontes H

14 de Janeiro de 2012

Estava eu a mexer no código do robot beta02 quando achei que devia criar um outro ficheiro para começar a dividir o código em vez de ter tudo num único.

Comecei a ler qual o uso efectivo dado ao ficheiro de include quando li que normalmente tem associado o *.c onde são implementadas as funções defenidas no *.h. Tentei alterar o código do robot para implementar desta forma mas estava a misturar os conceitos do C com os conceitos do Arduino pelo que não estava a conseguir.

Decidi então implementar uma biblioteca de raíz para controlar os motores com a ponte H L293. Uma vez que há compatibilidade entre vários destes circuitos integrados como o L293, L298 e SN754410, a biblioteca pode ser usada com qualquer um destes atribuindo correctamente os pinos.

Deixo aqui a primeira versão para vossa análise e utilização caso estejam interessados. Ainda é capaz de levar melhorias pelo que assumam como tendo a qualidade beta de projectos em fase inicial. Se tiverem dúvidas ou sugestões a fazer, podem deixar nos comentários.

Podem encontrar a  biblioteca aqui: http://dl.dropbox.com/u/5218310/L29x-v2.00.zip (nova versão)