SlideServe
Menu
Préférences
© SlideServe · v2026

EasyC Programming Workshop

uriah-fowler avatar
15 diapositives · 406 Views · Oct 25, 2014

EasyC Programming Workshop. January 30, 2008 Hauppauge High School SPBLI - FIRST. Mark McLeod Advisor Hauppauge Team 358 Northrop Grumman Corp. Mark.McLeod@ngc.com. Agenda. FIRST Control System C Basics EasyC Environment EasyC Basics Robot Driver Control

EasyC Programming Workshop - slide 1
01 / 15EasyC Programming Workshop
1 / 17

Télécharger la présentation

EasyC Programming Workshop
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. EasyC Programming Workshop January 30, 2008 Hauppauge High School SPBLI - FIRST Mark McLeod Advisor Hauppauge Team 358 Northrop Grumman Corp. Mark.McLeod@ngc.com

  2. Agenda • FIRST Control System • C Basics • EasyC Environment • EasyC Basics • Robot Driver Control • Demonstration of Basic OI Controls • Robot Autonomous Control • Demonstration of Dead Reckoning

  3. FIRST Control System solenoid motor

  4. FIRST Control Elements • Hardware • Robot Controller (RC) • User Processor vs. Master Processor • PWM, Relay, Digital I/O, Analog, Misc. • Operator Interface (OI) • Tether cable / Programming cable • Laptop • Programming • C Language Based • Application Programmer Interface (API) • Dashboard (optional)

  5. Robot Controller Architecture • User Processor • What we download to • Runs our code • Reads the digital/analog I/O directly • Master Processor • Controls Disable/Autonomous/Driver modes • Disables OI inputs & most RC outputs • Must hear from User periodically or shuts it down • Master Code Software is updated each year

  6. Robot Controller I/O Motors Analog Gyroscope Servo Team LEDs Analog Rangefinder Potentiometer Banner Sensor Touch Sensor Pressure Sensor Switch Digital Encoder Relays TTL Solenoid Compressor Limit Switch Camera

  7. Getting Started • Tutorials • Help -> Tutorials • Create/Open an EasyC Project • New Competition Template • Controller Configuration • Drag & Drop Editing • Build & Download • Loader Setup to select serial/USB port • Online Window to test & check RC config.

  8. .hex file Mechanics Build & Download Robot Controller Dashboard (optional) Operator Interface Prog Button

  9. Project • Controller Configuration • Set Digital as input or output

  10. Function Blocks • Add Variables • Inputs – Digital & Analog I/O • Outputs – PWM, Relay • Program Flow – C statements • RC Control – Drive style (tank, arcade) • Camera • Control – Know status (disable, auto) • User Functions (Initialize, Auto, Operator)

  11. Simple 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” }

  12. More Complex Operator Mode unsigned 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); } }

  13. Simple 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);

  14. Sample IR Sensor Use While(1) { if (GetDigitalInput(1) == 1) { SetOILED(1,1); //Turn 1st OI light on SetOILED(3,0); //Turn other OI lights off SetOILED(5,0); SetOILED(7,0); SetPWM(1,200); //Drive the robot SetPWM(2,55); } if (GetDigitalInput(2) == 1) { SetOILED(1,0); //Turn other OI lights off SetOILED(3,1); //Turn 2nd OI light on SetOILED(5,0); SetOILED(7,0); SetPWM(1,127); //Stop the robot SetPWM(2,127); } }

  15. More Information • Presentation slides at: Team358.org • Questions/Help please email us. Mark.McLeod@ngc.com