NETWORK RC CAR © James Crosetto BS (Computer Science and Computer Engineering) Jeremy Ellison BS (Computer Engineering) Seth Schwiethale BS (Computer Science) Member Bio’s James Crosetto Computer Science and Computer Engineering Little Caesar’s Pizza Guru Jeremy Ellison Computer Engineering Anti-Coldplay Seth Schwiethale Computer Science Music Diversity Contributor Advisor Bios Dr. Hauser Capstone Advisor Tosh Kakar Group Advisor Work Enforcer Presentation Outline Objectives Goal Setting Innovate & Design Requirements Necessary Equipment Implementation Code Review Future Development Where to go from here Objectives Goal Setting Project Overview Functional Objectives Learning Objectives Innovative development Goal Setting Radio Frequency vs. Internet Internet vs. Network Computer vs. IP Camera Innovative Development Design Development Research Products Objectives Goal Setting Project Overview Goal Setting 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 Build something cool Innovative Development Design Development Research Products Objectives Goal Setting Functional Objectives Goal Setting Establish connection between RC car and driver’s computer Get real time visual feed Control RC car User friendly GUI Innovative Development Design Development Research Products Objectives Goal Setting Learning Objectives Understand Wireless Communication Embedded Systems Microprocessors Assembly Language Linux / C R/C car design and functionality Goal Setting Efficient methods of sending and receiving data Servos Pulse Width Modulation Innovative Development Design Development Research Products Objectives Innovative Development Radio Frequency 350-400ft Line-of-sight Object interference Internet Network Goal Setting Advanced Range Non-line-of-sight Innovative Development Design Development Research Products Objectives Animated Design Progression Goal Setting Innovative Development Design Development Research Products Requirements Necessary Components Car Camera Microprocessor User’s PC Requirements The Car Goal Setting Innovative Development Design Development Research Products Requirements The Car 3 Leads: Goal Setting Ground Vcc Pulse width modulation Innovative Development Design Development Research Products Requirements The Car Goal Setting Innovative Development Design Development Research Products Requirements The Car 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 Goal Setting Innovative Development Design Development Research Products Requirements 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: 32MB Flash: 8MB Goal Setting Innovative Development Design Development Research Products Requirements Microprocessor Receives and translates signals from the transistor output of the IP camera Sends translated signals to steering box and speed control Programmed with C and Assembly Goal Setting Innovative Development DragonFly12 Design Development Research Products Requirements Functional GUI Processing Can communicate directly to RTSP server on camera Have an instance of a client Goal Setting Innovative Development Design Development Research Products Unexpected outcome of design… Swarmed with applications to be our advisor: Project Costs: Camera One time Purchase: $275 Little Caesars Hot-N-Ready: $600 annual cost Traveling Costs Seminar in Hawaii - $800/member Still pending department approval… Implementation PARTYING? How to accomplish our goals? NO!!! STUDYING? YES! Implementation 3 Major Lines of Communication PC Camera Camera Microprocessor Microprocessor Car Implementation Animated Diagram 1. PC to Camera 2. Camera to Microprocessor 3. Microprocessor to Car PC Camera Camera Microprocessor Microprocessor Car Implementation Code Review – Part I This slide and those following will discuss the code from the pc to the camera Code Screen shots GUI Screen shots Discuss Issues PC Camera Camera Microprocessor Microprocessor Car Implementation Animated Diagram 1. PC to Camera 2. Camera to Microprocessor 3. Microprocessor to Car PC Camera Camera Microprocessor Microprocessor Car Implementation Code Review – Part II Using a microprocessor Initial coding/design on Dragon12 development board (MC9S12DP256) Transferred to DragonFly12 (on the car) PC Camera has a bus speed of 24MHz has registers for a Pulse Width Modulator and an Enhanced Capture Timer Bus speed 48MHz Fewer ports Camera Microprocessor Microprocessor Car Design: Camera to Microprocessor Camera’s alarm output can be activated about every 10 ms Initially 10-120 ms speed and 130-240 ms steering in increments of 10 ms (alternating) Problems encountered: Camera couldn’t be activated this fast when using the camera’s program for activating the output Slowed to around 0.1 second when streaming video Very inconsistent signal Design: Camera to Microprocessor Changed to four bit signal in the form XXXX Still takes on the order of 250 ms to send signal Speed Steering Solved using hexdump, Google, and beagle Design: Camera to Microprocessor Solution: Using ioctl system call, output can be activated in less than 1 ms Number of signals sent (0-14) determine speed and direction of car Longer signal sent to mark end of signal sequence Design: Camera to Microprocessor Still needed End of signal Implementation Code Review – Part II Implementation Amplifier V1 5Vdc Rc 10k 0 V-out V-in 2N2222 V1 = 0 V2 = 3.3 0 PC Camera 0 Camera Microprocessor Microprocessor Car Implementation Animated Diagram 1. PC to Camera 2. Camera to Microprocessor 3. Microprocessor to Car PC Camera Camera Microprocessor Microprocessor Car Implementation Code Review – Part III Talk about microprocessor code Dragon12 Screen Shot of Code EmbeddedGNU Screen Shot of Program DragonFly12 Screen Shot of Revised Code Issues – Issues – Issues PC Camera Camera Microprocessor Microprocessor Car Implementation Code Review – Part III Problems we encountered…. Getting camera feed displayed on GUI Axis not being any help whatsoever Many emails, one helpful reply Setting up a cross compiler for the camera Tried six distributions of Ubuntu Broken Ubuntu installations Fixing Axis cross compiler Tried creating our own cross compiler Output activation took around 0.1 seconds using program on camera Solved using hexdump, Google, and Beagle Putting code onto DragonFly12 Used build root and Triggering camera alarm fast enough Create cross compiler with build root and uclibc Creating cross compiler using gcc Can’t download from CodeWarrior directly CodeWarrior s19 file has to be converted for the DragonFly12 Camera not cooperating Future Development What could we do if we had more time? Put everything on a separate car with reverse (maybe need to explain why we’re using this car with no reverse in the first place) With above ability, apply backtracking idea? (application of a stack storing commands of steering and compliments of speed) Wireless strength monitor? Sales and Marketing You can place order for yours TODAY! $700…. Next year capstone students? Cash and Visa No Checks w/o valid drivers license Special Thanks George Hauser Ph.D., University of Rochester Tosh Kakar Ph.D., Washington State University Wayne Chu Frank Wornle Make-a-wish foundation Little Caesars Delivery guys who deliver straight to Morken 212a