VEHICLE Platooning

Following my graduation from UCI in September 2015, I embarked on this project as a means to remain active in the learning process and further investigate my interests in automotive embedded systems. I identified vehicle platooning as both a logical and practical progression of my senior project which involved vehicle-to-vehicle (V2V) communication. Although I wasn't entirely satisfied with the outcome of my senior project, the materials and experience I attained from it served well as a template from which to develop this project.

The system is composed of two vehicles capable of moving in forward, reverse, left, and right directions; additionally, the vehicles can rotate clockwise and counter-clockwise. DC motor control is achieved using two dual h-bridge chips per vehicle. The vehicles are wirelessly networked using XBee radios, which allows them to communicate pertinent information such as direction of travel and proximity to one another. This establishes a primitive V2V communication system where a 'lead' vehicle conveys its status/actions to a 'follower' vehicle for the purpose of synchronized movements. When extrapolated to a real-world scenario, platooning vehicles are capable of mitigating the challenges presented by current vehicular travel (e.g., congestion, safety, and fuel efficiency).

C++, Arduino, XBee, nRF8001 Bluetooth LE, L293D H-Bridge, HC-SR04 Ultrasonic Sensor 

Tools Used

This is a self-initiated project for which I conceived the concept, performed research, interfaced hardware, and developed software.


Design and Development

System Functionality

  • Lead vehicle is controlled by user with inputs sent via iPhone
  • Input to lead is relayed to follower via XBee radio
  • The follower mimics movement of the lead
  • When necessary, follower reports data back to the lead
  • The vehicles maintain a 5" distance of separation

Overview of System Functionality

Hardware Design/Interfacing

  • Removed unnecessary components left over from senior project vehicle prototypes 
  • Rewired vehicle prototypes to include L293D h-bridge chips for DC motor control 
  • Interfaced nRF8001 Bluetooth LE chip with lead vehicle for user-control (Bluetooth control with iPhone)
  • Reused XBee S1 radios from senior project for V2V communication between lead and follower vehicles
  • Interfaced HC-SR04 ultrasonic sensor with lead to measure/maintain distance between vehicles

Software Development

  • Designed classes according to major system functions
    • Motor Control
      • Forward, reverse, left, right, stop, cw rotate, ccw rotate
    • Vehicle Control
      • Handlers for input from vehicle, XBee, and Bluetooth
      • Distance monitoring/regulation
    • Vehicle Communication
      • XBee polling
      • Packet send/receive
  • Developed code in conjunction with hardware design stages
  • Performed unit and component testing throughout project development


From a personal standpoint, this is by far the most rewarding project I have been involved with. During project development, I experienced a number of distractions that greatly hindered my ability to focus on the project for sustained periods of time. Despite having to juggle relocation and getting married in October, I managed to complete this project in less time than it took to complete my senior project. Additionally, I did not have the advantage of working collaboratively with teammates or the impetus of an externally imposed timeline. Considering the limited free time and lack of collaboration, results of the completed project reveal that I am becoming increasingly adept at self-direction, project design, and prototyping.

Although from a personal standpoint there is much to admire about this project, I have developed many observations and criticisms that will inform the methods by which I develop future projects. As such, I intend on applying the following list of improvements to a revision of this project and, in doing so, expand my level of experience in designing embedded systems.

  • Design and fabricate a custom printed circuit board (PCB) for motor control. This will streamline the prototype by eliminating the clutter of wires currently present.
  • Change motor control code to use pulse width modulation (PWM). The intention here is to reduce speed-variance between vehicles, which possibly eliminates the need for an ultrasonic sensor on the lead vehicle. Additionally, using PWM will allow a turning radius (a closer approximation to actual vehicle movement) as opposed to the current 90-degree turning. 
  • Replace the current configuration of 4 gearboxes with 2 twin-motor gearboxes. This will improve vehicle tracking (straight-line travel).
  • Optimize and reduce code.