Mechatronics Portfolio
Logan Williamson's Mechatronics Portfolio and Documentation Repository
Variables
Lab0x05_main.py File Reference

Main script of ME305 Lab0x05. More...

Variables

 Lab0x05_main.zFlag = shares.Share(False)
 Create object zFlag shared between all files. More...
 
 Lab0x05_main.faultFlag = shares.Share(False)
 Create object zFlag shared between all files. More...
 
 Lab0x05_main.wFlag = shares.Share(False)
 Create object wFlag shared between all files. More...
 
 Lab0x05_main.timDATA = shares.Share(0)
 Create an object timDATA shared between all files. More...
 
 Lab0x05_main.posDATA = shares.Share((0,0,0))
 Create an object posDATA shared between all files. More...
 
 Lab0x05_main.calDATA = shares.Share((0,0,0,0))
 Create an object calDATA shared between all files. More...
 
 Lab0x05_main.DATA = shares.Share(0)
 Create an object DATA shared between all files. More...
 
 Lab0x05_main.speedDATA = shares.Share((0,0,0))
 Create an object speedDATA shared between all files. More...
 
 Lab0x05_main.duty_y = shares.Share(0)
 Create an object duty1 shared between all files. More...
 
 Lab0x05_main.duty_x = shares.Share(0)
 Create an object DATA shared between all files. More...
 
 Lab0x05_main.K_p = shares.Share(0)
 Create a shared object K_p corresponding to closed-loop controller gain. More...
 
 Lab0x05_main.K_d = shares.Share(0)
 Create a shared object K_d corresponding to closed-loop controller gain. More...
 
 Lab0x05_main.setpoint_x = shares.Share(0)
 Create a shared object setpoint_x corresponding to the desired motor speed. More...
 
 Lab0x05_main.setpoint_y = shares.Share(0)
 Create a shared object setpoint_y corresponding to the desired motor speed. More...
 
list Lab0x05_main.taskList
 

Detailed Description

Main script of ME305 Lab0x05.

This file instantiates the shared flag variables, shared data variables, and controls the task sharing between taskEncoder.py and taskUser.py.

Author
Logan Williamson
Brianna Roberts
Date
02/24/2022

Variable Documentation

◆ calDATA

Lab0x05_main.calDATA = shares.Share((0,0,0,0))

Create an object calDATA shared between all files.

This is the parsed calibration status values for printing in taskUser when attempting to and printed in the taskUser when prompted

◆ DATA

Lab0x05_main.DATA = shares.Share(0)

Create an object DATA shared between all files.

This is a tuple that records the data and the position. used when user prompts to ask for 30 second data collection. This is shared with taskUser and formatted to print in an array.

◆ duty_x

Lab0x05_main.duty_x = shares.Share(0)

Create an object DATA shared between all files.

This is a tuple that records the data and the position. used when user prompts to ask for 30 second data collection. This is shared with taskUser and formatted to print in an array.

◆ duty_y

Lab0x05_main.duty_y = shares.Share(0)

Create an object duty1 shared between all files.

This is a value that will be passed into the motor.Motor objects for the purpose of setting the duty cycle (and by extension, the speed) of the

◆ faultFlag

Lab0x05_main.faultFlag = shares.Share(False)

Create object zFlag shared between all files.

Used as a flag between files to communicate when z or Z is pressed. also used in order to communicate between tasks.

◆ K_d

Lab0x05_main.K_d = shares.Share(0)

Create a shared object K_d corresponding to closed-loop controller gain.

This is a shares.Share object that enables the user to input a closed-loop controller gain.

◆ K_p

Lab0x05_main.K_p = shares.Share(0)

Create a shared object K_p corresponding to closed-loop controller gain.

This is a shares.Share object that enables the user to input a closed-loop controller gain.

◆ posDATA

Lab0x05_main.posDATA = shares.Share((0,0,0))

Create an object posDATA shared between all files.

This is the value of position that is written in the taskEncoder and printed in the taskUser when prompted

◆ setpoint_x

Lab0x05_main.setpoint_x = shares.Share(0)

Create a shared object setpoint_x corresponding to the desired motor speed.

This is a shares.Share object that sets the desired motor speed in rad/s. The values are limited to -175 to 175 rad/s; values outside this range will be 'rounded' to the nearest limit on this range upon input.

◆ setpoint_y

Lab0x05_main.setpoint_y = shares.Share(0)

Create a shared object setpoint_y corresponding to the desired motor speed.

This is a shares.Share object that sets the desired motor speed in rad/s. The values are limited to -175 to 175 rad/s; values outside this range will be 'rounded' to the nearest limit on this range upon input. This controls the motor_1 closed loop controller setpoint.

◆ speedDATA

Lab0x05_main.speedDATA = shares.Share((0,0,0))

Create an object speedDATA shared between all files.

This is the value of angular velocity that is written in the taskIMU and printed in the taskUser when prompted

◆ taskList

list Lab0x05_main.taskList
Initial value:
1= [Lab0x05_taskIMU.taskBNO055Fcn('Task IMU', 10_000, zFlag, posDATA, calDATA, DATA, speedDATA),
2 Lab0x05_taskUser.taskUserFcn ('Task User', 10_000, zFlag, timDATA, posDATA, calDATA, DATA, speedDATA, faultFlag, duty_y, duty_x, K_p, K_d, setpoint_x, setpoint_y, wFlag),
3 Lab0x05_taskMotor.taskMotorFcn ('Task Motor', 10_000, faultFlag, duty_y, duty_x, K_p, K_d, setpoint_x, setpoint_y, wFlag, posDATA, speedDATA)]
def taskBNO055Fcn(taskName, period, zFlag, posDATA, calDATA, DATA, speedDATA)
A generator to implement the Encoder task as an FSM.
Definition: Lab0x05_taskIMU.py:33

◆ timDATA

Lab0x05_main.timDATA = shares.Share(0)

Create an object timDATA shared between all files.

This is the value of time used in taskEncoder to keep track of time. Set to timDATA.write(ticks_ms()-init_time)

◆ wFlag

Lab0x05_main.wFlag = shares.Share(False)

Create object wFlag shared between all files.

Used as a flag between files to communicate when the program is in closed- or open-loop control mode. When wFlag is False, the motor speed is being set by user input (open-loop control). When wFlag is True, the motor speed is set by gain and setpoint values specified by the user.

◆ zFlag

Lab0x05_main.zFlag = shares.Share(False)

Create object zFlag shared between all files.

Used as a flag between files to communicate when z or Z is pressed. also used in order to communicate between tasks.