ENGG1100 Introduction to Engineering Design Omni-wheel Car Additional Documentation.

Slides:



Advertisements
Similar presentations
State Machines An approach to assembler coding. Intro State Machines are an integral part of software programming. State machines make code more efficient,
Advertisements

EMS1EP Lecture 9 Analog to Digital Conversion (ADC) Dr. Robert Ross.
ENGG1100 Ch6: Introduction To Engineering Design (Digital Logic) Part 2 of digital logic KH WONG ENGG1100. Ch6-Digital Logic (part2) v3h1.
KEB COMBIVERT F5-M Exercises.
Lab7: Introduction to Arduino
1. 2 LabVIEW for FRC Doug Norman National Instruments January 6, 2012.
InnoSys Process Sequence. End Effector Components End Effector Prox Switch Load Cell Wire Conduit Crows Foot Nut Runner.
Panasonic EVE-KC2F2024B 24 pulses per revolution 6mm diameter flattened output shaft output type: quadrature (incremental) minimum life: 15,000 rotations.
Automation and Robotics
EML 2023 – Motor Control Lecture 4 – DAQ and Motor Controller.
V EX C OACHES ' T RAINING October 12, Agenda for Today 9 – 10 AM : Tina Reeves and the Engineering Notebook 10 – Noon : Finish Building, Basic Robot.
Bluetooth Remote Control
LAB 3 – Review of the Assignment. -- Clarifications Vikram Murali. TA : CSE 140L Prof. CK Cheng.
Over-view of Lab. 1 For more details – see the Lab. 1 web-site There will be a 20 min prelab quiz (based on Assignment 1 and 2) at the start of the lab.
MEMORY MODE The HAAS Control Series. MEMORY MODE The HAAS Control Series.
The Alix.1c microcontroller on board the vehicle runs Fluxbuntu Linux and is connected to a g wireless card and a USB web camera. A background process.
IR SENSORS AND ENCODERS. LCDs Timothy Friez Class # 2.
■ DEMO#1: Manual Teaching Mode, Task Creation, Basic Autonomous Run ■ DEMO#2: Obstacle Avoidance Demo ■ DEMO # 3: Complete reproduction of manual drive.
1 ©2006 INSciTE Lab Two Task: Make the program from Lab One (Move forward 5 rotations and turn right 90 degrees) into a MyBlock.
Embedded Programming and Robotics Introduction and Overview Presented by John Cole Senior Lecturer in Computer Science The University of Texas at Dallas,
Automated Industrial Wind Tunnel Controller By Daniel Monahan and Nick DeTrempe Advised by Dr. Aleksander Malinowski Customers are Dr. Scott Post and Dr.
ENGG1100 Lecture7: Introduction To Engineering Design (Digital Logic) Part 2 Kin Hong Wong ENGG1100. Ch7-Digital Logic (part 2) 16/02/15 1.
What is RobotC?!?! Team 2425 Hydra. Overview What is RobotC What is RobotC used for What you need to program a robot How a robot program works Framework.
ENGG1100 Introduction to Engineering Design Digital Logic (Part 2) Prof. Kin Hong Wong Department of Computer Science and Engineering.
COS120 Software Development Using C++ AUBG Fall semester 2010 Ref book: Problem Solving, Abstraction and Design Using C++ Authors: Frank Friedman, Elliot.
Flowol subroutines Subroutines are used to:  Simplify your code to make it easier to read (or for someone.
Programming Concepts Part B Ping Hsu. Functions A function is a way to organize the program so that: – frequently used sets of instructions or – a set.
Programming Concepts (Part B) ENGR 10 Introduction to Engineering 1 Hsu/Youssefi.
Department of Mechanical Engineering, LSUSession VII MATLAB Tutorials Session VIII Graphical User Interface using MATLAB Rajeev Madazhy
FTC New Platform Programming Workshop in Android Studio
10/10/ Controlling YOUR ROBOT. 10/10/2015 Basic Stamp  Basic Stamp Input - output pins Interpreter Chip Power supply: 5 Volts voltage Memory: EEPROM.
Vintage Computer Hardware 101 Featuring the MITS Altair 680b Bill Degnan.
1 Kenneth Osborne, 9/14/07 Inter Group communications at the Advanced Light Source. Overview of the different methods of communication between different.
Lecture 6: Computer Languages. Programming Environments (IDE) COS120 Software Development Using C++ AUBG, COS dept.
7.2 V battery pack and charger Put the battery in the charger station at the end of the lab. period. Red light indicates charging. Ken Youssefi Introduction.
Default_Routine(); - PWM Mapping /******************************************************************** * FUNCTION NAME: Default_Routine * PURPOSE: Performs.
CSC241 Object-Oriented Programming (OOP) Lecture No. 1.
Slide 1 Project 1 Task 2 T&N3311 PJ1 Information & Communications Technology HD in Telecommunications and Networking Task 2 Briefing The Design of a Computer.
Engineering H193 - Team Project Gateway Engineering Education Coalition Lab 1P. 1Spring Quarter Introduction to Sensors Lab 1.
Object-Oriented Programming (OOP) Lecture No. 2. Information Hiding ► Information is stored within the object ► It is hidden from the outside world ►
MOTORS. Definition Of Motor That powered by electricity or internal combustion, that supplies motive power for a vehicle or for some other device. A device.
Object-Oriented Programming (OOP) Lecture No. 3 Downloaded From:
The George Washington University Electrical & Computer Engineering Department ECE 002 Dr. S. Ahmadi Class3/Lab 2.
Fundamentals of Programming Languages-II
Teaching Digital Logic courses with Altera Technology
JavaScript Introduction and Background. 2 Web languages Three formal languages HTML JavaScript CSS Three different tasks Document description Client-side.
Ambient Feedback Control System Jonathan Uht.  Description of Ambient Feedback Control System  Block Diagram of Ambient Feedback Control System  Hardware.
1 BOE-BOT Lecture #2 DE - Digital Electronics Servos and the BOE-BOT.
Circular motion About angular motion. Which angle is bigger? 1.5 degrees 2.5 radians 3.5 revolutions
Vex Robotics program three: using motors and sensors together.
Mechanical Components and Programming Ken Youssefi Introduction to Engineering – E10 1.
ROBOTC for VEX Online Professional Development. Homework Questions Thoughts? Questions?
The “Board of Education” 1 Three-position switch 0 = OFF 1 = ON / wheels OFF 2 = ON / wheels ON breadboard (for building circuits) electrical power (V.
ROBOTC for CORTEX Teacher Training © 2011 Project Lead The Way, Inc. Automation and Robotics VEX.
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Using Arduino to modify RC controls Nick Carter 12/31/2015
AS Computer Studies Finite State Machines 1.
ROBOTC for VEX Online Professional Development
Introduction to Programming
Automation and Robotics
Object-Oriented Programming (OOP) Lecture No. 2
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Music by Touch Music by Touch Presentation > TeachEngineering.org
Automation and Robotics
Omni-wheel Car Additional Documentation
Exploring the Power of EPDM Tasks - Working with and Developing Tasks in EPDM By: Marc Young XLM Solutions
Interfacing a Rotary Encoder with an Arduino
Lab #1: Getting Started.
Programming Concepts (Part B) ENGR 10 Introduction to Engineering
Interrupts.
Presentation transcript:

ENGG1100 Introduction to Engineering Design Omni-wheel Car Additional Documentation

ENGG1100 | Term 1 | Purpose To help student bridging their knowledge in the lecture to the car they have to build To provide a clear documentation of all necessary details to students + teaching assistants + mentors 2v Purpose

ENGG1100 | Term 1 | Contents Mechanism of the Car Overview of the Skeleton Code State Diagram State Transition Conditions Receiving Joystick Input Receiving Light Input Debug board TODO list for students v Contents3

ENGG1100 | Term 1 | Mechanism of the Car (1) We always use top view to present the car in this set of slides When view from outside of the card, each motor can be controlled to move: Clockwise (-ve speed) Counter-clockwise (+ve speed) v Mechanism4 M2 M1 M3

ENGG1100 | Term 1 | Mechanism of the Car (2) To simplify handling [1], the controls are: Linear movement of six directions: Self-rotations: v Mechanism5 [1] The formal way to control a omni-wheel car involves computing the compound force and the total torque from each motor. M2 M1 M3

ENGG1100 | Term 1 | Mechanism of the Car (3) As an example, moving forward would means: M1.set(-255); M2.set(0); M3.set(255); v Mechanism6 M2 M1 M3 NO MOVE CLOCKWISEANTI- CLOCKWISE The speed: -255 to 255

ENGG1100 | Term 1 | Mechanism of the Car (4) How should the wheels move for each of these movements? v Mechanism7 M2 M1 M3 M2 M1 M3 M2 M1 M3 M2 M1 M3 M2 M1 M3 M2 M1 M3 M2 M1 M3 M2 M1 M3 Check Lab7 material Pls do these 2 on your own

ENGG1100 | Term 1 | Overview of the Skeleton Code (1) Work-sharing between functions setup() – initialize what the program requires loop() – main loop of the car BluetoothCom() – read a command from the bluetooth SetDevice() – interpret the command read StateMachine() – state machine when the car is in remote control mode LightControl() – state machine when the car is in light control mode setLED() – change the LED by setting values into pLEDpattern[] updateMotor() – internal-state management of the motor interface updateLED() – read pLEDpattern[] and send hardware commands getCode() – convert character to 7-segment on/off values slowDown() – a fixed delay for the car to execute the motor moves for some time Students are allowed to edit the bold-typed functions v Code Overview8

ENGG1100 | Term 1 | Overview of the Skeleton Code (2) Motor interface To prevent bad things due to sudden change of speed [2], a motor interface is provided. Initialize (already done before setup()) setProperties() – set the minimum, maximum speed and the “step” value, which is the limit of change of speed per time-step. Functions Exposed to the Students set() – set the speed we want it to have getSpeed() – get the speed the motor currently is running at Other Function update() – declare a time-step to the interface. v Code Overview9 [2] such as skidding, burn of parts due to back EMF, etc.

ENGG1100 | Term 1 | Remote Control Your remote control looks like this (unless you are using the Android app) v Remote Control10 Joystick Power Switch 9 buttons Dec Max SpeedDec AccelerationInc Acceleration Inc Max SpeedLight Following Mode START Light Following Mode STOP Stop RobotCCW RotationCW Rotation

ENGG1100 | Term 1 | Receiving Joystick Input (1) We want to map joystick input into regions Each region corresponds to one linear movement or STOP v Joystick11 0 y x

ENGG1100 | Term 1 | Receiving Joystick Input (2) The X-Y axis given by the remote control is different from the X-Y axis used inside StateMachine(). Search for the following lines of code and see how this is handled: Inside loop() StateMachine(MotorY, MotorX); Inside StateMachine(int X, int Y) X = X-128; if(X==0)X=1; // X cannot be 0. Y = Y-128; if(Y==0)Y=1; v Joystick12

ENGG1100 | Term 1 | Receiving Light Input v Light (LDR)13 [3] Reducing the number of LDR needed while still keeping the light control function work well is consider as a bonus task.

ENGG1100 | Term 1 | State Diagram Upon receiving the commands, students are expected to follow the state diagram in the next page. A textual description of the state transition conditions will also be given after the state diagram. v Light (LDR)14

ENGG1100 | Term 1 | v Use this field to show the sub-section15 STOP (Also initial state) 7 states provided in StateMachine(int X, int Y) J = 1 J = 0 J = 2 J = 4 J = 3 J = 2 J = 6 J = 5 J = 6 J = 2 J = 5 CCW rotation button pressed and all motors have speed 0 CW rotation button pressed and all motors have speed 0 Stop rotation button pressed J: Joystick Input

ENGG1100 | Term 1 | State transition conditions For transitions between linear movements and STOP: Joystick stays in the required region For transitions from STOP to self-rotations: The ball is stationary (i.e., getSpeed() of each motor are ZERO) The relevant button has been pressed (checking the RobotRot variable) For transitions from self-rotations to STOP: The relevant button has been pressed (checking the RobotRot variable) Reminder: No direct transitions in-between the two self-rotation states v State Transition16

ENGG1100 | Term 1 | “DEBUG” board To facilitate students’ troubleshooting effort, a debug board is given to the students. Students could change pLEDpattern[] in setLED(). updateLED() will be called by loop() to display the message onto the debug board. v DEBUG display17

ENGG1100 | Term 1 | TODO list for students Students will have to do the following: JoyStick control – StateMachine() Implement the self-rotation states Light control Test and Find the range of the LDR values Implement the details of the FSM for light control v TODO list18