MACCHINA TELECOMANDATA CON XBEE AIUTO

Salve a tutti, da poco ho incominciato a fare dei progettini con arduino. Per ora seguendo delle guide su internet sono riuscito a realizzare una macchinina automatica che cambia direzione quando individua un ostacolo (come quella allegata sotto) però ora volevo modificarla: premendo un tasto vorrei riusce a comandarla con un pad di un joystick come nell immagine allegata sotto. Per far questo ho letto che mi serve 2 moduli xbee e qualche shield.
Il tutto è possibile o troppo complesso? Mi sapreste dire quali materiali devo comprare per realizzarlo?

radiocomando-arduiono-xbee.jpg

Non necessariamente degli xbee. Gli xbee costicchiano anche se offrono la possibilità di creare reti abbastanza complesse quindi se vuoi spendere qualcosa un più non c'è problema altrimenti dei semplici moduli radio seriali andranno bene!
Basta configurare i moduli in modo che si vedano (nel caso degli xbee tramite un software chiamato X-CTU), poi ci scrivi sopra come quando scrivi sulla seriale di arduino!

Usando dei moduli xbee di cosa avrò bisogno? Girando per internet ho trovato che servono 2 moduli xbee , 1 XBee USB Adapter , XBee 5V/3.3V Adapter for microcontroller connectione la wifi shield. Serve altro o qualche componente è di troppo?

Dipende, l'usb adapter ovviamente ti serve per attaccarlo direttamente al pc ed usarlo come una semplice porta seriale. Lato arduino invece ti serve qualcosa così, cioè una scheda di breakout( la piedinatura del modulo non è quella da 2.54mm) con integrato un regolatore di tensione.

ma in questo modo spendi un casino, i moduli xbee costano tanto poi ache adattatori lo stesso, secondo me ti conviene prenderti due moduli NRF24L01+ che li trovi a circa 3$ su ebay, l'unico problema sara che avrai bisogno di due arduino, ma sempre meno di 2 xbee + adattatori :slight_smile:

Perche servono 2 arduino? e come posso interfacciare e far comunicare tra di loro i moduli NRF24L01+? non ho trovato nessuna guida

Luca_94:
Perche servono 2 arduino? e come posso interfacciare e far comunicare tra di loro i moduli NRF24L01+? non ho trovato nessuna guida

il primo arduino deve mandare e il secondo deve ricevere, per quanto riguarda la comunicazione è semplicissimo, c'è una libreria già fatta che fa tutto per te, io avevo fatto una piccola prova: - YouTube
se vuoi posso farti vedere anche il codice :slight_smile:

Grazie mi faresti un favore! XD mi potresti dire dove posso trovare le librerie?

ok, una premessa: il codice non è proprio perfetto, era solo una prova per vedere come funziona :slight_smile:

Trasmettitore

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

RF24 radio(9,10);

const uint64_t pipe = 0xF0F0F0F0E1LL;

int triggerPort = 5;
int echoPort = 8;

void setup(){

  pinMode( triggerPort, OUTPUT );
  pinMode( echoPort, INPUT );
  radio.begin();
  radio.openWritingPipe(pipe);

  pinMode(3, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(6, OUTPUT);
  digitalWrite(7,0);
  digitalWrite(2,0);
  digitalWrite(6,0);
  digitalWrite(3,1);
  delay(200);
  digitalWrite(3,0);
  radio.startListening();
}

void loop(){
  radio.stopListening();
  
  long duration = pulseIn( echoPort, HIGH );
  long r = 0.034 * duration / 2;
  
  if(duration>38000) duration = 0;
  
  bool ok = radio.write( &r, sizeof(long) );
  
  if(ok){
    digitalWrite(3,1);
    delay(200);
    digitalWrite(3,0);
  }else{
    digitalWrite(7,1);
    delay(200);
    digitalWrite(7,0);
  }
  
  radio.startListening();
  delay(50);
}

Ricevitore

#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "printf.h"

RF24 radio(9,10);

const uint64_t pipe = 0xF0F0F0F0E1LL;

void setup(){
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();
  delay(100);
  Serial.begin(9600);
  printf_begin();
  
  radio.printDetails();
}

void loop(){
  
  if( radio.available() ){
      int got_distance;
      radio.read( &got_distance, sizeof(long) );

        printf("Distance %d\n",got_distance);
  }
  
}

comunque, un po di link per xbee

http://schianorobotics.altervista.org/Arduino_e_Xbee.pdf

Grazie 1000! Proverò ad utilizzare i NRF24L01+ in quanto meno costosi e da come sembra più facili da utilizzare.

Ultima cosa ho letto che i moduli NRF24L01+ vanno collegati nei pin 12,11,13,8,7 ma nel ricevitore sono occupati dal motor shield come posso fare?