Title: Embedded Systems Sensors and Odometry
1Embedded SystemsSensors and Odometry
2Sensing vs. Perception
- transducers - devices that convert some physical
phenomenon into electrical signals - A/D conversion - the conversion from analog
signal (0-5V) into a fixed precision (typically
8-12 bits) digital representation - perception - the interpretation of signals
derived from transducers in order to estimate
state information required for control. - observability - if state x(t0) can be determined
given measurements z(t) in the interval between
t0 and t1, then x(t0) is observable. If x(t) is
observable for all t, x is completely observable. - controllability - a system is controllable at
time t1gtt0 if a suitable control u(t) can be
found to drive the system from an arbitrary x(t0)
to another arbitrary state x(t1).
3Reconstruction
- Stimulus f(World) World f-1(S)
- function, f(), is only partially known,
- in general, the inverse of f() is not
well-conditioned - time spent perceiving often renders world
models obsolete
4Embodied Perceptual Systems
- rich sensor feedback
- interaction
- time series feedback
- knowledge can fill in
- inaccessible detail
5Sensor Drivers and Interface Circuitry
- photosensors, micro switches, microphones,
pyroelectric, near IR reflectance, sonar, strain
gauges, gyroscopes, accelerometers, force,
compasses, vision,... - sensitivity S - a property of the transducer and
describes the ?x (physical quantity) that is
required to produce a ?r (change in response)... - ?r/r S (?x/x)
- range, R - the range in the observable quantity x
that maps onto the 0-5 V transducer output - resolution - the smallest ?x that can be
observed, i.e., - R/255 (linear transducer and 8-bit A/D).
6Light Sensors - Photoresistor
- voltage divider Vsignal (5V) RR/(R RR)
- choose RRR when ambient light is midrange
- Cadmium Sulfide (CdS)
- cheap
7Light Sensors - Phototransistor
8Light Sensors - Pyroelectric Sensors
- lithium tantalate crystal is heated by thermal
radiation inducing charge - tuned to 8-10 ?m radiation - respond to human IR
signature - motion detecting burglar alarm
- Eltec 442-3 sensor - two elements, Fresnel
optics, output proportional to the difference
between the charge on the left crystal and the
charge on the right crystal.
9Other Common Sensor Technologies
- Force
- strain gauges - foil, conductive ink
- piezoelectric films
- conductive rubber
- capacitive force
- rheostatic fluids
- Sound
- microphones
- sonar
- Position
- microswitches
- shaft encoders
- gyros
- tilt/compasses
- Proprioceptive
- battery-level
- motor current - stall, external
- force
- temperature
10Odometry - photoreflectors
11Odometry - photoreflectors
12Odometry Project - 3 lab meetings
- Breadboard P5587, measure output properties,
monitor output with HandyBoard - Interrupt-based pulse counter, build
simple/quadrature encoder - Estimate (x,y,t), servo---rotate, translate scheme
13Quadrature Encoder
146811 System Interrupt Structure
Timer-counter hardware is connected to 6811 port
A - IC3 register associated with PA0 can generate
interrupt every rising edge. System interrupts -
1000 Hz, used for OS time keeping and other
periodic functions (LCD display) Binary programs
can install themselves into the system interrupt
structure 6811 interrupt vector points to
run-time interrupt handlers User can hijack the
pointer and use it to point to a user defined
handler, and arrange it so that after the user
handler completes, it goes to the run-time
interrupt code.
156811 System Interrupt Structure
At end of every fetch-decode-execute cycle CPU
checks enabled interrupts iff interrupt Save
registers, flags, pgm counter Load interrupt
vector into pgm counter Execute interrupt
code RTI - restore and resume Masking -
interrupts can interrupt interrupts
166811 System Interrupt Structure
before user installation
dedicated RAM location
176811 System Interrupt Structure
after user installation
18Example Photoreflector
Port
include lt6811regs.asmgt Compile time strings
equated to all 6811 registers and interrupt
vectors
6811 registers TOC4INT equ
BFE2 digital input register DIGIN equ
7000 org MAIN_START
Variables accessible from C variable_dir fdb
1 variable_count fdb 0
Internal variables (not accessible from
C) state fdb 0 Install module
into 1KHz IC system interrupt on
TOC4 subroutine_initialize_module ldd
TOC4INT ptr to
original vector std
interrupt_code_exit1 install for our
exit ldd interrupt_code_start
ptr to our routine std
TOC4INT install at TOC4
int Reset variables ldd 0
std variable_count
ldd 1 std var
iable_dir ldab DIGIN andb
1 stab state rts
Interrupt code called at 1000
Hz interrupt_code_start ldab DIG
IN accumulator B
(current value of DIGIN port) andb
1 accumulator B
(accumulator B) 1 eorb state
accumulator B (state
changed) ? 1 0 beq interrupt_c
ode_exit branch if there is no change in
state eorb state
accumulator B (accumulator B)
state stab state
save accumulator B to state
ldd variable_dir
load value to inc/dect from global variable
addd variable_count
accumulator D (accumulator D) variable_dir
std variable_count
update variable count interrupt_code_exit jm
p 0000
subroutine initialize module begins init. portion
of user pgm
19Creating Binaries (.icb files) from Assembly Code
(.asm files)
The icb.sh script provided in the /as11 directory
is used to create executable binaries from your
assembly code. For example, to compile a binary
version of the quadrature encoder gt sh icb.sh
qencdr_10_12 reads qencdr_10_12.asm and produces
the binary output file qencdr_10_12.icb. Creating
a .lis file Multiple files can be loaded
simultaneously by making a .lis file that you can
load from the IC command prompt. In this file,
list each filename you want loaded into the Handy
Board. Load the .lis the same way that single
files are loaded onto the HandyBoard.