Joystick + Arduino + RF

Outubro 31, 2008 at 9:26 pm | In Arduino, RF | 4 Comments

Deixo-vos um vídeo que fiz a mostrar o que consegui fazer com 1 joystick, 1 Arduino, Módulos RF, alguns componentes electrónicos e alguma programação.

Link Alternativo

Este é o meu primeiro projecto com módulos RF. Os LEDs já apagam!

Depois adapto este circuito a um carro telecomandado que ainda irei comprar.

Materiais Usados

  • Hardware
    • 1 Joystick (Logitech Attack 3, mas qualquer outro serve)
    • 1 Arduino
    • 2 Módulos RF
    • 1 Encoder (MC145026)
    • 1 Decoder (MC145027)
    • 2 Breadboards
    • Muito Fio
    • Alguns componentes electrónicos
  • Software
    • Python (recebe os dados do joystick e envia-os por Serial)

Mais tarde posto o código na íntegra.

Links Relacionados

  • Python
  • Pygame – extensão do python que usei para ler os dados do joystick
  • Pyserial – extensão do python que usei para enviar dados para a porta COM
  • Arduino Serial Read – página que explica como ler dados da porta COM (Serial)

Transmissor RF Terminado

Outubro 30, 2008 at 11:43 pm | In Arduino, RF | 4 Comments

Terminei hoje o transmissor de RF. Demorou, mas foi! Mais tarde posto os esquemas. Por agora, ficam algumas fotos

A imagem em cima mostra (à esquerda) o transmissor e (à direita) o receptor.

  1. Testei o encoder e o decoder de forma directa
  2. Introduzi os módulos RF
  3. Introduzi o Arduino

Na seguinte imagem, podem já ver o emissor RF a receber dados do Arduino.
Consegui fazer uma sequência simples de “Blink” de 4 LEDs.

O próximo passo é controlar os LEDs com um Joystick, por Serial (frente, trás, direita, esquerda).

Links para tutoriais do Arduino

Outubro 29, 2008 at 4:39 pm | In Arduino | Leave a Comment

Neste post vou deixar links para tutoriais sobre o Arduino. Sei que não é fácil encontrar um ponto de partida para iniciar no Arduino, especialmente para quem tem dificuldades com o Inglês.

[E-Book] Arduino Programming Notebook – Brian Evans

Outubro 26, 2008 at 3:40 pm | In Arduino, E-Books | Leave a Comment

Este livro é um auxiliar direccionado para a programação na plataforma Arduino.

Dá muito jeito para tirar dúvidas relativamente às sintaxes das funções, mas também para entender melhor o próprio funcionamento do Arduino.

Por ser gratuito, recomendo o download.

[Download] [Ver Online]

Links Relacionados

No site oficial do Arduino, encontra-se também uma lista das funções que podem ser utilizadas na programação do Arduino.

Kit Protoshield Terminado

Outubro 25, 2008 at 1:36 am | In Arduino | 1 Comment

Hoje comecei e acabei de montar o kit da Protoshield. Para quem não sabe, a Protoshield é um “addon” para o arduino, por encaixar por cima do mesmo. Basicamente, facilita a criação de protótipos por ser normalmente usada para fazer testes.

Inclui:

  • 2 LEDs para testes (com as devidas resistências)
  • 1 Switch para Reset
  • 1 Switch para testes
  • Jumpers fêmea, tal e qual como no Arduino.
  • Jumpers fêmea para ligar o modem Bluetooth BlueSmirf da Sparkfun.

O kit é normalmente usado em conjunto com uma mini-breadboard, que se adapta perfeitamente. Também há quem use as perfurações para soldar outros componentes para fazer uma shield definitiva.

Links relacionados:

Arduino e Wii Nunchuck

Outubro 19, 2008 at 4:39 pm | In Arduino, Nunchuck | Leave a Comment

Encontrei um tutorial muito interessante que explica como usar o Arduino para controlar dois servos a partir de um controlador Wii Nunchuck.

A imagem em baixo mostra um exemplo de ligação do Nunchuck e de um servo ao Arduino.

Aqui está o código disponível na página. Podem ler mais nos links disponibilizados no final do post.
As únicas variáveis que devem ser alteradas para ajustar o código ao que pretendem fazer são as seguintes:

refreshTime (set to 20) – tempo de actualização mínimo para os pulsos do servo
minPulse (set to 1000) – valor mínimo dos pulsos do servo 1
minPulse2 (set to 500) – valor mínimo dos pulsos do servo 2
dtime (set to 10) – tempo de espera (em milisegundos) entre cada loop
pwbuffsize (set to 10) – quantidade de valores a serem lidos e feita a média (o mesmo valor para ambos os servos).

A minha ideia é adaptar este sistema a um sistema Wireless, isto é, enviar os sinais a partir do PC, pela porta paralela, para o Arduino as ler, interpretá-las e fazer actuar os dois servos.

Links Relacionados

Read wii nunchuck data into arduino
Boarduino, Wii Nunchucks, and Servos

Módulos RF

Outubro 17, 2008 at 10:23 pm | In Arduino, RF | 4 Comments

Encontrei esta página que mostra como podemos ligar dois arduinos por RF. Vou tentar adaptar o código de forma a não precisar de 2 arduinos. A ideia é enviar os dados do PC para o Arduino pela porta paralela.

Vou fazer os testes da seguinte forma:
PC – Porta Paralela – RF TX – Antena … Antena – RF RX – Arduino – USB – PC

Com esta ligação vou poder enviar os dados pela porta paralela, recebê-los pelo arduino e lê-los por Serial.

#include 

/*
Read from a RF Link receiver module
and get the data into a computer.
*/

#define rxPin 2
#define txPin 3
#define ledPin 13

// set up a new serial connection for communicating with RF receiver
// (this also frees up Arduino's built in serial port for PC communication)
SoftwareSerial rfSerial =  SoftwareSerial(rxPin, txPin);

char prevChar = 0;

void setup() {
  // set up the input and output pins
  pinMode(rxPin, INPUT); // set up pins for serial comm. with RF receiver
  pinMode(ledPin, OUTPUT);
  // initialize serial comm
  rfSerial.begin(2400); // begin serial connection with RF Link unit
  Serial.begin(2400); // begin serial communication over USB to the computer
  // blink LED on and then off just to let us know the setup routine is complete
  digitalWrite(ledPin,HIGH); // turn on LED
  delay(1000);
  digitalWrite(ledPin,LOW); // turn off LED
}

void loop(){
  char someChar = '0';
  someChar = rfSerial.read(); // read whatever the RF Link has to offer
  // print out the character:
  if (someChar!=prevChar) { // only print out new data (don't print 0 a billion times in a row)
    Serial.print(someChar, BYTE); // send data to computer
    prevChar=someChar; // store what we just read
  }
}

A partir dos dados lidos pelo arduino, programo-o de modo produzir outputs (LEDs, para já) de acordo com os dados recebidos pelo RF.

Arduino a caminho…

Outubro 17, 2008 at 8:44 am | In Arduino | Leave a Comment

Amanhã faço anos e como prenda, vou ter um Arduino Diecimila. Estou ansioso que chege, espero realizar muitos e bons projectos com ele. O objectivo principal é ir iniciando a programação para poder estar mais à vontade quando chegar essa fase do projecto de Área de Projecto.
Vou começar por fazer pequenos testes, mas pretendo introduzir o controlo remoto por RF (pela porta paralela). Gostava também de poder controlar remotamente um carro com a Wii Nunchuck.

O passo seguinte é comprar o NunChuck e o módulo RF.
Veremos o que sai daqui…

Ligar 2 Servos ao Arduino

Outubro 15, 2008 at 6:01 pm | In Arduino | Leave a Comment

Encontrei esta página do “Arduino Playground”. Decidi postar no blog, porque em princípio vamos usá-la no nosso projecto para controlar a direcção do esguicho no topo do veículo.

A Biblioteca foi criada para controlar dois servos nos pinos 9 e 10. Foi baseada na biblioteca “Servo Timer 1″, mas em vez de controlar o ângulo em graus (degrees), controla-o em microsegundos. Os microsegundos dão-nos 10 vezes mais resolução do que os graus.

Aqui fica um exemplo prático de utilização:

//Example code for using ServoTimeTimer1 library
// hardware control of up to two servos, on Arduino pins 9 & 10 

#include <ServoTimeTimer1.h>

#define servoPin1 9
#define servoPin2 10
#define potPin1 0
#define potPin2 1

ServoTimeTimer1 servo1;
ServoTimeTimer1 servo2;

int potVal1 = 0;
int potVal2 = 0;

void setup()
{
  servo1.attach(servoPin1);
  servo2.attach(servoPin2);

}

void loop()
{

    potVal1 = analogRead(potPin1);

    potVal2 = analogRead(potPin2);

    //Here we convert a 0-1023 range to a 500-2546 range
    //2546 is clipped to the maximum value of 2500 internally

    servo1.write((potVal1*2)+500);
    servo2.write((potVal2*2)+500); 

}

Liguem os potenciómetros, um no pino analógico 0 e o outro no analógico 1.
Liguem um servo no digital 9 e o outro no digital 10.

Compilem, rodem os potenciómeteros para mover os servos.

[E-Book] “Getting Started with Arduino” – Massimo Banzi

Outubro 15, 2008 at 4:11 pm | In Arduino, E-Books | 3 Comments

Este livro é uma introdução à utilização do Arduino. Explica o funcionamento para quem não tem absolutamente nenhumas bases na matéria, concluindo com alguns exemplos práticos.

Aconselho…

Link: http://www.tinker.it/en/uploads/v3_arduino_small.pdf

Este é a edição expandida e actualizada deste material livro de iniciação ao Arduino, indicado por Paulo Gonçalves. Tem formato online, de acesso gratuito.

Link: http://oreilly.com/catalog/9780596155513/index.html

« Página Anterior

Blog em WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.