sábado, 29 de dezembro de 2018

rov arduino



#include <Psx.h>

#include <SPI.h>

#include <Mirf.h>

#include <nRF24L01.h>

#include <MirfHardwareSpiDriver.h>



#define dataPin 4

#define cmndPin 3

#define attPin 2

#define clockPin 5



Psx Psx;



byte envio[8];

byte tx_endereco[5] = {0xD0,0xD0,0xD0,0xD0,0xD0};



void setup()

{

Serial.begin(57600);

Psx.setupPins(dataPin, cmndPin, attPin, clockPin, 10);



Mirf.spi = &MirfHardwareSpi;

Mirf.init();

Mirf.payload = 8;

Mirf.config();

}



void loop()

{

Psx.read();



if(Psx.psxID != 0x00)

{

envio[0] = Psx.psxID; // DIGITAL (82) , ANALOGICO (CE)

envio[1] = Psx.psxStatus;

envio[2] = Psx.psxThumbL; // SETAS, SELECT, DIGITAL L

envio[3] = Psx.psxThumbR; // (x,[],/\,O), START, DIGITAL R, (L1,L2,R1,R2)

envio[4] = Psx.psxJoyRX; // EIXO ANALOGICO "X" DO "R"

envio[5] = Psx.psxJoyRY; // EIXO ANALOGICO "Y" DO "R"

envio[6] = Psx.psxJoyLX; // EIXO ANALOGICO "X" DO "L"

envio[7] = Psx.psxJoyLY; // EIXO ANALOGICO "Y" DO "L"



 

      Serial.print("Data 0 ==> ");

      Serial.println(envio[2]);

      Serial.print("Data 1 ==> ");

      Serial.println(envio[3]);



Mirf.setTADDR(tx_endereco);

Mirf.send(envio);

while(Mirf.isSending());

}



delay(50);

}







#include <SPI.h>



#include <Mirf.h>

#include <nRF24L01.h>

#include <MirfHardwareSpiDriver.h>





byte entrada[8];



byte rx_endereco[5] = {0xD0,0xD0,0xD0,0xD0,0xD0};



uint32_t lastCommandTime = 0;



uint8_t data1, data2,data3, data4,data5, data6,data7;



void setup()

{

  Serial.begin(57600);

 

  Mirf.spi = &MirfHardwareSpi;

  Mirf.init();

  Mirf.setRADDR(rx_endereco);

  Mirf.payload = 8;

  Mirf.config();

}



void loop()

{

  if(!Mirf.isSending() && Mirf.dataReady())

  {

    Mirf.getData(entrada);

   

   

    data1 = ~entrada[1];

    data2 = ~entrada[2];

    data3 = ~entrada[3];

    data4 = ~entrada[4];

    data5 = ~entrada[5];

    data6 = ~entrada[6];

    data7 = ~entrada[7];

    /*    data 1

     * 1 = Seta para esquerda / analogico L para esquerda

     * 2 = Seta para baixo / analogico L para baixo

     * 4 = seta para direita / analogico L para direita

     * 8 = seta para cima / analogico L para cima

    */

    /*   data 2

     * 1 = [] / analogico R para esquerda

     * 2 = X / analogico R para baixo

     * 4 = O / analogico R para direita

     * 8 = /\ / analogico R para cima

     * 16 = R1

     * 32 = L1

     * 64 = R2

     * 128 = L2

    */

   

   

    Serial.print("Data 1 ==> ");

    Serial.println(data1);

    Serial.print("Data 2 ==> ");

    Serial.println(data2);

    Serial.print("Data 3 ==> ");

    Serial.println(data3);

    Serial.print("Data 4 ==> ");

    Serial.println(data4);

    Serial.print("Data 5 ==> ");

    Serial.println(data5);

    Serial.print("Data 6 ==> ");

    Serial.println(data6);

    Serial.print("Data 7 ==> ");

    Serial.println(data7);

   

    Mirf.flushRx();

    lastCommandTime = millis();

  }



  if((millis() - lastCommandTime) > 100)

  {

   

    Mirf.flushRx();

    lastCommandTime = millis();

  }

}







Nenhum comentário:

Postar um comentário