domingo, 27 de março de 2011

servos

As experiências com os servos revelaram algumas dificuldades imprevistas. Os modelos adquiridos comportam-se de forma diferente:
  • O servo HS-311 (Standard) funciona normalmente, sem qualquer problema.
  • Os restantes (HS-5625MG e HS-7955TG (Digital Torque)) não respondiam inicialmente aos comandos enviados pelo Arduino.
Depois de várias tentativas nas aulas, com a fonte de alimentação, e alguma pesquisa na internet consegui descobrir que a causa não estava no circuito eléctrico, mas sim na programação. Utilizando o método de controlar os servos usando o tempo do sinal (myservo.writeMicroseconds(i);) era possível controlar os motores mas com apenas 90º de amplitude, em vez dos anunciados 180º. Para tentar resolver este problema publiquei uma mensagem no fórum do Arduino. A ajuda foi rápida e eficaz!
Temos agora o controlo total sobre os servos.

domingo, 13 de março de 2011

Experiências com os servos

Depois da chegada dos servos, no dia 28 de Fevereiro, tenho efectuado algumas experiências com os mesmos. Utilizei, em primeiro lugar, o servo menos dispendioso (HS-311) para evitar danos por má utilização nos restantes.
Constatei que existe uma dificuldade na unidade dos ângulos utilizados para controlar os motores: Para efeitos de cálculos trigonométricos são utilizados os radianos, mas para efeitos de controlo dos servos é necessário utilizar graus. A conversão, embora um processo bastante simples, leva a alguma imprecisão que deverá ser corrigida bem como a uma maior lentidão do programa. O Arduino foi no entanto perfeitamente capaz de controlar o servo com precisão quando o ângulo foi introduzido directamente (sem cálculos prévios).
A necessidade de ligar os servos a uma fonte de alimentação externa para funcionarem todos em simultâneo impediu-me de efectuar todos os testes desejados.
Fiz uma montagem do servo HS-311 a uma placa de madeira semelhante às que utilizaremos na nossa segunda maquete. O resultado pode ver-se nas imagens a baixo:

sexta-feira, 25 de fevereiro de 2011

Maquete 2

O nosso grupo decidiu construir uma 2ª maqueta antes da maqueta final. Servirá para testar a forma do nosso braço e iniciar, o mais rapidamente possível, a programação do mesmo. Será também possível com esta maqueta estudar materiais para o revestimento e construir actuadores adequados.

Motores e financiamento da escola

A nossa escola, Escola Secundária Poeta António Aleixo, deliberou patrocinar o nosso projecto em 50% do orçamentado. Este patrocínio será concretizado pela compra dos dois servos mais dispendiosos. Os servos foram já encomendados.

Cinemática inversa

Ao longo das últimas duas semanas tentamos resolver o problema da cinemática inversa. Conseguimos chegar, ontem, a uma solução que é ainda necessário testar. Os cálculos relativos à programação do robot que o tornam capaz de, dadas as coordenadas de um certo ponto no espaço encontram-se disponíveis no nosso site de documentos.

quarta-feira, 9 de fevereiro de 2011

Programção do robot - cinemática directa

O programa do nosso robot já tem a capacidade de descobrir a posição em que se encontra a partir dos ângulos dos servos. O código pode ser encontrado no nosso site documentos.

quarta-feira, 2 de fevereiro de 2011

Colaboração do professor António Aragão

O professor Aragão surpreendeu-nos ontem com uma caixa que incluía um motor (infelizmente de corrente alterna) alguns leds, resistências e transístores, conforme pode ser visto na imagem a baixo.

terça-feira, 1 de fevereiro de 2011

Ligação Nunchuck - Arduino

Cubo 3D em movimento, controlado pelo comando nunchuck
Ligação do comando ao Arduino que envia os dados para o pc.
Conseguimos ligar com sucesso a nossa placa Arduino ao comando nunchuck da consola wii. Utilizámos um pequeno conector feito em papel, cartão, papel de alumínio e fita-cola em que se insere o conector do comando. Ligam-se cada um dos quatro cabos do conector aos pinos conforme esta imagem sugere ou, em alternativa, às portas de comunicação i2c que a placa MEGA 2560 possui. Código utilizado retirado de http://arduino.cc/playground/Main/WiiChuckClass e de http://www.windmeadow.com/node/42
Pormenor da ligação feita com papel, cartão, papel de alumínio e fita-cola

Ligação do Arduino ao computador


domingo, 23 de janeiro de 2011

Calcular a posição do actuador

Para que o braço robótico consiga manipular objectos é determinante que se conheça a sua posição no espaço. Os servos, só por si, apenas respondem ao comando de se colocarem em certo ângulo, tornando a manipulação apenas possível por tentativa erro, em que o utilizador corrige continuamente os ângulos dos servos para obter os resultados desejados. É por isso necessário calcular a posição do actuador a partir destes ângulos (cinemática directa) e, também, o contrário: calcular os ângulos necessários para se chegar a uma dada posição (cinemática inversa).
Para se obter a posição da extremidade do braço utilizam-se eixos coordenados (a três dimensões) solidários com cada parte móvel do braço. Cada ponto de um destes eixos pode ser escrito em relação a um qualquer referencial, utilizando-se uma matriz de transformação que depende dos ângulos conhecidos entre os eixos (a que correspondem os ângulos dos servos) e da distância entre as origens dos eixos (medida de cada troço do braço).
A matéria de matemática envolvida nestes cálculos foge um pouco à que foi até agora leccionada nas aulas, pelo que solicitámos alguma ajuda aos professores de matemática (Paulo Teodoro) e de física (Eugénio Tiago).
Para mais informações acerca da mecânica e controlo de robôs manipuladores ler:
Craig, John J., Introduction to Robotics, Upper Saddle River: Pearson Education International, 2005.

domingo, 16 de janeiro de 2011

Orçamento e Financiamento

Com o novo desenho para o nosso 2º protótipo, principalmente devido à utilização de servos, o custo global do projecto aumentou. Para averiguar a sua viabilidade, já que não podemos concluir um projecto para o qual não temos financiamento suficiente, tornou-se imperativo elaborar um orçamento
Tivemos uma conversa com a senhora professora Maria João Silva da direcção da escola, à qual expusemos algumas dúvidas, em particular a capacidade da escola financiar o projecto. Foi-nos aconselhado que procurássemos patrocinadores para o projecto. É principalmente de questões "burocráticas" que o nosso trabalho de momento se trata. O orçamento está disponível para download no nosso site.

terça-feira, 4 de janeiro de 2011

Controlo com o wii nunchuck

Por sugestão do Fred, parece-me ser uma solução eficaz o controlo dos movimentos do nosso braço com a utilização do nunchuck, através do ARDUINO. Existem várias hipóteses para o controlo do braço, e que podem coexistir, utilizando a mais indicada à situação:

1. Controlo com sensores directamente ligados ao Arduino:
É relativamente fácil, como provei no caso da "fechadura" utilizar sensores do tipo interruptor para controlar os movimentos do ARDUINO. Se utilizássemos vários interruptores, cada um com uma função distinta podemos controlar sem grande dificuldade o movimento do braço.

2. Utilizando o wiinunchuck.

Esta á uma solução idêntica globalmente à anterior. Permite um controlo directo mais eficaz pelo utilizador. Este comando da consola wii tem um acelerómetro incorporado (sente os efeitos das forças que actuam sobre o comando), um mini-joystick, dois botões simples e um pequeno sinal de vibração. Funciona com o ARDUINO e existe online uma grande colecção de informações sobre como o incorporar. Aqui estão alguns exemplos:

http://www.youtube.com/watch?v=uzj0HpxRW4s
http://www.youtube.com/watch?v=Qlukl5fLi7s 

3. Através do computador. Controlar o braço utilizando o computador é também uma possibilidade. Pode permitir uma maior autonomia do robot se utilizarmos, por exemplo, uma câmara (webcam) que indentifique a posição de certos objectos, em princípio identificando-os a partir da sua cor, dando o programa ordem automática ao robot para que agarre o objecto e o coloque onde desejarmos. Utilizando o computador, e através da internet, é possível controlar o braço a partir de qualquer lugar do mundo.

Nova Visita ao IST

Fui mais uma vez amavelmente recebido pelo professor Paulo Jorge Oliveira no Instituto Superior Técnico e por alguns outros professores, técnicos e alunos de bolseiros de doutoramento nos passados dias 28 e 29 de Dezembro.
Começamos por escolher o material a utilizar. Deveria ser ao mesmo tempo barato, fácil de adaptar às nossas necessidades, adequado ao braço, leve e resistente. Foram encontradas duas soluções: o alumínio e o acrílico.
Alumínio em L
Acrílico

Partindo do pressuposto que usaríamos o alumínio, utilizando as peças do catálogo que me forneceram na visita anterior, um da Farnell e outro da RS, desenhámos várias esboços do braço, que fossem o mais possível aos nossos objectivos mas permitisse um bom desempenho do braço e fossem exequíveis por nós. O resultado está compilado no esboço 3D, disponível para download no nosso site. Este modelo tem pelo menos dois defeitos:
- O servo do ombro que faz a rotação que eleva o restante braço deveria estar do lado com maior peso para evitar as torções.
- A barra de suporte que está do lado esquerdo nesta imagem deve ser mais curta.


Os motores utilizados neste projecto são servos. Os mais potentes, na base, poderão ter de custar cerca de 100€ (x2), o do cotovelo cerca de 50€ e o da garra, ainda não desenhada no esquema 3D, cerca de 10€. O custo destes motores faz elevar bastante o orçamento global do projecto face ao previsto, pelo que há a necessidade de encontrar patrocínios, que serão indispensáveis à continuação do desenvolvimento do projecto. Temos ainda de ponderar a utilização de contra-pesos para aproximar o centro de massa de cada segmento a seu eixo de rotação.