Контроллер PS3 с Arduino - PullRequest
0 голосов
/ 11 января 2020

В настоящее время я работаю над контроллером PS3 с Arduino UNO, используя USB-хост и Bluetooth 4.0. До сих пор я успешно выполнял коммуникационную часть, а также сигнал переводится с контроллера PS3 на Arduino. Но когда я добавляю функцию analogWrite () для управления двигателями D C, arduino прекращает прием сигнала и переходит в бесконечное значение l oop и продолжает показывать последние обновленные значения сигнала. Вот мой код.

#include <usbhub.h>

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#include <SPI.h>
#endif

#define enl 11
#define enr 10
#define l1 7
#define l2 8
#define r1 5
#define r2 6
USB Usb;
BTD Btd(&Usb); // You have to create the Bluetooth Dongle instance like so
PS3BT PS3(&Btd); // This will just create the instance

void forward(int val){
    analogWrite(enl,val);
    analogWrite(enr,val);
    digitalWrite(l1,HIGH);
    digitalWrite(l2,LOW);
    digitalWrite(r1,HIGH);
    digitalWrite(r2,LOW);
}

 void setup() {
  Serial.begin(115200);
 #if !defined(__MIPSEL__)
  while (!Serial); 
#endif
  if (Usb.Init() == -1) {
    Serial.print(F("\r\nOSC did not start"));
    while (1); //halt
  }
}
void loop() {
  Usb.Task();
  if (PS3.PS3Connected || PS3.PS3NavigationConnected) {
    if (PS3.getAnalogHat(LeftHatX) > 137 || PS3.getAnalogHat(LeftHatX) < 117 || PS3.getAnalogHat(LeftHatY) > 137 || PS3.getAnalogHat(LeftHatY) < 117 || PS3.getAnalogHat(RightHatX) > 137 || PS3.getAnalogHat(RightHatX) < 117 || PS3.getAnalogHat(RightHatY) > 137 || PS3.getAnalogHat(RightHatY) < 117) {

     if(PS3.getAnalogHat(LeftHatY)>=137)
        forward(PS3.getAnalogHat(LeftHatY));
   }
        else{
      stopBot();
    }
  }}
...