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
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
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)
between rc car and user’s computer TCP/IP protocol suite ◦ connection oriented ◦ reliable sockets ◦ what are they?
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…)
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
tcp/ip
commands sent from user’s computer to camera camera relays signal to microprocessor microprocessor sends translated signal to car
single connection server on camera – C client on user’s computer – Java
create socket int socket_descriptor; socket_descriptor = socket(AF_INTET, SOCK_STREAM, 0);//domain, type, protocol) //0 = IPPROTO_TCP for AF_INET, SOCK_STREAM bind socket to port struct sockaddr_in address; address.sin_family = AF_INET; address.sin_addr.s_addr = INADDR_ANY; address.sin_port = htons(7000); bind(socket_descriptor, (struct sockaddr *)&address, sizeof(address)); listen for connections listen(socket_descriptor, 5) //there can be up to 5 connections pending, >5 timeout error accept connection int addrlen; struct sockaddr_in address; addrlen = sizeof(struct sockaddr_in); new_socket = accept(sock_descriptor, (struct sockaddr *)&address, &addrlen); if(new_socket<0) perror(“Accept connection”);
3 Leads: ◦ Ground ◦ V cc ◦ Pulse width modulation
Square Pulse wave of ms 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 V cc V cc = V
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
tcp/ip
Receives signals from the transistor output of the IP camera Translates the signals Sends translated signals to steering box and speed control Programmed with C and Assembly Written, debugged, tested using CodeWarrior and a Dragon12 development board
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