Navigation

    M5Stack Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. Cakedrinker
    C
    • Continue chat with Cakedrinker
    • Start new chat with Cakedrinker
    • Flag Profile
    • Profile
    • Following
    • Followers
    • Blocks
    • Topics
    • Posts
    • Best
    • Groups
    Save
    Saving

    Cakedrinker

    @Cakedrinker

    0
    Reputation
    3
    Posts
    522
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    Cakedrinker Follow

    Posts made by Cakedrinker

    • RE: AtomMotion + PS4 Gamepad

      My board was defect, I changed the MotionBase , now it is working perfectly.

      posted in Arduino
      C
      Cakedrinker
    • RE: AtomMotion + PS4 Gamepad

      I played a little bit with the sorce code and tried to write the register of the STM32 direclty over I2C.

      #include <Wire.h>
      #include <PS4Controller.h>
      
      #define SERVO_ADDRESS  0X38
      
      int servoPos;
      
      void setup() {
        Wire.begin (25, 21);
        PS4.begin("4C:75:25:AD:78:7A");
        Serial.println("Ready.");
      }
      
      uint8_t SetServoAngle(uint8_t angle)
      {
        Write1Byte(SERVO_ADDRESS,0,angle);
        return 0;
      }
      
      void Write1Byte(uint8_t address,uint8_t Register_address,uint8_t data)
      {
        Wire.beginTransmission(address);
        Wire.write(Register_address);
        Wire.write(data);
        Wire.endTransmission();
      }
      
      void loop() {
        if (PS4.isConnected()) {
           servoPos =  (PS4.R2Value()) / 2;
        }
        SetServoAngle(servoPos);
        delay(100);
      }
      

      But the problems still exists, so maybe the problem is the FW of the STM32F030F4.

      posted in Arduino
      C
      Cakedrinker
    • AtomMotion + PS4 Gamepad

      Hello,
      I'm trying to build a RC car with PS4 Gamepad as controller.
      If I connect the servo directly to the AtomLite and Pin25, it is working like a charm, with the following example:

      #include <ESP32Servo.h> 
      #include <PS4Controller.h>
      
      Servo myservo;
      int servoPos = 0;
      int servoPin = 25;
      
      void setup(){
         ESP32PWM::allocateTimer(0);
         ESP32PWM::allocateTimer(1);
         ESP32PWM::allocateTimer(2);
         ESP32PWM::allocateTimer(3);
         myservo.setPeriodHertz(50);    // standard 50 hz servo
         myservo.attach(servoPin, 500, 2400);
      
        PS4.begin("4C:75:25:AD:78:7A");
        Serial.println("Ready.");
      }
      
      void loop() {
      
      if (PS4.isConnected()) {
        servoPos =  (PS4.R2Value()) / 2;
        }
      
       myservo.write(servoPos);
       delay(100);
      }
      

      but if I change to MotionBase it is very laggy.

      #include <M5Atom.h> 
      #include "AtomMotion.h"
      #include <PS4Controller.h>
      
      AtomMotion Atom;
      int servoPos;
      
      void setup(){ 
        M5.begin(true, false, true);
        Atom.Init();
      
        PS4.begin("4C:75:25:AD:78:7A");
        Serial.println("Ready.");
      }
      
      void loop() {
      
           if (PS4.isConnected()) {
              servoPos =  (PS4.R2Value()) / 2;
           }
       
           Atom.SetServoAngle(1,servoPos);
           delay(100);
      }
      

      What I'm doing wrong?

      posted in Arduino
      C
      Cakedrinker