Big Dog’s Kryptonite controlling a RC car over a network
description
Transcript of Big Dog’s Kryptonite controlling a RC car over a network
Big Dog’s Kryptonite
controlling a RC car over a network
James Crosetto BS (Computer Science and Computer Engineering)Jeremy Ellison BS (Computer Science and Computer Engineering)
Seth Schwiethale BS (Computer Science)
project objectives
requirements/specifications
design issues/technology
what to expect
expanding the range of a remote control car
control car over network, similar to a printer
be able to have first person view of car’s location
project overview
at a glance
establish connection between rc car and driver’s computer
get real time visual feed
control rc car
user friendly GUI
backtracking (retracing to reacquire lost signal)
functional objectives
learning objectives1. Understand Wireless Communication
- Detecting availability of network- Efficient methods of sending and receiving data
2. Embedded Systems- Microprocessors- Assembly Language- C
3. R/C car design and functionality- What’s the controlling units- How do they work
between rc car and user’s computer TCP/IP protocol suite
◦ connection oriented ◦ reliable
sockets◦ what are they?
establish connection
IP camera◦ video stream ◦ wireless interface◦ linux kernel
Axis® RTSP◦ control protocol for media server◦ “play” and “pause” type of commands ◦ control of media stream properties (bit rate, res,
etc…)
real time video feed
Power: 5.1 V DC, max 3.5 W
Alarm output (motion, audio, external)
Open API for software integration
CPU, video processing and compression;◦ Ram: 32 MB◦ Flash: 8 MB
IP Camera
originally
with ip camera
RTSP/RTP
commands sent from user’s computer to camera
camera relays signal to microprocessor
microprocessor sends translated signal to car
controlling car
client/server
single connection
server on camera – C
client on user’s computer – Java
cmds from user to ip cam
create socket
bind socket to port
listen for connections
accept connection
send/receive data from connection
to use sockets
basic driving cmd sequence
since directions from client will be rapid◦ don’t want to have to wait for acknowledgment
issue
since directions from client will be rapid◦ don’t want to have to wait for acknowledgment
use non-blocking sockets◦ allow communication between applications
without blocking the processes using the sockets
◦ for example: java uses Selector and keys
issue
hardware signals
3 Leads: ◦ Ground◦ Vcc◦ Pulse width modulation
RC car servo
speed and steering
RC car servo Pulse Width Modulation Square Pulse wave of
1.0-2.0ms repeats every ~20ms
Width of pulse determines the position of the servo with 1.5ms as the normal center
The amplitude of the pulse is from the reference level to the Vcc
Vcc = 4.6-6.0V
IP Camera – I/O 4-pin I/O terminal
◦ 1 transistor output Max load of 100mA Max voltage of 24V DC
◦ 1 digital input Can be activated or left floating
◦ Auxiliary power and GND Max 5V DC, 2.5W Connector for main power Power to auxiliary equip, Max 50mA
The output of the camera can be activated every 1/100th of a second
Car steering box and speed control require differences of less than 1ms
Problem
RTSP/RTP
adding a microprocessor
rtsp/rtp
Receives and translates signals from the transistor output of the IP camera◦ Camera signals are 100-185ms for steering and
200-285ms for speed control Sends translated signals to steering box and
speed control Programmed with C and Assembly Written, debugged, tested using
CodeWarrior and a Dragon12 development board
microprocessor
Programming the microprocessor
Backtracking Every time the IP camera receives a
command, it stores the command in memory
If a connection is lost, the camera sends signals to the car to make it backtrack
If a connection is reestablished, backtracking stops
processing
can communicate directly to RTSP server on camera
have an instance of a client
GUI
driver view
all together
project objectives
requirements/specifications
design issues/technology
conclusion