320 likes | 440 Views
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). what to expect. project objectives requirements/specifications
E N D
Big Dog’s Kryptonitecontrolling 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)
what to expect • project objectives • requirements/specifications • design issues/technology
project overview • 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
functional objectives • 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)
learning objectives Understand Wireless Communication Detecting availability of network Efficient methods of sending and receiving data Embedded Systems Microprocessors Assembly Language C R/C car design and functionality What’s the controlling units How do they work
establish connection • between rc car and user’s computer • TCP/IP protocol suite • connection oriented • reliable • sockets • what are they?
real time video feed • 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…)
IP Camera • 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
with ip camera RTSP/RTP
controlling car • commands sent from user’s computer to camera • camera relays signal to microprocessor • microprocessor sends translated signal to car
cmds from user to ip cam • client/server • single connection • server on camera – C • client on user’s computer – Java
to use sockets • create socket • bind socket to port • listen for connections • accept connection • send/receive data from connection
issue • 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
RC car servo • 3 Leads: • Ground • Vcc • 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 RC car servo Pulse Width Modulation
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
Problem • 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
adding a microprocessor rtsp/rtp
microprocessor • 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
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
GUI • processing • can communicate directly to RTSP server on camera • have an instance of a client
conclusion • project objectives • requirements/specifications • design issues/technology