23
Citrus Circuits Fall Workshop Series Roborio and Sensors Paul Ngo and Ellie Hass

Roborio and Sensors

  • Upload
    dinhanh

  • View
    212

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Roborio and Sensors

Citrus Circuits Fall Workshop Series

Roborio and SensorsPaul Ngo and Ellie Hass

Page 2: Roborio and Sensors

Introduction to Sensors

Sensor: “a device that detects or measures a physical property and records, indicates, or otherwise responds to it”

● Digital and physical responses

Page 3: Roborio and Sensors

Why Use Sensors?

● Feedback for positioning robot parts○ Calibration○ encoders for position / speed○ limit switches

● Motion control○ drive chain encoders○ gyroscope○ accelerometer

● Detecting field elements in/out of robot○ mechanical limit switch○ proximity sensor○ line following○ vision

Page 4: Roborio and Sensors

Implementation

● Mounting○ Protected○ sensor must “see” target○ must be secure, sensor must not move with respect to what it is

mounted to○ must be able to easily remove / replace sensor○ wires to sensor should be a connector, not soldered

● Noise○ Motors’ magnetic field can interfere with delicate sensors○ High current wires can interfere with sensors, or signal from

sensor to roboRIO. ○ If a sensor seems inconsistent, try moving it. ○ Faraday cages help with electric field noise, but not with

magnetic field noise

Page 5: Roborio and Sensors

Implementation

● Interface types○ boolean (DIO)

■ easy to interpret / use○ Analog

■ more information■ possible noise, not precise

○ Digital serial■ Precise■ high resolution■ more complex to utilize

Page 6: Roborio and Sensors

Choosing a Sensor

● Indicator lights○ power light○ sensor output light

■ Boolean■ analog and serial may have some other light, or none at all

● Operating range○ distance of detection○ optical conditions○ maximum speed (encoders)○ electrical characteristics: 5v preferred, 12v if necessary (custom circuit)

● Accuracy / precision○ Dependent on application

Page 7: Roborio and Sensors

Examples of Sensors

● Limit switch○ Boolean○ potential for mechanical failure○ can detect field elements○ cheap

● Hall effect○ boolean or analog○ detects magnetic fields○ replaces limit switch for many applications○ cheap - medium price

○ http://www.wcproducts.net/wcp-0971

Page 8: Roborio and Sensors

Examples of Sensors cont.

● Encoder○ boolean outputs, but more complex information○ rotational position / rate○ feedback loops○ medium - expensive○ http://www.usdigital.com/products/encoders/incremental/rotary/shaft/S4#description

○ http://www.newark.com/webapp/wcs/stores/servlet/Search?catalogId=15003&langId=-1&storeId=10194&categoryId=800000005726&st=optical%20encoder&pageSize=25&showResults=true

● Potentiometer○ Analog○ rotational position○ cheap

Page 9: Roborio and Sensors

Examples of Sensors cont.● Gyroscope

○ Serial○ angular motion control○ medium

● Accelerometer○ Serial○ translational motion control○ included in RoboRIO

■ Not accurate, don’t use● Proximity & beam break

○ boolean / analog / serial○ detects distance to object○ optical, use with field elements○ cheap to medium

○ https://www.sparkfun.com/products/242

○ http://www.keyence.com/products/sensor/photoelectric/pz-v_m/models/pz-m32p/index.jsp

Page 10: Roborio and Sensors

The RoboRIO

Pin spacing: .1”User manual:http://www.ni.com/pdf/manuals/374474a.pdf

Page 11: Roborio and Sensors

CAN● Controller Area Network

○ Electronic Control Units (nodes), connected by a bus (network)● Each node requires a:

○ CPU (central processing unit)/microprocessor■ Decides what the received messages mean and what

messages it wants to transmit.● CAN controller - part of the microcontroller

○ Will wait and store a message until it is fully delivered○ Will wait until the bus is free before sending a message

● Transceiver○ Receiving: Converts data from CANbus level (voltage) to levels

that the CAN controller uses. ○ Transmitting: Converts data from the CAN controller to

(higher) CANbus levels.Web interface makes setting up different nodes easyhttp://wpilib.screenstepslive.com/s/4485/m/24166/l/216217-updating-and-configuring-pneumatics-control-module-and-power-distribution-panel

Page 12: Roborio and Sensors

CAN cont.

Page 13: Roborio and Sensors

I2C

I2C is a simple protocol to talk to sensorsThat said, using I2C with sensors may require some tricky programming

One master, three slaves (3.3Vcc)Device addresses to communicate, 7 bits for an address and the 8th for r/w.Serial Clock Line (labeled SCL on the RoboRIO), Serial Data Line (labeled SDA)

● LCD/LED drivers● EEPROMs (nonvolatile electrically erasable programmable read-only memory)● capacitive sensors (can measure non-air conductivity)● real-time clocks● digital temperature ICs● IR Range Finders

Page 14: Roborio and Sensors

RS-232 (Serial)

Three pins on the RoboRIO● GND● RxD (Data receiving)● TxD (Data transmitting)

Normally there are more pins, but RTS (request to send) and CTS (clear to send) is not necessary because the sensor will be constantly receiving and transmitting information.Not used in everyday computing: low transmission speed, large voltage swing (the signal swings between +12V for HIGH and -12V for low; within +-3V is unused to reduce noise)

Page 15: Roborio and Sensors

DIO

Three Pins● Ground● Voltage (5V)

○ This gives the sensor power● Signal (boolean)

○ The sensor outputs a 1 (3.3V/5V) or a 0 (0V) for the RoboRIO to detect

Page 16: Roborio and Sensors

PWM

Pulse Width Modulation● Cycles of full and ground voltage; the programmers can

control the width of the pulse (high time)● Usually mirrors a percentage in actuators (motor voltage%, servo motor degrees out of

360)● Three pins

○ Voltage (6V) - will work with many ‘5V’ devices○ Ground○ Signal (boolean) - 5V/0V

The RoboRIO (and most computers) use PWM to approximate an analog out signal.

Page 17: Roborio and Sensors

SPI - Serial Peripheral Interface (Bus)

Another master-slave control example; however, in this case, once the master has initiated the selection of the slave (SS or CS-chip select) and the clock, the slave and master output 8 (or 12 or 16) bit ‘words’ to each other in a loop. Only the slave that has been selected with CS(#) will respond with this loop.5V and 3.3V sourcesSCLK: Set Clock, used for timing signalsMOSI: Master Output, Slave InputMISO: Master Input Slave Output

Page 18: Roborio and Sensors

Relay

5V controllable outputs on both FWD and REV pins.Ground pin on GND.Useful for certain devices:Spike H-Bridge Relay from VEX Robotics, for motor control (forward and reverse)

Page 19: Roborio and Sensors

Multi-purpose extension for DIO,I2C, PWM and UART.RX (receiving) and UART.TX (transmitting)Has an analog input which is multiplexed and interpreted by the RoboRIO.Also has an analog output which involves a digital to analog converter.Ready made expansion board: http://www.revrobotics.com/rioduino/

MXP (myRIO Expansion Port)

Page 20: Roborio and Sensors

RSL, Ethernet, USB device and host, and power

USB host ports

USB device port

Page 21: Roborio and Sensors

Citrus Circuits Fall Workshop Series

[email protected] You!

Page 22: Roborio and Sensors

How Encoders WorkRotary Encoder Optical Encoder

http://www.anaheimautomation.com/manuals/forms/encoder-guide.php

voltage

time

white black white black white

Page 23: Roborio and Sensors

What a Gyroscope MeasuresGyroscopes measure angular velocity, not angular position. It tells you how fast you are turning, not the direction you are facing.

Luckily, in FIRST, measurements are picked up in 20ms increments, so:Angular position = (Old angular position) + angular velocity * 20 msNote: it is still wise to measure the time between readings, in case that 20ms interval changes for some reason.