Advertisement
cleberjz

CarrinhosPS3BT

May 4th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.09 KB | None | 0 0
  1. #include <address.h>
  2. #include <adk.h>
  3. #include <avrpins.h>
  4. #include <BTD.h>
  5. #include <cdcacm.h>
  6. #include <cdcftdi.h>
  7. #include <cdcprolific.h>
  8. #include <confdescparser.h>
  9. #include <hexdump.h>
  10. #include <hid.h>
  11. #include <hidboot.h>
  12. #include <hidescriptorparser.h>
  13. #include <hiduniversal.h>
  14. #include <hidusagestr.h>
  15. #include <masstorage.h>
  16. #include <max3421e.h>
  17. #include <max_LCD.h>
  18. #include <message.h>
  19. #include <parsetools.h>
  20. #include <printhex.h>
  21. #include <PS3BT.h>
  22. #include <PS3Enums.h>
  23. #include <PS3USB.h>
  24. #include <SPP.h>
  25. #include <Usb.h>
  26. #include <usbhost.h>
  27. #include <usbhub.h>
  28. #include <usb_ch9.h>
  29. #include <Wii.h>
  30. #include <XBOXRECV.h>
  31. #include <XBOXUSB.h>
  32.  
  33. /*
  34.  Barrett Anderies
  35.  March 11, 2013
  36.  This is a modified version of the PS3BT.ino example sketch by Kristian Lauszus
  37.  
  38.  23-3-2014 Código adaptado por Evandro Gonçalves - evandrosg@gmail.com
  39.  */
  40.  
  41.  
  42. //Inclui as Bibliotecas nescessá
  43.  
  44. #include <Servo.h>
  45.  
  46. // Declaramos as variáveis e seus valores que serão os pinos utilizados
  47. byte PinoDirecao = 2;      // Pino do Servo Motor
  48. byte PinoLuzRe = 3;        // Pino da Luz de Ré
  49. byte PinoFarolFrente = 4;  // Pino do Farol
  50. byte PinoFrente = 5;       // Pino Motor para Frente
  51. byte PinoTras = 6;         // Pino Motor para Trás
  52.  
  53. byte a = 0;                // Variável para indicar estado do valor do Farol
  54.  
  55. // Funções da Biblioteca PS3BT
  56. USB Usb;
  57. BTD Btd(&Usb);
  58. PS3BT PS3(&Btd);
  59.  
  60. Servo ServoDirecao; //Cria a instancia para o Servo da direção
  61.  
  62. void setup() {
  63.   Serial.begin(115200);                                      
  64.   if (Usb.Init() == -1) {                                            
  65.     Serial.print(F("\r\nOSC did not start"));
  66.     while(1); //halt
  67.   }
  68.   Serial.print(F("\r\nPS3 Bluetooth Library Started"));
  69.  
  70.   // Declamos os Pinos abaixo como Saída
  71.   pinMode(PinoDirecao, OUTPUT);
  72.   pinMode(PinoLuzRe, OUTPUT);  
  73.   pinMode(PinoFarolFrente, OUTPUT);
  74.   pinMode(PinoFrente, OUTPUT);
  75.   pinMode(PinoTras, OUTPUT);
  76.  
  77.   //Aqui associamos o pino que controlara o Servo a Variável "PinoDirecao"
  78.   ServoDirecao.attach(PinoDirecao);
  79. }
  80. void loop()
  81. {
  82.   Usb.Task();
  83.  
  84.   //Verifica se o Controle do PS3 esta conectado se estiver continua com as instruções abaixo
  85.   if(PS3.PS3Connected || PS3.PS3NavigationConnected) {
  86.    
  87.     //Faz a leitura do Controle Analógico Esquerdo que vai de 0 a 255 e com a função MAP converto esta escala em Graus de 179 a 0. Pois o Servo foi montado invertido.
  88.     ServoDirecao.write(map(PS3.getAnalogHat(LeftHatX), 0, 255, 179, 0));
  89.  
  90.     // Faz a leitura do Botão R2 Analógico que vai de 0 a 255 e envia para a variável PinoFrente
  91.     analogWrite(PinoFrente, PS3.getAnalogButton(R2_ANALOG));
  92.  
  93.     // Faz a leitura do Botão L2 Analógico que vai de 0 a 255 e envia para a variável PinoTras
  94.     analogWrite(PinoTras, PS3.getAnalogButton(L2_ANALOG));
  95.     //Ao ler qualquer valor no Botão L2 liga a variável LuzRe
  96.     digitalWrite(PinoLuzRe, PS3.getAnalogButton(L2_ANALOG));
  97.    
  98.     // Verifica se o botão X (Cross) for apertado liga o Farol dianteiro
  99.     if(PS3.getButtonClick(CROSS)==1){ // Se o botão X for pressionado ==1
  100.     a++; // Se a condição acima for verdadeira acrescenta 1 na variável “a”
  101.     digitalWrite(PinoFarolFrente, a); // Passamos o Valor da variável "a" que agora vale 1 para o pino PinoFarolFrente, 1 = HIGH
  102.     delay(10);// Este delay é so por segurança  
  103.     if (a>=2){ // Se a variavel for igual o maior que 2, "Segunda pressionada no botão X"
  104.       a =0; // A variável a volta a assumir o valor 0
  105.     digitalWrite(PinoFarolFrente, a);// Passamos o Valor da variável "a" que agora vale 0 para o pino PinoFarolFrente, 0 = LOW
  106.     delay(10);// Este delay é so por segurança  
  107.     }
  108.     }
  109.    
  110.   }
  111.  
  112.   // Caso o controle de PS3 não estiver conectado continua com as instruções abaixo
  113.   else
  114.    {
  115.     ServoDirecao.write(90); // Caso o controle não estiver conectado inicia o Servo a 90 Graus, ou seja no meio.
  116.    }
  117.    
  118.     if(PS3.getButtonClick(PS)) // Caso o Botão PS do controle for apertado, desliga a conexão do controle.
  119.     {
  120.       PS3.disconnect();
  121.     }
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement