Top Banner
EasyC Programming EasyC Programming Workshop Workshop January 30, 2008 Hauppauge High School SPBLI - FIRST Mark McLeod Mark McLeod Advisor Advisor Hauppauge Team 358 Hauppauge Team 358 Northrop Grumman Corp. Northrop Grumman Corp. [email protected] [email protected]
15

EasyC Programming Workshop

Jan 04, 2016

Download

Documents

uriah-fowler

EasyC Programming Workshop. January 30, 2008 Hauppauge High School SPBLI - FIRST. Mark McLeod Advisor Hauppauge Team 358 Northrop Grumman Corp. [email protected]. Agenda. FIRST Control System C Basics EasyC Environment EasyC Basics Robot Driver Control - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: EasyC Programming  Workshop

EasyC Programming EasyC Programming Workshop Workshop

January 30, 2008Hauppauge High School

SPBLI - FIRST

Mark McLeodMark McLeodAdvisorAdvisor

Hauppauge Team 358Hauppauge Team 358Northrop Grumman Corp.Northrop Grumman [email protected]@ngc.com

Page 2: EasyC Programming  Workshop

AgendaAgenda

FIRST Control SystemFIRST Control System C BasicsC Basics EasyC EnvironmentEasyC Environment EasyC BasicsEasyC Basics

– Robot Driver ControlRobot Driver Control Demonstration of Basic OI Controls Demonstration of Basic OI Controls

– Robot Autonomous ControlRobot Autonomous Control Demonstration of Dead ReckoningDemonstration of Dead Reckoning

Page 3: EasyC Programming  Workshop

FIRST Control SystemFIRST Control System

solenoid motor

Page 4: EasyC Programming  Workshop

FIRST Control ElementsFIRST Control Elements

HardwareHardware– Robot Controller (RC)Robot Controller (RC)

User Processor vs. Master ProcessorUser Processor vs. Master Processor PWM, Relay, Digital I/O, Analog, Misc.PWM, Relay, Digital I/O, Analog, Misc.

– Operator Interface (OI)Operator Interface (OI)– Tether cable / Programming cableTether cable / Programming cable– LaptopLaptop

ProgrammingProgramming– C Language BasedC Language Based– Application Programmer Interface (API)Application Programmer Interface (API)– Dashboard (optional)Dashboard (optional)

Page 5: EasyC Programming  Workshop

Robot Controller Robot Controller ArchitectureArchitecture User ProcessorUser Processor

– What we download toWhat we download to– Runs our codeRuns our code– Reads the digital/analog I/O directlyReads the digital/analog I/O directly

Master ProcessorMaster Processor– Controls Disable/Autonomous/Driver modesControls Disable/Autonomous/Driver modes– Disables OI inputs & most RC outputsDisables OI inputs & most RC outputs– Must hear from User periodically or shuts it downMust hear from User periodically or shuts it down– Master Code Software is updated each yearMaster Code Software is updated each year

Page 6: EasyC Programming  Workshop

Robot Controller I/ORobot Controller I/O

Banner Sensor

Touch Sensor

Switch

Gyroscope

CameraLimit Switch

Analog Rangefinder

Encoder

Potentiometer

Pressure Sensor

Servo

Solenoid Compressor

Analog

Digital

Motors

Relays

TeamLEDs

TTL

Page 7: EasyC Programming  Workshop

Getting StartedGetting Started

TutorialsTutorials– Help -> TutorialsHelp -> Tutorials

Create/Open an EasyC ProjectCreate/Open an EasyC Project– New Competition TemplateNew Competition Template– Controller ConfigurationController Configuration

Drag & Drop EditingDrag & Drop Editing Build & DownloadBuild & Download

– Loader Setup to select serial/USB portLoader Setup to select serial/USB port– Online Window to test & check RC Online Window to test & check RC

config.config.

Page 8: EasyC Programming  Workshop

.hex file

Robot Controller

Operator Interface

Dashboard (optional)

MechanicsMechanics

Prog Button

Build & Download

Page 9: EasyC Programming  Workshop

ProjectProject

Controller ConfigurationController Configuration– Set Digital as input or outputSet Digital as input or output

Page 10: EasyC Programming  Workshop

Function BlocksFunction Blocks

Add VariablesAdd Variables Inputs – Digital & Analog I/OInputs – Digital & Analog I/O Outputs – PWM, RelayOutputs – PWM, Relay Program Flow – C statementsProgram Flow – C statements RC Control – Drive style (tank, arcade)RC Control – Drive style (tank, arcade) CameraCamera Control – Know status (disable, auto)Control – Know status (disable, auto) User Functions (Initialize, Auto, User Functions (Initialize, Auto,

Operator)Operator)

Page 11: EasyC Programming  Workshop

Simple Operator ModeSimple Operator Mode

While (1) { // From “Program Flow – While”

Tank4(1,2,2,2,1,3,2,4,0,1,0,1);

// From “RC Control – Tank – 4 motor”

}

Page 12: EasyC Programming  Workshop

More Complex More Complex Operator ModeOperator Modeunsigned char LeftJoystick; // Double click “Variables”

while (1) {

LeftJoystick = GetOIAInput(1,2); // From “RC Control”

if(LeftJoystick > 137 || LeftJoystick < 117) // From “Program Flow”

{

SetPWM(1, LeftJoystick); // From “Outputs”

}

else

{

SetPWM(1, 127);

}

}

Page 13: EasyC Programming  Workshop

Simple AutonomousSimple Autonomous

SetPWM(1,200); // From “Outputs”

SetPWM(2,55);

Wait(10000); // From “Program Flow” (10 secs in milliseconds)

SetPWM(1,127); //Be sure to stop the robot at the end

SetPWM(2,127);

Page 14: EasyC Programming  Workshop

Sample IR Sensor UseSample IR Sensor Use

While(1) { if (GetDigitalInput(1) == 1) {

SetOILED(1,1); //Turn 1st OI light onSetOILED(3,0); //Turn other OI lights offSetOILED(5,0);SetOILED(7,0);

SetPWM(1,200); //Drive the robotSetPWM(2,55);

} if (GetDigitalInput(2) == 1) {

SetOILED(1,0); //Turn other OI lights offSetOILED(3,1); //Turn 2nd OI light on

SetOILED(5,0); SetOILED(7,0);

SetPWM(1,127); //Stop the robotSetPWM(2,127);

}}

Page 15: EasyC Programming  Workshop

More InformationMore Information

Presentation slides at: Presentation slides at:

Team358.orgTeam358.org

Questions/Help please email us. Questions/Help please email us.

[email protected]@ngc.com