Download presentation
Presentation is loading. Please wait.
1
Radio Frequency Navigational Tracker
2
Main Objective Create a vehicle that will track a high frequency RF/IR transmitter The practical application is a golf caddy that will follow a golfer when requested. Matthew Sharp
3
Platform Processor Motor Digital Compass Motor (Right) GPIO RS/232 Base of Vehicle Transmitter IR TX RF TX GPIO Digital Compass Motor (Left) Motor Control GPIO RS/232 RF RX Hardware Overview IR RX
4
Transmitter Ben Says: “It Transmits!!” Matthew Sharp
5
RF Transmission Matthew Sharp
6
IR TX Matthew Sharp
7
Receivers Matthew Sharp
8
RF RX Matthew Sharp
9
IR RX Simple, yet sophisticated!! Matthew Sharp
10
Sensors Matthew Sharp
11
Timing is Everything Matthew Sharp
12
8051 to the Rescue Matthew Sharp
13
Powering the Transmitter Fabien Nervais
14
Base Motors Two 12V ServoDisk Motors Power – 12V Car Battery Optocoupler Solid-State Relays 4 Amp Fuses Fabien Nervais
15
Rotating Mount Configuration 5V DC Servo Motor Grooved Rubber Belt Power 12V to 5V linear voltage regulator Solid-State Relay Fabien Nervais
16
Rotation Control Wire Routing Resolved: Approximately 350 º Rotation Serial Cable Connection 2 Limit Switches Controlling the Rotational Behavior Fabien Nervais
17
Powering the Rotating Mount Platform Fabien Nervais
18
Processor Ryan Hitchler
19
System Clock Ryan Hitchler
20
Capacitors and Vcc/Gnd Bus.1 uF VccGnd Ryan Hitchler
21
Headers Ryan Hitchler
22
Memory Ryan Hitchler
23
Memory Map $0000 $FFFF $8000 $8400 $FFFF EPROM SRAM PERFS $FFF F $0000 $7FFF $8000 EPROM SRAM Current Memory Map Future Memory Map Ryan Hitchler
24
Power Ryan Hitchler
25
Reset Ryan Hitchler
26
FPGA Ryan Hitchler
27
EPROM Test Program ; Capstone test code ; for MC68HC11 CodeBaseEQU$8000; address of start of code ORG$FFFE; start of address pointer DWCodeBase; set up pointer address to start of code ORGCodeBase; start of code Start: nop jmp Start Ryan Hitchler
28
EPROM Test Results Ryan Hitchler
29
Parts Listing Ryan Hitchler
30
Power On RF Signal ? Set up Interrupts Set up Serial Poll RF Receiver No Turn Antenna Poll IR Receiver IR Signal ? No Yes Stop Antenna Read Ant. Compass Turn Base -> Ant Base = Ant.? Read Base Compass No Stop Turning Yes Turn Ant. - > Base Read Ant. Compass Ant. = Base ? No Stop Antenna Move Base Yes IR Signal ? Poll IR Receiver No Yes Poll RF Receiver RF Signal ? Yes No John Maitin Software Algorithm Redux
31
Code ; Capstone algorithm code ; for MC68HC11 ; begin code section ORGCodeBase; start of code Start: lds#Stack; load stack pointer bsrenable_int; enable interrupts pollrf: ldaaPORTA; get GPIO information anda#RFMASK; mask out RF information cmpa#RFMASK; compare to RF information bnepollrf; if no RF signal, continue polling startantenna: ldaaPORTA; get GPIO information oraa#MAONFMASK0; mask in antenna motor control info anda#MAONFMASKF; mask out unwanted info staaPORTA; write out GPIO stuff pollir: ldaaPORTA; get GPIO information anda#RFMASK; mask out RF information cmpa#RFMASK; compare to RF information bnestopantenna; jump to stopantenna if no RF signal found ldaaPORTA; get GPIO information again anda#IRMASK; mask out IR information cmpa#IRMASK; compare to IR mask bnepollir; if no IR signal, continue polling stopantenna: ldaaPORTA; get GPIO information oraa#MAOFFMASK0; mask in antenna motor control info anda#MAOFFMASKF; mask out unwanted info antennacompass: oraa#CMPAMASK; select antenna compass staaPORTA; write out GPIO information bsrread_compass; read from the antenna compass into d stdcompass; store antenna compass reading into compass baseturn: ldaaPORTA; get GPIO information anda#CMPBMASK; select base antenna staaPORTA; write out GPIO information bsrread_compass; read from the base compass into d subdcompass; subtract compass value beqmovebase; if equal, then move base cpd$0167; compare d to halfway value for compass bgeturnright; turn right if difference greater than halfway turnleft: ldaaPORTA; get GPIO information oraa#MLONRMASK0; write in left motor information anda#MLONRMASKF; write out unwanted information staaPORTA; write GPIO information ldaaPORTA; get GPIO information oraa#MRONFMASK0; write in right motor information anda#MRONFMASKF; write out unwanted information staaPORTA; write GPIO information brapollcomp1; jump to pollcomp1 John Maitin
32
Code (Pt. 2) turnright: ldaaPORTA; get GPIO information oraa#MLONFMASK0; write in left motor information anda#MLONFMASKF; write out unwanted information staaPORTA; write GPIO information ldaaPORTA; get GPIO information oraa#MRONRMASK0; write in right motor information anda#MRONRMASKF; write out unwanted information staaPORTA; write GPIO information pollcomp1: movebase: stop ; enable interrupt control enable_int: sei ; disable interrupts ldaa#$30 ; 9600 baud, assuming 8 MHz clock staaBAUD ; ldaa#$00 ; 8 data bits staaSCCR1 ; ldaa#$2c ; Receive interrupt, poll transmit, enable TX,RX staaSCCR2 ; ldaaSCSR ; clear RDRF, error flags ldaaSCDR ; clear receive buffer clra; clear a tap; transfer a to cc register (enable XIRQ and IRQ) cli; enable interrupts rts ; SCI interrupt handler rec: psha ldaaSCSR anda#$40 cmpa#$40 bnequit ldaaSCDR staacompass quit: pula rti ; change antenna direction (XIRQ interrupt handler) changeant: psha pshb ldaaPORTA ldabantdir comb bmigoreverse goforward: oraa#MAONFMASK0 anda#MAONFMASKF brafinishchange goreverse: oraa#MAONRMASK0 anda#MAONRMASKF finishchange: staaPORTA pulb pula rti John Maitin
33
Simple Memory Map, Simple Decode Memory map is divided in half, so only 1 pin needed to decode If memory mapped I/O is used, we can adapt logic with and gates from needed address pins Josh Bingaman
34
Motor Control Decoding Josh Bingaman
35
RS232 Multiplexing Josh Bingaman
36
Sensor Communication All GPIO No Decode logic 1 pin for IR Reception 1 pin for RF Reception Limit Switches on Antenna motor to XIRQ 1 spare GPIO input for Proximity Sensor Josh Bingaman
38
QUESTIONS?
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.