Documentation for Bronky!

This is Documentation for the Bronky bot by the south doyle robotics team

docs Bronky

Creating a Project

https://github.com/Atikul10152002/Bronky/blob/master/docs/img/createaproject.png?raw=true
  • From the pop up list of target click on VEX EDR and press select button
https://github.com/Atikul10152002/Bronky/blob/master/docs/img/VEXEDR.png?raw=true
  • Now for Language selection you can choose either Blockly or Python [Recommended] and click select
https://github.com/Atikul10152002/Bronky/blob/master/docs/img/languages.png?raw=true
  • Now Name your program something that suits your Personality and click Create

Hooray!!!

You have a VEX EDR project you can mess with

Installing plugins

To install the plugins follow the guide at bottom of your screen or you can follow along with the guide

  • Click on the “Please install it…” link on your project IDE.
https://github.com/Atikul10152002/Bronky/blob/master/docs/img/pleaseinstall.png?raw=true

A screen will popup listing components to install

  • On the popup screen click on the first link to “install the Robot Mesh Connect extension for your browser

    [Tested browser: Chrome] <– click for extension

  • Click on Add extension to add it to your browser
  • Now click on the second link to Download the Robot Mesh Connect installer
https://github.com/Atikul10152002/Bronky/blob/master/docs/img/downloadcomp.png?raw=true

Links for Robot Mesh Connect installer: Windows | Mac OSX | Ubuntu 12.04 32-bit | Ubuntu 12.04 64-bit | Ubuntu 14.04 32-bit | Ubuntu 14.04 64-bit | Ubuntu 16.04 32-bit | Ubuntu 16.04 64-bit

  • Double click on the downloaded file to run and install the required components
  • Refresh your browser tab
https://github.com/Atikul10152002/Bronky/blob/master/docs/img/refreshtab.png?raw=true

You may need to update the cortex firmware and install the drivers

Follow the next OPTIONAL steps if this is your first install

[OPTIONAL] Firmware & drivers

All drivers and firmwares are availavle here

Pair Joystick and Cortex

The Joystick must first be paired to the Cortex Microcontroller before they will work using the VEXnet Keys. Pairing requires a USB A-A Cable and a VEX 7.2V Battery. This process must be completed each time you use a Joystick or Cortex with a new mate. A Joystick can only communicate with a Cortex that it has been paired with. During the Pairing Process, the ID from the Cortex is transferred to the Joystick; thus mating the two units together.
  • Start with the Cortex and Joystick turned OFF.
  • Connect the Cortex to the Joystick using a USB A-A Cable.
  • Connect the 7.2V Robot Battery to the Cortex.
  • Power up only the Cortex.
  • A successful tether is indicated by a Solid Green VEXnet LED on both the Joystick and the Cortex
  • The Solid Green VEXnet LED must remain ON on both units at the same time for a minimum of 5 seconds.
  • Disregard the other LEDs as you are only interested in the VEXnet LED.
  • Pairing may take up to one minute to complete.
  • Once the units have finished pairing, turn OFF the Cortex.
  • Disconnect the USB A-A Cable from both units.
  • Disconnect the 7.2V Robot Battery from the Cortex.
  • Connect the USB KEY and trun on both the Cortex and Joystick to pair them wirelessly.

Download Code to Cortex

  • Click the dropdown arrow beside the run button in your RobotMeshStudio IDE
  • Select the option - “Download: build program and download only”
  • Now click the Download button situated where the run button used to be

RobotMesh API

To program the VEX EDR (Cortex) controller:

  • Configure the peripherals connected to the controller in the “config” region. Create device objects in the vex module, passing the port number if necessary.
import sys
import vex
#region config
green_led = vex.DigitalOutput(1) # LED on Digital #1
switch    = vex.DigitalInput(2)  # Switch on Digital #2
motor     = vex.Motor(1)          # Motor on Motor #1
#endregion
  • Write Python code invoking methods on peripheral objects or the main module.
green_led.on()      # Turn the LED on
if switch.is_on():  # Check whether the switch is on
    print "Switch is on!"
motor.run(50)       # Run the motor at 50% power
sys.sleep(1)        # Sleep for 1 sec
  • For details, see the full docs for the vex module

Port Errors

For all port errors

  • Unplug and re-plug the USB cable

Diagnostics Information

Refer to the following chart for Joystick and Cortex LED patterns and meanings.

https://curriculum.vexrobotics.com/sites/default/files/styles/large/public/AP2-16.jpg https://curriculum.vexrobotics.com/sites/default/files/AP2-17.jpg

General Robot Troubleshooting Flowchart

https://curriculum.vexrobotics.com/sites/default/files/styles/large/public/AP2-19.jpg

VEXnet Troubleshooting Flowchart

https://curriculum.vexrobotics.com/sites/default/files/styles/large/public/AP2-20.jpg

If the issue is still present after following this guide, update both the Cortex and Joystick with the most recent version of the VEXnet Firmware (Master CPU Firmware for ROBOTC users). If this does not resolve the problem, try using a different set of VEXnet keys. If you need further assistance you can post a question on the VEX Forum (https://vexforum.com) or contact VEX Technical Support by phone at +1-903-453-0802 or email support@vexrobotics.com.

Motor Troubleshooting Flowchart

https://curriculum.vexrobotics.com/sites/default/files/styles/large/public/AP2-21.jpg

Still Having Trouble?

If you’re still having trouble,

Refer to VEXnet User’s Guide for further help

Bronky/main.py

main code

main.BASE_DRIVE()[source]
Controls the base motors – Arcade drive
Calculates the power for the left and right drive

and runs the four base motors

main.CLAW_DRIVE()[source]

Controls the claw motor

The fuctions acts as a togggle

When the claw is closed it applies continious power to the motor

main.WRIST_DRIVE()[source]
Controls the wrist motors
Only when the buttons are pressed, the Motors receive power.
main.autonomous()[source]
This is the autonomous period before the Teleop statsself.
Still in test phase –
main.driver()[source]
This is the Teleop mode where the driver has the control over the robot.
The fucntion runs the claw, base and wrist in different threads

Bronky/vex.py

Used by autodoc_mock_imports.

class vex.Motor(self, Port#)[source]

Takes the port number of the Motor as Parameter.

off()[source]

Turn off.

run(self, power)[source]

Run at given power.

Parameter: -100.0…100.0 (percent power).

run_raw(self, power_raw)

Run at given raw power.

Parameters: -127.0…127.0 (raw power).

class vex.Joystick[source]

Config VexNet joystick

is_partner(self) → bool

True if this is a partner joystick, false if it is main joystick.

set_deadband(self, value)

Set the deadband value for all axes (threshold below which axes would read out zero)

Parameters: value deadband threshold

axis1(self) → Returns number [-100...100]

Position on axis 1: -100.0 to 100.0.

axis2(self) → Returns number [-100...100]

Position on axis 2: -100.0 to 100.0.

axis3(self) → Returns number [-100...100]

Position on axis 3: -100.0 to 100.0.

axis4(self) → Returns number [-100...100]

Position on axis 4: -100.0 to 100.0.

accelX(self) → bool

Accelerometer axis X: -100.0 to 100.0.

accelY(self) → bool

Accelerometer axis Y: -100.0 to 100.0.

b5up(self) → bool

Button 5 pressed UP: True/False.

b5down(self) → bool

Button 5 pressed DOWN: True/False.

b6up(self) → bool

Button 6 pressed UP: True/False.

b6down(self) → bool

Button 6 pressed DOWN: True/False.

b7up(self) → bool

Button 7 pressed UP: True/False.

b7down(self) → bool

Button 7 pressed DOWN: True/False.

b7left(self) → bool

Button 7 pressed LEFT: True/False.

b7right(self) → bool

Button 7 pressed RIGHT: True/False.

b8up(self) → bool

Button 8 pressed UP: True/False.

b8down(self) → bool

Button 8 pressed DOWN: True/False.

b8left(self) → bool

Button 8 pressed LEFT: True/False.

b8right(self) → bool

Button 8 pressed RIGHT: True/False.

vex.battery_voltage() → number

Get main battery voltage, in volts.

vex.battery_backup_voltage() → number

Get backup battery voltage, in volts.

vex.debug_output(debug_output_type)

Set debug output type.

debug_output_type: DebugOutput.AUTO|SERIAL|LCD|DISABLED

vex.run_driver(function)

Run the given function in a separate thread in DRIVER ONLY competition mode.

vex.run_autonomous(function)

Run the given function in a separate thread in AUTONOMOUS ONLY competition mode.

vex.competition_switch() -> enum value (number)

Returns state of the competition switch, as one of the constants in CompetitionSwitchState.

Indices and tables