14-02-2016, 17:04
Witam,
Próbuję zrobić robota, który sterowany jest bezprzewodowo padem od PS3. Jak na razie pad bezproblemowo komunikuje się z kontrolerem, servomechanizmy działają, ale problem leży w tym, że kod, który mam powoduje to, że gdy steruję gałkami pada i puszczę gałkę to silnik wraca do zerowej pozycji ( tak jak w sterowaniu samochodem koła powracaja do pozycji prostej). Czy da się tak zmodyfikować poniższy kod, a by silniki nie powracały do pozycji zerowej wraz z puszczeniem gałki kontrolera PS3?
Kod:
Próbuję zrobić robota, który sterowany jest bezprzewodowo padem od PS3. Jak na razie pad bezproblemowo komunikuje się z kontrolerem, servomechanizmy działają, ale problem leży w tym, że kod, który mam powoduje to, że gdy steruję gałkami pada i puszczę gałkę to silnik wraca do zerowej pozycji ( tak jak w sterowaniu samochodem koła powracaja do pozycji prostej). Czy da się tak zmodyfikować poniższy kod, a by silniki nie powracały do pozycji zerowej wraz z puszczeniem gałki kontrolera PS3?
Kod:
Kod:
#include <PS3BT.h>
#include <Servo.h>
USB Usb;
BTD Btd(&Usb);
PS3BT PS3(&Btd);
Servo servo1;
Servo servo2;
void setup() {
Serial.begin(115200);
if (Usb.Init() == -1) {
Serial.print(F("\r\nOSC did not start"));
while(1); //halt
}
Serial.print(F("\r\nPS3 Bluetooth Library Started"));
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
servo1.attach(5);
servo2.attach(3);
void loop()
{
Usb.Task();
if(PS3.PS3Connected || PS3.PS3NavigationConnected) {
servo1.write(map(PS3.getAnalogHat(RightHatX), 0, 255, 0, 255));
servo2.write(map(PS3.getAnalogHat(LeftHatY), 0, 255, 180, 0 ));
}
if(PS3.getButtonClick(PS)) {
PS3.disconnect();
}
}