1 / 14

IR & Servos

IR & Servos. Lab 3. Servos. DC Gearhead motor with interface circuitry Often used for angular positioning Can be “hacked” to act as a standard DC Gearhead motor. Servos – Handy Board Specifics. Handy Board uses PWM to command servo to desired angular position

nizana
Download Presentation

IR & Servos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. IR & Servos Lab 3 Spring Quarter

  2. Servos • DC Gearhead motor with interface circuitry • Often used for angular positioning • Can be “hacked” to act as a standard DC Gearhead motor Spring Quarter

  3. Servos – Handy Board Specifics • Handy Board uses PWM to command servo to desired angular position • Handy Board can control 2 servos (second servo requires alternate source of 5 volts) • Digital port 9 • TOC3 port (under LCD) • Need to include library files • Servo.icb • AND Servo.c • OR servo.lis Spring Quarter

  4. Servo - Calibration • Servo.c constants may need "calibrated" to make full use of servo • To do so, use servo (x) command • Set MIN_SERVO_WAVETIME=0, MAX_SERVO_WAVETIME=10000 (interaction window) • Reduce x (>1400) until servo is at 0° • Increase x(<4860) until servo is >180° • In your main program, assign new values to the global variables MIN_SERVO_WAVETIME and MAX_SERVO_WAVETIME Spring Quarter

  5. Servo – use • Load servo.lis • To turn servo on – servo_on ( ); • To command servo - • servo (int period); • servo_rad (float radians); • servo_deg (float degrees); • To turn servo off – servo_off ( ); Spring Quarter

  6. Infrared (IR) Basics • EM wave – 1013- 1014 Hz • Many things give off IR • Remote controls • Sun • Fluorescent lights • Handy Board • How do we avoid interference from all these sources? Spring Quarter

  7. IR – Specifics • Use Sharp GP1U5 IR detector • Looks for a 40kHz IR pulse • 40kHz? • Used to reduce interference • Also rumored to be used due to legacy remote controls (ultrasonic) Spring Quarter

  8. IR – Waveform Specifics • Another waveform is “modulated” on this 40 kHz carrier Spring Quarter

  9. IR – Handy Board detection • Handy Board can look for 100Hz, 125Hz signals • Handy Board looks for a matching waveform by sampling and pattern matching Spring Quarter

  10. IR – Waveform matching Signal X X X X X X X X X X X X X X X X X X X X Stored copy of signal Spring Quarter

  11. IR – Handy Board specifics • Handy Board checks incoming signal for match w/ stored copy • When they match, ir_counts return a number from 1 to 255 • If there is no match, 0 is returned • The longer the receiver sees a valid signal, the higher the count • If you look away, counts goes to 0 Spring Quarter

  12. IR – Handy Board use • Handy Board does not handle mixed mode arithmetic • Must use casting operators - angle=(float)deg where deg is integer and angle is floating point • IR reception can take as much as 30% of HB resources ! ! Spring Quarter

  13. IR – Handy Board functions • void set_ir_receive_frequency (int f) ; • void ir_receive_on ( ); • void ir_receive_off ( ); • int ir_counts (int p); • Where you should note that: • ir_counts (5) => from digital port 15 • ir_counts (4) => from digital port 14 Spring Quarter

  14. Lab • Write code to seek out an IR beacon • Scan a servo over 180° • Return to angle where beacon is located • Try for accuracy, fast search time Spring Quarter

More Related