Mecanum Drive Coding on VEXCode Blocks

Currently I am experimenting with a mecanum drive/base and have finished building it. Although I am not sure how to code a mecanum base on VEXCode Blocks. Any help would be appreciated

1 Like

google is your friend. Searching box in the vexforum is your friend. There are a lot of threads and information there.

I’m sorry but I haven’t found anything for VEXCode Blocks. @langchen

If you look at the Wiki that is forming up, you can see some images and code relating to mecanum drives.

The general concept is that you will combine 3 joystick signals together to give a motor value to each of the 4 wheels. One signal for Y (forward/reverse), one signal for X (strafe) and one signal for W (turn).

If you open the example project for Arcade Left (or Right) you will see how the signals for Y and W are combined on one joystick to control a typical inline drive. You can start with that code, and add the lines needed to give a value to each of your 4 drive motors. To strafe, you will add (or subtract) the horizontal axis signal from the other joystick for each motor.

Typically it would look something like:

motorName = Y signal + X signal + W signal
frontLeft = axis3 + axis1 + axis4
backLeft = axis3 - axis1 + axis4
frontRight = axis3 - axis1 - axis4
backRight = axis3 + axis1 - axis4 

If you look at the diagrams in the wiki, the reason for adding or subtracting is there. (It’s possible I goofed them up, so check my work) :slight_smile:

edit: screen cap of one motor with 3 signals:
meca-blockly

7 Likes

you need to understand the concept/math behind the mecanum. Here is the good one.

http://www.robotc.net/blog/2011/11/22/vex-mecanum-drive-using-robotc/

DougMoyers also gave a good resource for you to start.

2 Likes

here ya go
image

2 Likes

MechanControl.v5blocks (9.9 KB)

1 Like

This code worked wonders for my robot! How would you suggest coding autonomous periods? Would it be more useful just to use a standard 4 motor drivetrain or is there a simple way to program the strafing functions and use a value that all motors (or some) would drive for?

Welcome to the forum. It would be a good way to get started to work with the standard drivetrain code. Once you get a sense for how it works, you could look to create your own code to strafe for a specified distance.

Just a heads up, reviving old threads is considered bad form. Probably hard to see here, since this thread got bumped nearly a year after a previous post. A fresh thread saying “I found some sources here that got me started coding mecanum driver control in blocks, anyone have tips on coding autonomous?” would be the preferred.

3 Likes

Hey this was soo awesome I wanted to ask one question how would I get it drive forward regularly?

what would you mean by that?

like not straffing the entire time

Odd. It works for me, so it might be an issue on your end,