AnalogX

Arduino-based DIY Gimbal Controller





Overview


    This DIY project helps you to build a controller for any of the AlexMos-based gimbal systems (SimpleBGC, BaseCam, etc) that support Bluetooth wireless connectivity. It's built around the Arduino platform, and a particularly offering from DFRobots that integrates a Playstation-like gamepad and a Leonardo-based Arduino - and runs off of 3 AAA batteries! Super portable, very durable and with two nice analog joysticks with a ton of buttons make this an ideal candidate for this sort of project. It also requires a Bluetooth module, to keep it simple I also used one from DFRobots, and that's it for parts!
    Overall build time should be about an hour, it requires no soldering, and only a screwdriver and (optional) wire snips to trim down the plastic in a few areas - so even if you're not a big DIY'er this project could be perfect for you.


Hardware

Code

Features


    The left analog joystick is used to move around the camera in pan and tilt fashion - the more you move the joystick, the faster it will move to the particular location. When you release the joystick, it will stop moving and hold the current position - keep in mind that if you have the movement speed set particular high it may not have the power to stop it immediately. The right analog joystick works in a similar fashion to the left joystick, but instead of permanently moving the gimbal position, when you release the stick it returns to where it previously was located.
    The numbered buttons on the right of the gamepad are used to change different 'modes', when you press one of the buttons, the RX light will start to flash, and you have a couple seconds to press whichever 'command' button you want. Here's a breakdown of mode and command buttons:

  • Mode 1: Gimbal Profile
    • Command 1: Profile 1
    • Command 2: Profile 2
    • Command 3: Profile 3
    • Command 4: DIY Gimbal Control

  • Mode 2: Right Joystick Movement Range
    • Command 1: 30 degrees
    • Command 2: 45 degrees
    • Command 3: 90 degrees
    • Command 4: 180 degrees

  • Mode 3: Unused

  • Mode 4: Point Recorder
    • Command 1: Add Point
    • Command 2: Remove Point
    • Command 3: Clear all points
    • Command 4: Unused

    The start button can be used to reset the gamepad to it's initial state, and will return the gimbal to it's start position and speed. The select button can be held down, and then the left analog stick can be used to alter the roll of the camera. The analog button will completely reset the controller, causing it to restart and reconnects.
    The direction pad on the left of the gamepad is used to control the speed at which the gimbal operates. The up and down arrows are used to change the physical speed the gimbal will actually move at, while the left and right change the amount of degrees of movement that the left analog joystick will send as it's moved.
    The Point Recorder mode allows you to record 10 different positions (pitch, roll and yaw) and speeds that you set the camera to, you can then use the left and right shift buttons to switch quickly between them. If you change to a new position while the gimbal is in the process of moving to the current point, it will immediately move towards the new position without finishing the prior movement.


Conclusion


    Hopefully you find this project helpful in your filmmaking and gimbal adventures! If you have any questions, comments or suggestions - make sure to let me know! Have fun!