Unmanned Aerial Vehicle


Published on

Intro to Commercial Unmanned Aerial Vehicles/Systems.
Partial Free Code :)

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Unmanned Aerial Vehicle

  1. 1. Unmanned Aerial VehicleArab Academy for Science and Technology and Maritime Transport College of Engineering and Technology Department of Computer Engineering UNMANNED AERIAL VEHICLE (UAV) Presented by: Alexander Mohamed Osman Riyad Ahmed El-laithy Ruyyan Ahmed El-laithy Peter Raouf Zaky Supervised by: Dr. Ibrahim Imam ((July 2007)) Page 1
  2. 2. Unmanned Aerial Vehicle ACKNOWLEDGEMENTS After thanking God the Merciful we would like to send our thanks to the followingpeople: Firstly we would like to thank Dr. Ibrahim Imam for proposing the idea of anUnmanned Aerial Vehicle and for accepting us to carry on that project. Secondly we would like to thank Dr. Atallah Hashad for giving us a helping handwhenever we needed one and for providing us with solutions for all the challenges wefaced. We would like to thank Dr. Hassan Ibrahim for providing us with help with theelectrical problems we faced in our circuits. We would also like to thank Dr. Gamal Selim for his encouragement, assistance andunderstanding. We would like to thank Dr. Yasser Galal for answering some questions we hadabout DC motors. We would also like to thank Eng. Ahmed Akl, Eng. Renad Kamal, Muhab Bahgat,Ruyhan El-Laithy, Fady Mounier, Beshoy Helmy, Todd Elliot, and Sparkfun Electronicsfor supporting us and/or making this possible. Last but not least we would like to thank our parents & families for their love,support, and understanding. Page 2
  3. 3. Unmanned Aerial Vehicle ABSTRACT Gathering information from locations which are inhabitable, hostile, or difficult toreach is a crucial aspect for learning new information about unmarked territories andactivities and aids in human technological advancement. This project is concerned withdeveloping an agent for gathering visual information by holding a stationary position orpursuing a dynamic target. The agent is a quadrotor VTOL (Vertical Take Off andLanding) aircraft. This agent should have the capability to hover, fly and follow targets. Itshould receive and transmit data wirelessly into a base station. It should move through apredefined plan using a GPS receiver. It should also balance itself in the air through agyrometer and an accelerometer. In addition it would utilize four ultrasonic sensors forobstacle avoidance and an extra one for landing assistance. The agent would also utilize awireless camera to transmit a bird s eye view to the base station. Page 3
  4. 4. Unmanned Aerial Vehicle TABLE OF CONTENTS1. INTRODUCTION .......................72. CONCEPTUAL DESIGN & PHYSICAL ASSEMBLY .. 123. ANALYSIS, COMPONENT-LEVEL DESIGN & SELECTION .18 3.1 Major Components ..18 3.2 PCB Design .. .......25 3.2.1 Interface Boards ...27 GPS interface board .27 Accelerometer / Gyrometer interface board ................28 RF Interface boards 24-G .. ............28 3.2.2 Motor Driver 29 3.2.3 The Brain.. ...314. CONTROL 33 4.1 Introduction .........33 4.2 SPI communication .35 4.3 Main PIC Implementation ................38 4.3.1 Pulse Width Modulation (Motors) ...38 4.3.2 ADC Operation ............43 Ultrasonic Sensors 50 Gyrometer .. ...52 Accelerometer . ..52 4.4 Secondary PIC Implementation ......55 4.4.1 GPS System .55 4.4.2 RF Transceiver .66 4.5 RC Unit ......75 Page 4
  5. 5. Unmanned Aerial Vehicle5. TESTING TROUBLESHOOTING AND REDESIGN 78 5.1 Testing ..78 5.1.1 LED Testing ..78 Accelerometer Testing ..78 Gyrometer Testing 78 SPI Testing 79 RC unit testing ..................79 5.1.2 LCD Testing ..80 Ultrasonic testing . ..81 Accelerometer Testing . ..81 RC unit Testing . ................82 GPS Testing . .83 5.1.3 RF Testing . . .83 Ultrasonic Testing . 83 Gyro Testing . 83 RC Unit . 85 5.2 Previous Chassis designs . ...88 5.3 RF Drivers . .....90 5.3.1 Laipac RF TX/RX ...90 5.4 Configuration 1 ......92 5.5 Configuration 2 ..96 5.6 Brain #3 .....99 5.7 Correcting Gyro Output 1006. FUTURE IMPLEMENTATIONS ..1027. CONCLUSION .......103 Page 5
  7. 7. Unmanned Aerial Vehicle INTRODUCTION The rapid development of micro-processor technology and the continuous growth ofintegration density of electronical and mechatronical components yields a significant costreduction of high tech products. Driven by this development it becomes feasible to embedinformation processing and communicating devices in all sorts of appliances, toys,production facilities, communication systems, traffic and transport systems etc. With this integration and the aid of global positioning systems, there has been asurge of development in Unmanned Vehicles (UV). The main benefits of UV s are thatthey do not require human control and thus can be reduced in size and cost. They also limithuman error in several aspects, and reduce if not eliminate human endangerment.Unmanned vehicles are developed for use in air, over land and under water by both privateand government agencies. Several unmanned systems exist such as AutonomousUnderwater Vehicles (AUV), Unmanned Ground Vehicle (UGV), and Unmanned CombatVehicles (UCV). NASA deploys USVs (Unmanned Space Vehicles) on rock gatheringmissions from the Moon and Mars. The military advanced UAVs and renamed them toUAVS (Unmanned Aerial Vehicle Systems) and are used in flight combat. Government search and rescue departments find the UAVs helpful in inhabitable orhazardous terrain such as earthquakes, floods or volcanoes, where no human lives have tobe risked. Institutions which have onsite geologists use UAVs for uncovering terrain androck identification, without having to deploy a whole crew working outside. Departmentsof transportation can use this device to cover footage of inaccessible situations such asdead-lock traffic jams or multiple car-crashes. Government law enforcement andintelligence agencies can specifically find this device useful for reconnaissance and targetpursuance, where the UAV provides the advantages of cheap costs, stealth and adiminished human risk factor. The Unmanned Aerial Vehicle project has been an ongoing attempt to produce areliable autonomous hovering or flying vehicle. The project designed and implemented afour-rotor hovering aerial vehicle. The advantages of a hovering vehicle over a fixed-wing Page 7
  8. 8. Unmanned Aerial Vehicleflying vehicle include less complexity in design, minimal space for take-off and landing(vertical take-off and landing (VTOL)), indoor flight, maneuverability in obstacle heavyenvironments and of course the eye-catching ability of being able to maintain a staticposition in mid-air. The advantage of quadrotors over helicopters is that they do not require mechanicallinkages to vary rotor angle of attack as they spin, this simplifies design and control. Theuse of four rotors allows each individual rotor to have a smaller diameter than theequivalent helicopter rotor, for a given vehicle size, allowing them to store less kineticenergy during flight. These smaller propellers reduce the damage caused should the rotorshit any objects, this also makes the vehicles safer to interact with in close proximity. The first RC application of a 4-rotor vehicle was the Roswell Flyer made by Area51technologies. Now there are several commercially available quadrotor aerial vehicles, to lista few, Atair aerospace quadcopter , Hammacher Schlemmer four rotor UFO , KeyenceEngager and gyrosaucer and the DraganFlyer V Ti . The team s design was inspired bythe DraganFlyer V, made by Draganfly Innovations Inc. where the four motors and propsare laid at the ends of an X Chassis, and in the center lay the majority of the circuit boardsand microprocessor dubbed by DraganFlyer Inc. as The Brain . (See figure below) Page 8
  9. 9. Unmanned Aerial VehicleSystem Block Diagram A general control scheme can be seen in the diagram above. The controller block iscomposed of two communicating MCU s (MicroController Units). The main MCU doesmost of the calculations and decision making. The main MCU also receives inputs from theproximity sensors and stability sensors, while the secondary MCU is responsible forcommunicating with a GPS receiver for positioning and an RF module for wirelesscommunication. Both MCU s then drive the outputs for the four motors together. The stability sensors block consists of a 3-axis Gyrometer for angular velocitymeasurement and a 3-axis accelerometer for measuring acceleration. The proximity sensorsblock consists of 5 ultrasonic sensors placed around the vehicle and under it, for obstacleavoidance and assisted landing. The GPS receiver block consists of a GPS module that provides position, velocity,heading and altitude readings. The RF transceiver block consists of a 2.4GHz RF Modulethat communicates bi-directionally with a remote control unit for sending and receivingdata. Page 9
  10. 10. Unmanned Aerial Vehicle The Motor block consists of 4 high powered brushed motors with a gear ratio of5.33:1 and 10x4.5 propellers. Both of these features provide a high thrust vehicle (Asopposed to high speed). These motors are controlled through switching transistor circuitsusing PWM (Pulse Width Modulation). The UAV works in three different modes, in the simplest mode a land based PCsends out signals through an RF transceiver in order to steer the UAV in differentdirections. In the second mode a land based PC receives images from an onboard camera,then a pattern recognition system identifies a target object and sends signals to the UAVthrough the RF transceiver to steer it toward the desired object. If the object is not found theUAV rises in altitude quickly in order to find the object and re-track it. The third mode usesan onboard GPS that gives the current position of the UAV and it compares that to its targetdestination, and steers to its target destination then comes back to its initial point. In allmodes an accelerometer and gyrometer are used to provide stability, and ultrasonic sensorsare used to measure height and avoid obstacles and in turn to steer the UAV away fromthem. Because of the ambitious nature of the project, the team decided to build the UAVfrom ground up. Development of our 4-rotor vehicle can be divided into four majorbranches.1. Conceptual Design and Physical Assembly.2. Analysis, component-level design & selection.3. Control.4. Testing, Troubleshooting & Redesign. Although these four stages overlapped and interfered with one another they can bediscussed independently, without much referencing to other sections. Page 10
  11. 11. Unmanned Aerial Vehicle CONCEPTUAL DESIGN & PHYSICAL ASSEMBLY The conceptual design as stated previously was inspired by the DraganFlyer, andthe team s first step was to identify the design goals. These were the fundamentalrequirements the team decided upon: 1. Ability to hover, in the sense of generating enough thrust and have enough control in order to maintain a mid-air static position. 2. Maneuverability in all directions of a three-dimensional plane. 3. Sufficient endurance of no less than 10-15 minutes. 4. A very light-weight body, including a battery with the highest power to weight ratio we could find since the battery is the heaviest single component of the vehicle. 5. High residual thrust to hover thrust ratio, an acrobatic vehicle was desirable for ability to demonstrate controllability and to perform difficult flight maneuvers. 6. Minimal size & complexity. The team decided to stick very close to traditional designs of 4-rotor vehicles, wherefour electric motors are placed on the corners of a rectangle, and drive four counter-rotatingpropellers. These propellers would produce sufficient thrust for take-off, and according totheir different allocated power distributed on the four motors would providemaneuverability. Any propeller spinning produces a torque on the body it is attached to. Forstability in flight the total resulting differential torque on the body should be zero. This isdemonstrated very clearly in helicopters. The main rotor on the roof of the helicopterproduces a large yaw torque on the body which is countered by the tail rotor on the rear ofthe plane. Assuming the main rotor is on a constant rpm, the difference in power to the rearpropeller moves the helicopter around the z-axis. Page 11
  12. 12. Unmanned Aerial Vehicle The proper rotation of the propellers, goes such as any two adjacent propellersrotate in opposite directions, and any two diagonal propellers rotate in the same direction.The sum of rotations of any two diagonal propellers should equal the sum of the remainingtwo diagonal propellers. This makes the total differential torque on the body about the z-axis zero. The figure below demonstrates the prop rotation direction. At hover mode, all four propellers would be producing the same amount of torqueresulting in zero-net force on the vehicle about any-axis once gravity is taken into account.To make the vehicle increase or decrease in altitude, the speed on all four propellers areincreased or decreased respectively. In order to move the vehicle in any direction of the xor y axis, two propellers adjacent propellers are increased in thrust, this causes the vehicleto pitch or roll in the desired direction, since the sum of the any two diagonal rotors is stillthe same as their other diagonal pair, this prevents the vehicle from yawing in any directionother than the desired course. Assuming the vehicle is in hover mode the following tableyields a summary of the vehicle control scheme. Use the previous figure for propellerreference. Page 12
  13. 13. Unmanned Aerial Vehicle Propeller 1 Propeller 2 Propeller 3 Propeller 4 Z+ (Up) + + + + Z- (Down) - - - - X+ (Left) + 0 0 + X- (Right) 0 + + 0 Y+ (Forward) + + 0 0 Y- (Backward) 0 0 + + As stated earlier, a lightweight body was a must in order to achieve maximum thrustfor ease of flight and acrobatic maneuvers. For the chassis of the plane carbon-fiber wasused, a very stiff and lightweight material, with a variety of practical uses commonly usedin racecars and RC planes for their unique characteristics. To save even more weight weused the X-chassis design, where four motors would be placed on every end of the X-chassis. This would also give a better chance for the high pressure to accumulate andincrease under the blade of the propellers to give higher lift than in a rectangular design. Itwould also reduce the overall air resistance. The arms of the X-chassis were made fromhollow carbon-fiber tubes, and at the end of the tubes the motor mounts were placed. Theywere welded together using a common adhesive known to the RC world as Epoxy . On the bottom of the X-chassis the battery was mounted, keeping the battery on alower point would lower the center of gravity of the vehicle giving the vehicle smootherpitching and rolling. On the four battery sides four ultrasonic sensors would be placed forobstacle avoidance. On the bottom of the battery the fifth ultrasonic sensor was placed todetermine height, along with the wireless camera placed for surveillance purposes, video orimage capturing. On the top of the X-chassis the UAV brain board was placed. It carries theaccelerometer, gyrometer, RF Transceiver, GPS, motor controllers, ultrasonic sensorsconnections, and of course the Microcontrollers. The following figure below displays thechassis. Page 13
  14. 14. Unmanned Aerial Vehicle After going through the design and experimentation of three different prototypes(found in 5.2 Previous Chassis designs). One of the most difficult tasks for us, thatabsorbed most of our time was coming up with the chassis that can have completelyreduced air resistance, maximized technical output power when compared to theoreticalpower of the DC Brushed Motors involved, uniform density, and as extremely lightweightas possible with all the components that we have had to add on the UAV. The net weight onthe UAV including all added components added up 990g when measured on the scale,which is almost 1 Kg. The theoretical output power given to us by the DC Brushed Motorsadded to up to a maximum thrust of 390 grams per motor. (See APPENDIX C) Since wehave 4 motors on the UAV, the complete output power given by those motors is 1560grams (1.56Kg). Technically, the team managed to output only around 350 grams permotor, adding up to 1400 grams (1.40Kg) of thrust. The efficiency of our design brought us89.74% of that power. The loss in power comes up to 10.26% due to friction forces, andminimized air resistance. It is made mostly out of lightweight Carbon Fiber and Balsa Wood for the base ofthe electrical circuit. The total weight of the chassis without all the components comes to 43grams. A CAD model was designed, shown in the following figures. An isometric view isshown below, and the dimensions of the chassis design are shown in the next few pages. Page 14
  15. 15. Unmanned Aerial VehicleTop View:Front View:Right Side View: Page 15
  16. 16. Unmanned Aerial VehicleCalculations:Motor Force: Max OutputTheoretical/Ideal = 390 grams/Motor Max OutputTechnical = 350 grams/MotorTherefore, the Total Motor Output of 4 Motors at Full Power: Max Output4Motors = 1400 grams/4 Motors Maximum Payload = 1400 990 = 410 gramsHence, Max Output in Newtons = 1400 x 9.807 = 13.730 Newtons Max Output per Motor = 13.730/4 = 3.432 NewtonsNet Force:Therefore, Lift of Chassis at Full Power and when Differential Torque = 0. Chassis mass = 990 grams = 0.99 Kg Chassis weight = 0.99 Kg x 9.807 m/s2 = 9.709N Lift = 13.730 9.709 = 4.021 NewtonsAcceleration:Net Force = Lift - Gravity = ma mg4.021 = 13.730 9.7090.99a = 1.4(9.807) 0.99(9.807)a = (0.41(9.807)) / 0.99acceleration = 4.061m/s2Therefore, the Power to Weight Ratio: 1.5 : 1Therefore, Lateral Thrust beyond Hover thrust = (4.061m/s2) / (9.807m/s2) = 0.4141g Page 16
  17. 17. Unmanned Aerial VehicleTorque: = Acceleration / Distance to Center = 4.061 m/s2 / 0.14m = 29.007 rad/sec2 = mass * radius2 * (angular velocity) = (0.495) x (0.14) 2 (29.007); where (0.99/2 Motors = 0.495 grams, since it takes 2 motors for the UAV to move front, back, left or right). = 0.2814 Newtons MAX = 4.061 x 0.14 = 0.56854 Newtons A picture of the UAV with complete physical assembly can be seen below in thefollowing figure. Page 17
  18. 18. Unmanned Aerial VehicleANALYSIS, COMPONENT-LEVEL DESIGN & SELECTION3.1 Major Components : The selection of the motors were brushed motors the GWS EPS-350C with agearing ratio of 5.33:1, which peak out at 8.0V and 8.0A, each of these weigh 63g and areprojected to deliver 15.37oz (435.73g) of thrust at peak power. Four of these motors areused, with one on each end of the X -chassis. A figure is placed below. Counter-rotating propellers were selected as our default propellers, which are a mustin any quadrotor plane, because motors do not turn in the same direction. We selected10*4.5 propellers which are large considered for our motor. Larger propellers are moresuitable for high thrust application, and smaller rotors are more suitable for high velocityand aerodynamic capabilities. Our choice was the EPP1045 propeller. A figure of thepropeller is placed below. Page 18
  19. 19. Unmanned Aerial Vehicle Heat syncs were also used to cool down the motors to increase durability andefficiency as well as to dissipate the heat created by the motors for a longer, more durablelife. The team selected EHS300 an aluminum, multi-fin heat sync for good heat dissipationand proper venting respectively. The heat sync has two large fins and 24 smaller fins. Afigure of the heat sync is placed below. We needed a battery source that can provide more than 32A continuously,considering each motor can consume 8A, the battery of choice was a Lithium-polymerThunder Power TP8000-2S4P two-cell 7.4V, 8AH battery. It can work continuously at 12C(96A), and can burst at 18C (144A) which is more than sufficient to have all motorsworking at full thrust. With a weight of 320 grams and dimensions of 128*50*29mm it hada high power to weight ratio and size relative to its competitors. It would also give us abouta good 15 minutes of airtime if the UAV is flying at full power. A figure of the battery isplaced below. Page 19
  20. 20. Unmanned Aerial Vehicle A compatible charger the Astro-flight 109D was selected. Charging rates from50mA - 8A. Lithium polymer batteries can charge at a maximum of 1C of their rating, sothis charger can charge the battery in the fastest possible time which is 1 hour, for quickpractical testing. The battery is two cells, any battery with more than one cell requires abalancer, so a blinky battery balancer was used which balances the cells before, after andduring recharge. A wattmeter was also required to measure the voltage and current of thebattery before and after recharge. A powerful and bulky power supply is required tocontinuously deliver such current to the charger. The astro-flight power supply was used,with an input of 110V/220V and an output of 13.5V, it delivers 12.5A. Figures of thecharger (top left), blinky battery balancer (top right), wattmeter (bottom left), and powersupply (bottom right) are placed below. Page 20
  21. 21. Unmanned Aerial Vehicle The accelerometer used was the triple-axis ADXL-330. Works at 3.3V logic, andconsumes 0.32mA, it has three outputs for x, y and z axes. Minimum full scale range is±3g, and a sensitivity of 300mV/g. The gyrometer used is the IDG-300 which also works at3.0V logic and has a full scale range of 500°/sec, and consumes 9.5mA, but has only twooutputs, x and y. Because of this the team had to place two of these IC s onboard, to getangular velocity about all three axes. Pictures of the accelerometer and gyrometer aredisplayed below from left to right. The IMU five degrees of freedom is an IMU (Inertia Measurement Unit) thatcombines the IDG300 gyrometer and an ADXL330 accelerometer. This unit measures xand y angular velocity and x, y, z accelerometer outputs, hence the name 5 degrees offreedom . Its advantages over two separate units are firstly that the x and y outputs of bothhave identical headings, and you only have one VCC and one GND connection.Disadvantages are if this IC for any reason becomes defective you lose two IC s. A figureof this IC is displayed below. Page 21
  22. 22. Unmanned Aerial Vehicle Ultrasonic sensors used were the Max sonar LV-EZ1 which work at 5.0V logic andhave a maximum range of 255in (6.45m), which measures in increments of an inch, theyhave analog, digital and pulse width modulated outputs. It consumes 2mA. Five of these areplaced onboard, four facing x and y axes, in order to detect obstacles around the vehicle,and one on the bottom of the battery facing downwards to detect height and aid in landing.We could not rely on the altitude reading of the GPS system for height because there is anerror tolerance of ±5m, this could result in hazardous landings. The extra ultrasonic sensoron the bottom would virtually eliminate that error because its resolution is relatively quitehigh. For communication with ground, radio frequency IC s are used. The LaipacTRF2.4-G transceiver was used. It operates at a high frequency, 2.4GHz. Data ratetransmission can work at either 250kbps or 1Mbps. It works at 3.0V logic consumes10.5mA in TX mode and 18.5mA in RX mode. Maximum range is 280m. Each unit cansend and receive data interchangeably. One of the transceivers is placed onboard, and theother is connected to a land-based PC, they send and receive data to and from each other. Page 22
  23. 23. Unmanned Aerial Vehicle For unmanned guidance to different destinations a GPS system, the EM-406 wasused. Readings of latitude, longitude and altitude obtained serially are used to triangulatethe position of the IC. Power input is rated between 4.5V-6.5V and power consumption is70mA, operating frequency is at 1.58GHz. A figure of the GPS is placed below.jhnjh For the surveillance system the WS-309AS system was used, the package comeswith 1.2GHz camera with a resolution of 628*582 and a horizontal definition of 380 lines.The camera works at 9.0V, and consumes 85mA. A simple 9V battery operates the camera.The package also comes with a receiver with audio out and video out. Linear transmissiondistance ranges from 50m-100m. A picture of the camera and components are placedbelow. Page 23
  24. 24. Unmanned Aerial Vehicle The selected PIC programmer was the Olimex PIC-MCP-USB programmer. It is alow cost PICSTART alternative, is MPLAB compatible and thus does not require a RS232port. In addition it has an ICSP (In Circuit Serial Programming) connector (ICSPprogramming explained in APPENDIX E). A figure of the programmer is displayed below. Page 24
  25. 25. Unmanned Aerial Vehicle3.2 PCB Design Required components for designing and etching a PCB are acetone, a laser printer,glossy paper, a clothing iron, acid and a steel sponge. Firstly the surface of the brass boardis scrubbed with a steel sponge to remove any impurities and any oxidized brass. It is thencleaned thoroughly with cotton drained in acetone. The team used the circuit designingprogram called EAGLE 4.16r1 . Any circuit is printed on glossy paper, the printed glossypaper is then well folded around the board to prevent any slip during ironing, then ironedon the brass board. Ironing continues until the circuit becomes visible from the other side ofthe printed glossy paper, or preferably when the white paper takes a yellowish/brownishcolor indicating a slight burn. (Caution should be taken during ironing, if the brass boardbecomes too hot, the brass actually deforms). After ironing, the paper should be removedleaving the toner ink on the brass board. The brass board is then placed in the acid and leftuntil all brass surrounding the printed circuit is dissolved. After removing from acid andrinsing in water, a steel sponge is gently scrubbed on the toner ink to leave the brass traceunder the toner ink while removing the ink. Holes are drilled into the circuit board in theappropriate places where components are to be placed. After drilling is complete,components are welded onto the board using solder and a soldering iron. All circuits usedfor this project were designed in this manner. Pictures below (left to right) display thisprocedure. Before these boards were actually designed they were tested on bread boards first inorder to assure everything is working in order, because making an incorrect PCB meansmuch wasted time and raw materials. More of this can be referenced in Section 7, Testingtroubleshooting and redesign. Page 25
  26. 26. Unmanned Aerial Vehicle Page 26
  27. 27. Unmanned Aerial Vehicle3.2.1 Interface Boards Learning from previous errors we found it would be more convenient to createinterface boards for individual IC s rather than integrate them into one large circuit. (Muchthe way a desktop motherboard uses PCI cards instead of making one large board.) This isbecause if any errors occur in the design, or redesigning is desired, the individual IC swouldn t need to be removed. Frequently exposing IC s to strong heat when welding candamage these components. GPS Interface Board In his board the GPS cable is welded onto the left row of pins. The descending orderof these pins is; not used, GND, TX, RX, VIN, & GND, again. The first pin is ignored. Thesecond and last pins (both GND) connect to the right side second pin. The third pin TXconnects to the fourth pin on the right. The 4th pin on the left is RX that connects to thethird pin on the right. Page 27
  28. 28. Unmanned Aerial Vehicle3.2.1.2 Accelerometer / Gyrometer Interface BoardThis follows the same method as the GPS interface board. The E$1 row is the yaw gyro,E$2 row is the roll/pitch gyro. E$3 row is the three axis accelerometer. E$4 row is the pinheaders that connect onto the main board. RF boardsThe TRW-24G is a very sensitive component therefore we designed this interface boardwith a TRW-24G socket for plug and play action onto the board. Page 28
  29. 29. Unmanned Aerial Vehicle3.2.2 Motor Drivers : Designing a suitable motor controller circuit was a challenging task, especially due tothe lack of components here in Egypt. The controlled motors could take up to 64 Amperebursts for a startup current and up to 8 Amperes as a continuous current. In order to achievemaximum power we needed to cause a minimal voltage drop in our circuit. We came upwith the following design objectives:- Switching speed of up to 2KHz (for PWM control)- Minimum Vce drop possible for more powerful motors- High current Ic- Low current Ib Unfortunately the transistors fitting this description could not be found here inEgypt, but we found a transistor 2SD1062. It is capable of running a current of up to 15Aand Vce of as low as 0.3V, but it needed a larger current for Ib than a PIC could provide,therefore we added a TIP120 transistor as an interface between the PIC and the 2SD1062.Since Vce of the 2SD1062 was a function of the Ic current we put 2 transistors in parallel todrop the Vce as low as possible while at the same time assuring that it has enough capacityto pass through the required current for the motor. A main feature of this circuit is the PC817 optocoupler, an IC that interfacesbetween the PIC circuit and the motor circuit. Isolating these circuits was necessarybecause combining high current components with low current ones can damage the lowcurrent components. The optocoupler in the following diagram is labeled as 2. The leftside of the optocoupler is connected to the PIC circuit and the right side is connected to themotor circuit. The first rows of pins in order are GND (PIC circuit), Vcc (PIC circuit), GND(Motor circuit) and Vcc (Motor circuit). Vcc from PIC (PWM output) circuit goes through a1.5K resistor through optocouplers where the phototransistor is activated and returns tothe PIC ground. The signal in turn goes through the base of the TIP120 turning it on. Theemitter of the TIP120 connects to the base of the 2SD1062 transistors, whose collectors are Page 29
  30. 30. Unmanned Aerial Vehicleconnected to the motor and the motor is connected to the Li-Poly battery. A circuitschematic is shown below. Resistors were placed to produce desired voltage drops. In the final motor driver design, the optocoupler was removed from the motor driverand put on the main brain. This was done in order to have smaller motor drivers, and tohave less connections between the main board and the motor driver. Also large motordrivers facing upwards would make contact with revolving propellers, and if facingdownwards could cause noise with the ultrasonic sensors. Page 30
  31. 31. Unmanned Aerial Vehicle3.2.3 The Brain To avoid the mistakes that occurred in Configuration 2 mentioned in the Testing,Troubleshooting & redesign section the team changed two things mainly. FirstlyTo avoidthe problem of circuit design or re-altering, it was decided that the IC s would be mountedon separate boards that would mount on the main Brain board, much the way PCI slotsare mounted on a normal PC. In our previous design, should any circuit design errors occur,a new board would have to be made, and all components would have to be welded off theold board, and re-welded to the new brain. This takes a lot of time, and it is also potentiallydamaging to the components to be frequently exposed to the welder. Secondly as for havingthe problem of high power rated components alongside low power rated ones in one circuit,optocouplers were used to interface between the Brain board and motor drivers, this ismore thoroughly explained in the previous section 4.6 Motor Drivers . Page 31
  32. 32. Unmanned Aerial Vehicle This Main board was designed to accommodate two PIC16LF777s, 4 Motorcontroller boards connected through 4 opto-couplers, a 3-axis accelerometer, 2 dual-axisgyrometers, 5 ultrasonic sensors, a GPS receiver and a RF transceiver. To keep the circuitas small as possible we used the internal 8MHz oscillators available in PIC16LF777 PICsinstead of adding more components to the circuit in the form of crystals and capacitors. Thecircuit is powered by a 9V battery and has a 5V regulator as well as a 3V regulator for all5V Logic components as well as the 3V Logic components to operate. We also added someLEDs to simplify debugging. Later on we manually welded on some wires to two ICSPconnectors to program the two PICs without removing them from the circuit. (As seen inthe previous picture). Page 32
  33. 33. Unmanned Aerial Vehicle CONTROL4.1 Introduction The Main PIC is responsible for reading and calculating the orientation of the plane,and accordingly take a decision. The Main PIC has only 3 PWM modules, therefore we usean extra PWM from the Secondary PIC. The Main PIC sends commands to the SecondaryPIC to increase or decrease the power of one PWM output, it also sends the orientation datato be sent through the RF to the base computer station. The Secondary PIC takes the GPSmessages and extracts the required values and sends them to the Main PIC, as well asthrough the RF to the base station. Regarding the control scheme, there are four separateoperation modes:1. Hover Mode2. RC Mode3. GPS Mode4. Tracking ModeIn Hover Mode: Tries to keep the vehicle stable in position. The following pseudocode demonstratesthe operating algorithm.Start up systemRead bias values from IMU sensorsLoop: Read sensors Calculate Angles & Height If(Height<Required Meters) Increase PWM if(Height>Required Meters) Decrease PWM if tilted left Tilt right If tilted right Tilt left If tilted forwards Tilt backwards If tilted backwards Tilt forwardsRepeat loop Page 33
  34. 34. Unmanned Aerial VehicleIn RC Mode: The Secondary PIC is the one that receives the RC commands through the RF, thenforwards them to the Main PIC to execute.In GPS Mode: The Secondary PIC takes the GPS messages and extracts the required values andsends it to the Main PIC, and it sends all other useful data through the RF to the basestation. The Main PIC takes decisions according to its coordinates achieved from the GPSfrom the Secondary PIC.In Tracking Mode: The base station receives the Video Feed from the Wireless Camera on board thevehicle and searches for a blue target in view, if it is not found the vehicle will gain altitudeand search again. Once a target is found the plane will descend quickly and hover above thetarget and keep following it. The Secondary PIC receives the commands from the basestation through RF and forwards the commands to the Main PIC which performs therequired actions. Page 34
  35. 35. Unmanned Aerial Vehicle4.2 SPI communication SPI communication enables quick communication between two PIC s. One is set asa Master PIC and the other as a slave. Originally one PIC was intended to be used, butfailed. (refer to Testing, Troubleshooting & Design : Configuration 2). The connection is asfollows on the diagram below. The left block represents the Master PIC and the left block isthe slave. A bit is released from the Master SSPSR to SD0, and the slave PIC releases a bitthrough it s SD0 also. The clocks SCK of both PICS are connected together. When a clockpulse rises and falls from the master PIC a bit is transferred. Every consecutive clocktransfers a bit. Once the shift registers reach 8-bits (1 byte) the byte is transferred to theserial input buffer and the shift register is ready to receive data again. Three connections arerequired, CLK to CLK (C3-C3), Master data out to slave data in (C5 C4), and master datain to slave data out (C4 C5). Two registers must be set in both PIC s in order to enable this mode; SSPSTAT andSSPCON. (Actual settings for these registers can be found in APPENDIX B : CONTROLCODE) Page 35
  36. 36. Unmanned Aerial VehicleSSPSTAT (Status Register) Page 36
  37. 37. Unmanned Aerial VehicleSSPSCON (MSSP Control Register) For desired interrupts bits 6 and 7 of INTCON (Global and peripheral interrupts)should be set. Bit7 of PIE1(SSPIE) should be set. When interrupt occurs bit7 ofPIR1(SSPIR) is set. This occurs if either a byte is successfully transferred, also in case ofcollision occurs or overflow occurs. Page 37
  38. 38. Unmanned Aerial Vehicle4.3 Main PIC Implementation Generally as aforementioned, this PIC uses PWM, SPI, and ADC, it decides theorientation and heading of the plane. The following sections divide these tasks and explaineach of these elements independently.4.3.1 Pulse Width Modulation After we have finally tested all our sensors, GPS device and RF devices for correctprocessed data, we can now begin to implement the results as output on the propellersthrough motor control. This is achieved by the use of PWM. In the PIC 16LF777, it hasthree pins for PWM. The control registers used to enable PWM on this PIC are CCP1CON,CCP2CON, CCP3CON, PR2 and most importantly T2CON, since PWM is controlled byTimer 2 in the microcontroller. These three CCPXCON registers let us enable capturemodes, compare modes or PWM. Of course here, we will enable the PWM. Page 38
  39. 39. Unmanned Aerial VehicleBit 7: Unimplemented.Bit 6: Unimplemented.Bit 5: Should be set as 0. Second Least Significant bit in PWM mode. (10-bit Resolution).Bit 4: Should be set as 0. First Least Significant bit in PWM mode. (10-bit Resolution).Bit 3: Should be set as 1. (To enable PWM mode).Bit 2: Should be set as 1. (To enable PWM mode).Bit 1: Don t care in PWM. (To enable PWM mode).Bit 0: Don t care in PWM. (To enable PWM mode).The CCPXCON registers will be all set as following:CCP1CON: 0x0F = 0b00001111;CCP2CON: 0x0F = 0b00001111;CCP3CON: 0x0F = 0b00001111; Page 39
  40. 40. Unmanned Aerial Vehicle After setting the CCPXCON registers, we must now set the T2CON register wheremost importantly we must enable TIMER2 of the microcontroller and then set the periodwe need to control our DC Brushed Motors in an optimum way using the PR2 register andsetting it with a fixed value. By means of research and supervision, it was decided tocontrol our motors at a frequency of 750Hz (750 times per second).For T2CON, we place the following settings: After setting the CCPXCON registers, we need to now set the T2CON register whichenables TIMER2 in the microcontroller that will then control over the frequency or periodwe need on the Pulse Width Modulation. In order do this we must set the following bits asfollows.Bit 7: Unimplemented.Bit 6: Should be set as 0. (Postscaling will not be needed).Bit 5: Should be set as 0. (Postscaling will not be needed).Bit 4: Should be set as 0. (Postscaling will not be needed).Bit 3: Should be set as 0. (Postscaling will not be needed).Bit 2: Should be set as 1 in order to enable and turn on Timer 2.Bit 1: Should be set as 1. (Since prescale with a value of 16 is required).Bit 0: Should be set as 1. (Since prescale with a value of 16 is required). Page 40
  41. 41. Unmanned Aerial Vehicle Our goal to control our motors at around 750Hz. Now since the microcontroller canexecute 2 million instructions per second (500 nanoseconds). Speed should be reduced byprescaling. When you prescale your instructions per second over 16 which is ourmaximum, then we have reduced the frequency to 125 KHz (125000Hz). This is where thePR2 register comes in handy to further reduce frequency to 750Hz.For PR2, we place the following settings: PR2 is an 8-bit register made available in order to control the frequency outputneeded on the DC Brushed Motors. After using the T2CON register for prescaling toreduce frequency to 125 KHz, PR2 register is used to enter a decimal value that will controland limit our frequency to 750Hz. The value to be placed in the PR2 register is calculatedas follows. We divide the 125000 Hz obtained by 750Hz which is what is needed.125000/750 = 166.666667. Since the value to be placed in the PR2 register should be aninteger value and is an 8-bit register and carries no space for a floating point number, 167should be entered after subtracting 1 from it. Therefore,PR2 = 166The equation for PR2 is: round (Fosc / (4 x 16 x Period Required)) - 1Hence, Fosc = 8 x 10^6 PR2 = round(8 x10^6 / ( 4 x 16 x 750)) - 1 PR2 = round(8 x 10^6/ (48000)) - 1 PR2 = round(166.66666667)) - 1 PR2 = 167 - 1 PR2 = 166 Page 41
  42. 42. Unmanned Aerial VehicleSetting outputs on the Tri-State Buffers on all ports of the Microcontroller: Since the PWM pins are driving the motors they need to be se as output pins. This isdone by setting the registers TRISB and TRISC.TRISC = 0x00 Hex = 0b00000000.TRISB = 0x00 Hex = 0b00000000.The diagram of the PIC 16LF777 can be used as a reference below for the output pinsCCP1 on Port C2, CCP2 on Port C1, and CCP3 on Port B5.*NOTE: Please see APPENDIX B for the sample code of Pulse Width Modulation and howto control it. Page 42
  43. 43. Unmanned Aerial Vehicle4.3.2 ADC Operation Here using the Analog - to - Digital converters is most crucial in order to automateour Unmanned Aerial Vehicle (UAV). For the most part, most or all of our sensors,ultrasonic, gyrometer and accelerometer give us feedback on our control system. TheUltrasonic provides us with a way for collision detection and obstacle avoidance. Theaccelerometer and gyrometer provide us with crucial data to help us stabilize our UAV inmid-air and maintain a static hovering position. It can also help the UAV to auto-level aftertraveling in a certain direction, like a co-pilot. The outputs of those sensors are analog voltages. The Analog - to - digital converterhere helps with converting those outputs into useful data ready to be used and processed bythe microcontroller. In this project we use the 16LF777 PIC by Microchip. It contains anabundant 14 channel 10-bit ADC. We have 11 inputs from those sensors. Five alone for the ultrasonic sensors, placed onthe front, back, left, right, and bottom sides of our UAV for height accuracy. Theultrasonic s range is far as 6.45m (254 inches) and as small as 15cm (6 inches) to aid theUAV in landing due to its blind spot. Six channels are used for 2 Gyrometers and anaccelerometer. Each gyrometer outputs the rate of angular velocity in the X and Y planes,so we need three channels since we have 2 gyrometers. One input/channel will be ignoredfrom the second gyrometer. The accelerometer needs 3 channels since it measuresacceleration in the X, Y, and Z directions. This makes a total of 11 channels. Therefore, 3channels on our 16LF777 microcontroller will not be used out of the 14 channels. In order to set this up in our PIC we must enable certain bits in our control registers ofthe 16LF777 microchip. These control registers are the ADCON0, ADCON1, ADCON2,PIE1, and PIR1 and last but not least the INTCON register to enable our interruptsespecially when the ADIF (AD Interrupt Flag) is set after every conversion in the PIRregister. The result of the Analog-to-Digital Converter is placed in the ADRES (AD Result)register. It consists of 2 8-bit registers, ADRESL (AD Result LOW) and ADRESH (ADResult HIGH). Page 43
  44. 44. Unmanned Aerial Vehicle Page 44
  45. 45. Unmanned Aerial Vehicle Page 45
  46. 46. Unmanned Aerial VehicleFor ADCON0, we place the following settings:Bit 7: <ADCS1> Must be set as 1 since we are using the Internal Oscillator.Bit 6: <ADCS1> Must be set as 1 since we are using the Internal Oscillator.Bit 5: <CHS2> Analog Channel Select bit.Bit 4: <CHS1> Analog Channel Select bit.Bit 3: <CHS0> Analog Channel Select bit.Bit 2: <GO/DONE> A bit that controls the start of conversion or end of conversion.Bit 1: <CHS3> Analog Channel Select bit.Bit 0: <ADON> Turns on the ADC module in the microcontroller.Bits 5,4,3,1 are used to select the channels we need to take our inputs from. Therefore, youneed to toggle through them as we read our values over the output interval time. We startout by reading through channel 0, then 1, then 2, until we reach channel 10 (11 Channels)then go back to Channel 0 to take new readings to process for our new interval. Page 46
  47. 47. Unmanned Aerial VehicleFor ADCON1, we place the following settings:Bit 7: <ADFM> Must be set as 1 for Right Justification in the ADRES register. In reading our result from the ADRES register, we read all the 8 bits from ADRESL and the least significant bits of ADRESH and multiply it by 256.Bit 6: <ADCS2> Must be set as 1 since we are using the Internal Oscillator.Bit 5: <VCFG1> Must be set as 0 since our Vref+ is normally the VDD of the PIC.Bit 4: <VCFG0> Must be set as 0 since our Vref- is normally the VDD of the PIC.Bit 3: <PCFG3> Must be set as 0 since we need to enable 11 Channels.Bit 2: <PCFG2> Must be set as 1 since we need to enable 11 Channels.Bit 1: <PCFG1> Must be set as 0 since we need to enable 11 Channels.Bit 0: <PCFG0> Must be set as 0 since we need to enable 11 Channels. The bits 3,2,1,0 of PCFG(X) remain fixed since we are enabling only 11 Channels forthe ADC to read from. The pins where pins AN11, AN12 and AN13 of the microcontroller16LF777 remain digital I/O pins depending on the settings of the Tri-State Buffers for theports.For ADCON2, we place the following settings:Bit 7: Unimplemented.Bit 6: Unimplemented.Bit 5: Must be set as 1, since we wish the conversion to take 12TAD (24 sec).Bit 4: Must be set as 0, since we wish the conversion to take 12TAD (24 sec).Bit 3: Must be set as 1, since we wish the conversion to take 12TAD (24 sec).Bit 2: Unimplemented.Bit 1: Unimplemented.Bit 0: Unimplemented. Page 47
  48. 48. Unmanned Aerial Vehicle The reason why 12TAD is necessary here is simply because one TAD is equivalent to2 sec. The acquisition time must not exceed the minimum of 19.72 s which is how longthe ADC before the ADC starts conversion automatically. Therefore, 2 s * 12 = 24 sec, which is how long the ADC needs to acquire our datafrom one input channel. In order to keep the microcontroller working efficiently and processing data withouthaving it constantly polling and wasting processing power on all kinds of data coming inthrough the Sensors, GPS device or RF transceivers, we use interrupts. Concerning oursensors we set the PIE1 control register in our microcontroller. The Analog-to-DigitalInterrupt Enable (ADIE) is bit number 6. We set it to 1. Whenever the ADC finishes aconversion, it will set the Analog-to-Digital Interrupt Flag in (ADIF) to 1 in register PIR1,interrupting the PIC. After we take our reading for the ADC, we must clear the ADIF in thePIR1 register in our software or else the PIC will keep itself running in a loop. Then wemust change our channel through the bits 5, 4, 3, and 1 in the ADCON0 register. When thisis done, we start a new conversion by the setting the bit number 2 (GO/DONE) as 1 in theADCON0 register until the end of conversion is complete and the ADIF is set again callingthe interrupt function in our microcontroller.Setting our inputs on the Tri-State Buffers on all ports of the Microcontroller: Since we have already set our control registers of the ADC module most importantly,we need to set the tri-state buffers on our ports in order to receive our inputs from thesensors. This is done by setting the registers TRISA, TRISB, and TRISE.TRISA = 0xFF Hex = 0b11111111.TRISB = 0x0E Hex = 0b00001110.TRISE = 0x07 Hex = 0b00000111. Page 48
  49. 49. Unmanned Aerial Vehicle In the summary of registers shown above, we must be very careful when setting theTRISE register because only the three least significant bits here control the PORTE DataDirection Bus, unlike TRISA where the complete register is used for only 6 pins. If we setthe TRISE = 0xFF, it will cause the PIC to set two interrupt flags IBF and OBF andenable PSP Mode , which will cause PORTD to engage in parallel communication. Thiswill cause the PIC to enter in an infinite loop of interrupts and if the flags are not cleared inthe software. It almost causes the microcontroller to seem to Halt in a sense. Page 49
  50. 50. Unmanned Aerial Vehicle4.3.2.1 Ultrasonic Sensors The ultrasonic sensors used on the UAV can detect up to 254 inches 6.45 (meters) andthe minimum distance it can detect due to its blind spot is 6 inches (15 cm). The sensorgenerates a new reading every 49 milliseconds. Since the microcontroller can take readingsmuch faster than the ultrasonic sensor s output, if we take the readings at that speed, it willcause a lot of noise in our program for the UAV, so it is best we take our readings every49 milliseconds to avoid the noise and make sure we have a new reading every time to beput to good use. Every 0.01 Volts on our Ultrasonic sensor represents 1 inch of distance. Therefore, ifthe voltage on the output pin of the ultrasonic sensor is 0.20 Volts, then the distance it readsis 20 inches, therefore it is very simple to use. In order to calculate the distance we need in our PIC 16LF777 we use a very simpleequation which is:Distance (in Hexadecimal) = (Vin/Vref) X (2N) ; where Vin : is the Voltage input coming from the Ultrasonic Sensor. Vref : is the reference voltage from our circuit which is 3.30V N : is the number of bits of the ADC which is 10, therefore is 1024For example, If Vin = 0.50V (which is equivalent to 50 inches read). Vref = 3.30VThen, 0.50/3.30 X 1024 = 155.1515 Hexadecimal In the ADC of the PIC 16LF777, the ADRES (AD Result) register will read 155 andwill truncate the 0.1515. If we take the reading 155 from the ADC and try to convert it back, it will be asfollows: Page 50
  51. 51. Unmanned Aerial VehicleVin = (Reading from ADRES Register in HEX / 2N) X Vref Vin = (155/1024) X 3.30V = 0.4995 Volts. Therefore the error is: (1 (0.4995/0.5)) X 100 = 0.1 % which is quite accurate.*NOTE: Please see APPENDIX B for the sample code of the Ultrasonic Sensors. Page 51
  52. 52. Unmanned Aerial Vehicle4.3.2.2 GyrometerThe gyrometer used was the IDG300. This IC gives accurate readings of angular velocity.All three angles were needed for control of the UAV, on the x, y and z axes; traditionally inflight labeled as roll, pitch and yaw angles. Angular velocity is measured accurately with asensitivity of 2 mV/ º/s. So every degree of rotation would indicate 0.002V electronically.The first thing to do was to interpret the signals into degrees, 0º - 360º. This IC operates so that if the IC is rotated suddenly then stopped, you would get achange in reading only when the IC is moving, only when there is angular velocity. Thus anadder function is needed to constantly integrate the tilt intervally through the selectedfrequency, as general equation is as follows: SUM SUM new tWhere SUM is initially set to 0. new is the latest reading from the gyro output and T is thesampling period. After the electric signal would be received on the ADC ports of the PIC it would bemultiplied by the following equation to give degrees: 1024 tAngleNew AngleOld Vin * * 3.3 0.62 Also any negative value for tilt had 360 added to it, since simple sin and cosfunctions behave differently to negative values. Accelerometer The accelerometer used was the ADXL330. This gives accurate measures ofacceleration about all three axes. Typical sensitivity of this IC is 300mV/g, so every 1m/s2of acceleration would indicate 30.58mV electronically. Primarily this IC has two mainfunctions. The first is to indicate the initial angles of x and y in reference to the xy planeperpendicular to the gravity vector, so that the UAV can take off from any angled surface,if an accelerometer was not used, the system would always assume that the plane it wastaking off from was always perpendicular to the vector of gravity, causing flight to beunstable. To use the accelerometer as an inclinometer, assuming X and Y are theacceleration values obtained from the corresponding axes on the accelerometer then, simply Page 52
  53. 53. Unmanned Aerial Vehicle X -1 X=sin g Y -1 Y=sin g The second use is to produce accurate estimations of acceleration, velocity andposition, for use in the simulation. A fixed reference point is taken, more accurately thefixed axes at the point of takeoff. Acceleration and velocity in reference to that point arecalculated. Distance from that point is calculated, and distance traveled around that point isalso calculated. Considering the accelerometer uses the angles supplied from the gyrometer,a traditional 3D rotational matrix is used to rotate the constantly generated accelerationvectors around the reference axes, so that every value from the accelerometer has a X, Yand Z component on the reference axes.Rotation around the x-axis is defined as : 1 0 0RX( X) = 0 cos X sin X where X is the roll angle 0 sin X cos XRotation around the y-axis is defined as : cos Y 0 sin YRY( Y) = 0 1 0 where Y is the pitch angle sin Y 0 cos YRotation around the z-axis is defined as : cos Z sin Z 0RZ( Z) = sin Z cos Z 0 where Z is the pitch angle 0 0 1Multiplying all these matrices together would give the following matrix: Page 53
  54. 54. Unmanned Aerial Vehicle cos Y cos Z cos Y sin Z sin Y 1A sin Y sin X cos Z cos X sin Z sin Y sin X sin Z cos X cos Z sin X cos Y sin Y cos X cos Z sin X sin Z sin Y cos X sin Z sin X cos Z cos X cos Yif X,Y and Z are the acceleration values obtained from the corresponding axes on theaccelerometer then,ReferenceX = Xcos Xcos Y + Y(sin Ycos Xsin Z-sin Xcos Z) + Z(sin Ycos Xcos Z+sin Xsin Z)ReferenceY = Xsin Xcos Y + Y(sin Ysin Xsin Z+cos Xcos Z) + Z(sin Ysin Xcos Z-cos Xsin Z)ReferenceZ = - Xsin Y + Ycos Ysin Z + Zcos Ycos Z Integrating with respect to time once gives velocity, and integrating twice givesposition. Adder functions are used for velocity and position for each reference axes.Another adder function is created taking the absolute value of every acceleration reading,then multiplying them by time twice in order to calculate the distance traveled. All adderfunctions for total rigid body acceleration, velocity, distance from origin and distancetraveled, this simple equation is used. 2 2V alue X Y Z2 Page 54
  55. 55. Unmanned Aerial Vehicle4.4 Secondary PIC Implementation Generally as aforementioned, this PIC uses PWM, SPI, USART, and communicateswith an RF module. It handles communication tasks for the Main PIC. It also acts as asecondary PWM module. The following sections divide these tasks and explain each ofthese elements independently.4.4.1 GPS System GPS has become a widely used aid to navigation worldwide, and a useful tool formap-making, land surveying, commerce, and scientific uses. GPS also provides a precisetime reference used in many applications including scientific study of earthquakes, andsynchronization of telecommunications networks. There is a constellation of 30 (earthorbiting satellites as of April 2007) that transmit precise radio signals. Their orbits are setup so that at any given point and time on the earth s surface there are at least six of thesesatellites in reach. A figure below demonstrates the constellation of NAVSTAR GPSsatellites. Page 55
  56. 56. Unmanned Aerial Vehicle A GPS receiver calculates its position by measuring the distance between itself andthree or more GPS satellites, using trilateration. Measuring the time delay betweentransmission and reception of each GPS radio signal gives the distance to each satellite,since the signal travels at a known speed. The signals also carry information about thesatellites location. By determining the position of, and distance to, at least three satellites,the receiver can compute its position using trilateration. Receivers typically do not haveperfectly accurate clocks and therefore track one or more additional satellites to correct thereceivers clock error. The figures below briefly explain trilateration, where at the center of each spherethere is a satellite. When two spheres intersect they create lines. When the third sphereintersects it creates a point revealing the location of the receiver. The coordinates are calculated according to the World Geodetic System WGS84coordinate system. Position is determined by latitude and longitude which are basicallyangles, latitude ranges from 0-90 north and south, and longitude ranges from 0-180 westand east. The figures below display latitude and longitude. Page 56
  57. 57. Unmanned Aerial Vehicle To calculate its position, a receiver needs to know the precise time. The satellitesare equipped with extremely accurate atomic clocks, and the receiver uses an internalcrystal oscillator-based clock that is continually updated using the signals from thesatellites. GPS satellites continuously transmit almanac and ephemeris at 50bps. The almanacconsists of coarse time information and orbital data (speed and path). The ephemeris givesthe satellites precise orbit. The almanac assists in the acquisition of other satellites. Acomplete almanac transmission is a 37,500 bit navigation message that takes 12.5 minutesto download. This long delay occurs when a new receiver is first turned on. Each satellitetransmits its navigation message with at least two distinct spread spectrum codes: theCoarse / Acquisition (C/A) code, which is freely available to the public, and the Precise (P)code, which is usually encrypted and reserved for military applications. The C/A code is a1,023 bit long pseudo-random code broadcast at 1.023 MHz, repeating every millisecond.Each satellite sends a distinct C/A code, which allows it to be uniquely identified. Page 57
  58. 58. Unmanned Aerial Vehicle The receiver identifies each satellites signal by its distinct C/A code pattern, thenmeasures the time delay for each satellite. To do this, the receiver produces an identicalC/A sequence using the same seed number as the satellite (two or more systems usingmatching seeds can generate matching sequences of non-repeating numbers which can beused to synchronize remote systems). By lining up the two sequences, the receiver canmeasure the delay and calculate the distance to the satellite, called the pseudorange. Thepseudoranges are then the time the signal has taken from there to the receiver, multiplied bythe speed of light. The orbital position data from the Navigation Message is then used tocalculate the satellites precise position. Knowing the position and the distance of a satelliteindicates that the receiver is located somewhere on the surface of an imaginary spherecentered on that satellite and whose radius is the distance to it. When four satellites aremeasured simultaneously, the intersection of the four imaginary spheres reveals the locationof the receiver. The orbital position data from the Navigation Message is then used tocalculate the satellites precise position. Knowing the position and the distance of a satelliteindicates that the receiver is located somewhere on the surface of an imaginary spherecentered on that satellite and whose radius is the distance to it. When four satellites aremeasured simultaneously, the intersections of all four imaginary spheres reveal the locationof the receiver. Often, these spheres will overlap slightly instead of meeting at one point. Thereceiver then moves the overlapping pseudoranges with the same amount (regardless ofdistance of receiver to satellite) till an intersection point is created this point is usually themost probable position. This scenario is shown in the following figure. Page 58
  59. 59. Unmanned Aerial Vehicle An overlapping pseudorange occurs here. Instead of having one intersection point, aroom is created by all three points of B . All distances are subtracted by the same amount,in this case 0.5, in order to receive an intersection point at A . Point A is considered themost probable point of the receiver. Regarding GPS time as opposed to the conventional second, minute and hour; youonly have seconds, more precisely seconds of the week. In a normal clock when theseconds reach 60 it starts a new minute. In GPS time when the seconds reach 604,800 itstarts a new week, this is calculated by 7(days)*24(hours)*60(minutes)*60(seconds). As for GPS date as opposed to the year, month, and day format of the Juliancalendar, the GPS date is expressed as a week number and a day-of-week number. Theweek number is transmitted as a ten-bit field, and so it becomes zero again every 1,024weeks (19.6 years). GPS week zero started at (00:00:19 TAI) on January 6, 1980 and theweek number became zero again for the first time at on August 21, 1999. This event isknown as a rollover. After a GPS does a full almanac download, GPS systems boot in 3 different modes.Those would be cold start, warm start and hot start. In cold start, time and position areknown within some limits, the almanac is known and the ephemeris is unknown. In warmstart, time and position are known within some limits, the almanac is known, and at leastthree satellite ephemeris are known from the previous operation. In a hot start all ephemerisfor all satellites are known so a hot start occurs. The GPS receiver chooses how to startbased on the time between last turn off and current turn on. If this time was a few minutesthe GPS chooses hot start which takes 1 second, if it was a few hours the choice is warmstart which takes 38 seconds, anything longer than that produces a cold start which takes 42seconds. Most GPS systems have two protocols SirF protocol and NMEA protocol. In ourcase the NMEA protocol was used. NMEA protocol simply contains input messages andoutput messages. (Refer to the NMEA reference manual) Page 59
  60. 60. Unmanned Aerial VehicleInput messages selected to initialize the GPS are:$PSRF100,1,4800,8,1,0*0Ern$PSRF103,04,00,02,01*22rn$PSRF105,0*3Frn$PSRF is used for input messages. The star means the following two characters arechecksum, NMEA checksum operates by 16-bit XOR a checksum calculator code is shownin the APPENDIX B : CONTROL CODE, and /r/n represent carriage return and line feed,whose HEX code are 0D 0A. All other fields in between them are data fields for differentsettings.$PSRF100,1,4800,8,1,0*0ErnThis message was used for setting the serial port. 100 in the first field represents serial portsettings. 1 in the second field is for NMEA protocol, 4800 is for baud rate, 8 is for 8 databits, 1 is for 1 stop bit, and 0 is for no parity bit.$PSRF103,04,00,02,01*22rnThis line is used for enabling and disabling output messages, 103 is used for query/controlmode. 04 is used for RMC mode, 02 is used for releasing the message at 2Hz, 01 is used forenabling checksum.$PSRF105,0*3Frn105 is used for development data. The 0 represents debug off should any error occur, sothat our PIC does not receive any unnecessary input. When a GPS is turned off, it s lastsettings before being switched off will be saved in it s battery powered RAM. When turnedon, these settings resume. These input messages were considered necessary in order to setthe serial port correctly for USART communication, RMC mode was chosen because thisone single message had all the necessary information required. The third message is forturning off debug to avoid unnecessary input to the MCU. A 16-bit XOR CRC creator was necessary to give input messages. A JAVA code isdisplayed in the APPENDIX B: CONTROL CODE. Page 60
  61. 61. Unmanned Aerial Vehicle Later on a program called SiRF Demo PC GPS Utility v3.83 was found very helpfulfor obtaining latitude and longitude coordinates for our tested range area. It can also beused as an initialization alternative. To initialize your GPS time, you simply click setupthen click GPS Time PC Time as shown in the figure below. Usually the demo startsin SiRF protocol. To switch it to NMEA protocol you simply click action then Switch toNMEA Protocol , to open NMEA Setup. In this window as shown in the figure below, youcan select each message and it s frequency per second. Highlighting checksum is preferredfor message validation. For NMEA, baud rate should be set at 4800bps. After powering offthe GPS receiver, GPS time, message type and frequency are saved. Page 61
  62. 62. Unmanned Aerial Vehicle Output messages received from RMC mode (in order) are UTC time, data validity,latitude, north/south indicator, longitude, west/east indicator, velocity over ground in knots,heading measured clockwise from north in degrees, and date A sample output message isshown below:$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120507, ,*10The first two letters following the $ represent the device in use. The GP stands for GPS.There are other devices such as:LC Loran-CTR Transit SATNAVAP Autopilot (magnetic)HC Magnetic heading compassRA RadarSD Depth sounderVW Mechanical speed log Latitude and longitude are displayed in degrees and minutes, At a latitude of 30° N(Cairo, Egypt), the latitude minute = 1847.54m and longitude minute = 1608.1m (distanceschange because the circumference of parallel of latitude changes, Earth is not a cylinder,please refer to http://home.online.no/~sigurdhu/Grid_1deg.htm ), velocity is multiplied by1.852 to change from knots to km/hr. Then course heading in degrees ranging from 0°-360° moving clockwise from north. The final field before the checksum is date. The onlyfields needed were data validity, latitude, longitude, velocity and heading. VTG mode wasdesired to attain height, but during testing, height in MSL (Mean Sea Level) was quiteinaccurate. At a change of height of about 4 meters, the GPS detected a change of height of10 meters which is an error of over 150%. Latitude, longitude velocity and heading aretransmitted via RF to the simulation. Page 62
  63. 63. Unmanned Aerial Vehicle A destination in GPS mode is set by pre-inputting a target destination, in the PICprogram, in latitude and longitude. The following steps are taken:1. Y = Target Latitude Present Altitude2. X = Target longitude Present Latitude3. Distance = X2 Y2 1 Y4. TempAngle is obtained by tan XDesired course heading is obtained by the following scheme:Y X Course+ + TempAngle + 0°- - TempAngle + 180°+ - TempAngle + 360° (TempAngle is negative)- + TempAngle + 180° (TempAngle is negative)Resgister Settings Communication between the PIC and GPS system is acheived by the UniversalSynchronous Asynchronous Receiver Transmitter (USART). In this case Asynchronousmode is used. (refer to the PIC 16F777 pdf file, section 11.0 for more detailed information)To enable this serial mode three registers must be set; TXSTA, RCSTA and SPBRG.TXSTA is set in the following manner:Bit 7: 0 Don t care (for Asynchrous mdoe)Bit 6: 0 for 8-bit transmissionBit 5: 0 for transmission enabledBit 4: 0 for Asynchronous modeBit 3: 0 this bit is unimplementedBit 2: 0 for High speedBit 1: 1 for TSR empty (TRMT)Bit 0: 0 not used in 8-bit transmission Page 63
  64. 64. Unmanned Aerial Vehicle SPBRG is the simplest where only a value is entered into the register. Consideringasynchronous mode is used and the system is low speed, the following equation is used,where X is the value entered in SPBRG: FOSCX 1 64* BaudRate When a baud rate of 4800bps with a frequency of 8MHz is entered into the equationthe resulting X value is 25.04, so 25 is the value used in SPBRG.The RCSTA register is set in the following manner:Bit 7: 1 for Serial port enabledBit 6: 0 for Enables 8-bit receptionBit 5: 0 Don t care for Asynchronous modeBit 4: 1 to Enable continuous receive (called CREN)Bit 3: 0 Don t care for 8-bit modeBit 2: 0 for no Overrun error(OERR)Bit 1: 0 for no Framing error(FERR)Bit 0: 0 Don t care for 8-bit mode When transmitting input messages to the GPS system to initialize data, the datamessage had to be inserted in the PIC s EEPROM via MPLAB before programming to PIC(an .ECH file can be created with your EEPROM input by exporting a file (MPLAB), thisfile is easier to load than re-inputting every time), because it consumed too much RAM.Data is transmitted bit by bit via the TXREG register, the TSR register must be polled tosee whether the bit was sent out or not when TSR is empty only can u fill in the next bit.Interrupts are undesired in this mode. Page 64
  65. 65. Unmanned Aerial Vehicle For Universal Asynchronous reception, the 6th and 7th bit of the INTCON registermust be set, to enable interrupts, along with the 5th bit of register PIE1. An interrupt occurs(bit5 of register PIR is set) under three cases, when a byte is received successfully, when anOERR (Overrun error) or when a FERR (Framing error) occurs. If a FERR occurs themessage is discarded. The message is valid if; the message starts with a $ and ends with0D 0A, the GPS sends an A in the 19th byte, no FERR error occurs, and the CRC check iscorrect. If the message is valid, SPI communication transmits the latitude, longitude andheading to the Main PIC, Also the RF transmits function is called to send this data (for usein the simulator). This code in detail can be seen in APPENDIX B: CONTROL CODE. Page 65
  66. 66. Unmanned Aerial Vehicle4.4.2 Radio Transceiver This RF device is called a transceiver in the sense that the same unit can send andreceive, to and from another identical unit. Operating frequency is 2.4GHz, and datatransmission rate can be selected at either 250Kbps or 1Mbps. 250kbps works at a longerrange of 280m but after testing, range proved to be approximately 180m. Also 250kbpsimproves receiver sensitivity. There are two modes direct mode and shock burst mode.Shock burst works at a lower current and relaxed PIC operation. Low current consumptionoccurs by using an onboard FIFO to transmit data at a low rate then transmit at a high rate.PIC resources are saved by having an onboard CRC creator/checker fortransmitting/receiving respectively. Pre-amble, address, and CRC are stored on a buffer onthe RF then transmitted out, instead of letting the PIC do all this work. The transceiver canreceive simultaneously on two different channels. Only one channel was used in thisproject.Pins used Used pins were CE (Chip Enable), CS (Chip Select), CLK (Clock), DR1 (DataReady1), DATA1, Vcc, and GND (1 represents pins pertaining to Channel1). Thetransceiver requires a configuration word of up to 15 bytes. This is done through three pins;CS, CLK and DATA1. Generally CE is turned off, CS is turned on, a delay is done to allowonboard processing, and then data is fed in bit by bit as the clock toggles. The Shock burstconfiguration word is as follows:Shock Burst configuration Word:The section bit[119:16] contains the segments of the configuration register dedicated toShock Burst operational protocol. After VDD is turned on Shock Burst configuration is doneonce and remains set whilst VDD is present. During operation only the first byte forfrequency channel and RX/TX switching need to be changed. Page 66
  67. 67. Unmanned Aerial VehiclePLL_CTRLBit 121-120: Controls the setting of the PLL for test purposes. With closed PLL in TX nodeviation will be present. For normal operational mode these two bits must both be low.DATAx_WBit 119 112: DATA2_W: Length of RF package payload section for receive-channel 2.Bit 111 104: DATA1_W: Length of RF package payload section for receive-channel 1.NOTE: The total number of bits in a Shock Burst RF package may not exceed 256!Maximum length of payload section is hence given by: DATAx_W(bits) = 256 (ADDR_W+ CRC)ADDRxBit 103 64: ADDR2: Receiver address channel 2, up to 40 bit.Bit 63 24: ADDR1 ADDR1: Receiver address channel 1, up to 40 bit.*NOTE: Bits in ADDRx exceeding the address width set in ADDR_W are redundant and canbe set to logic 0. Page 67
  68. 68. Unmanned Aerial VehicleADDR_W & CRCBit 103 64: ADDR2: Receiver address channel 2, up to 40 bit.Bit 63 24: ADDR1 ADDR1: Receiver address channel 1, up to 40 bit.NOTE: Bits in ADDRx exceeding the address width set in ADDR_W are redundant and canbe set to logic 0.ADDR_W & CRCBit 23 18: ADDR_W: Number of bits reserved for RX address in Shock Burst packages.NOTE: Maximum number of address bits is 40 (5 bytes). Values over 40 in ADDR_W arenot valid.Bit 17: CRC_L: CRC length to be calculated by nRF2401 in Shock Burst. Logic 0: 8 bit CRC Logic 1: 16 bit CRCBit: 16: CRC_EN: Enables on-chip CRC generation (TX) and verification (RX). Logic 0: On-chip CRC generation/checking disabled Logic 1: On-chip CRC generation/checking enabled Page 68
  69. 69. Unmanned Aerial VehicleThis section of the configuration word handles RF and device related parameters.Modes:General device configuration:Bit 15: RX2_EN: Logic 0: One channel receive Logic 1: Two channels receiveNOTE: In two channel receive, the nRF2401 receives on two, separate frequencychannels simultaneously. The frequency of receive channel 1 is set in the configurationword bit[7-1], receive channel 2 is always 8 channels (8 MHz) above receive channel 1.Bit 14:Communication Mode: Logic 0: nRF2401 operates in direct mode. Logic 1: nRF2401 operates in Shock Burst modeBit 13: RF Data Rate: Logic 0: 250 kbps Logic 1: 1 Mbps*NOTE: Utilizing 250 kbps instead of 1Mbps will improve the receiver sensitivity by 10 dB.1Mbps requires 16MHz crystal. Page 69
  70. 70. Unmanned Aerial VehicleBit 12-10: XO_F: Selects the nRF2401 crystal frequency to be used:Bit 9-8: RF_PWR: Sets nRF2401 RF output power in transmit mode:RF channel & directionBit 7 1: RF_CH#: Sets the frequency channel the nRF2401 operates on.The channel frequency in transmit is given by: ChannelRF =2400MHz + RF_CH# * 1.0MHzRF_CH #: between 2400MHz and 2527MHz may be set. The channel frequency in datachannel 1 is given by: ChannelRF =2400MHz + RF_CH# * 1.0MHz(Receive at PIN#8)RF_CH #: between 2400MHz and 2524MHz may be set.The channel frequency in data channel 2 is given by: ChannelRF =2400MHz + RF_CH# * 1.0MHz + 8MHz(Receive at PIN#4)RF_CH #: between 2408MHz and 2524MHz may be set. Page 70
  71. 71. Unmanned Aerial VehicleBit 0: Set active mode: Logic 0: transmit mode Logic 1: receive modeFor more intricate details about the configuration word refer to the nRF2401 datasheet page19.Within Shockburst mode there are four different modes. They are displayed in thefollowing table.ACTIVE MODEThere are two different options in Active mode, Transmit and Receive.Transmit1. When the application MCU has data to send, set CE high. This activates nRF2401 onboard data processing.2. The address of the receiving node (RX address) and payload data is clocked into the nRF2401. The application protocol or MCU sets the speed <1Mbps (ex: 10kbps).3. MCU sets the CE to low, this activates a nRF2401 Shock Burst transmission.4. nRF2401 Shock Burst: RF front end is powered up RF package is completed (preamble added, CRC calculated Data is transmitted at high speed (250 kbps or 1 Mbps configured by user). nRF2401 return to stand-by when finished Page 71
  72. 72. Unmanned Aerial VehicleReceive1. Correct address and size of payload of incoming RF packages are set when nRF2401 is configured to Shock Burst RX.2. To activate RX, set CE high.3. After 200ms settling, nRF2401 is monitoring the air for incoming communication.4. When a valid package has been received (correct address and CRC found), nRF2401 removes the preamble, address and CRC bits.5. nRF2401 then notifies (interrupts) the MCU by setting the DR1 pin high.6. MCU may (or may not) set the CE low to disable the RF front end (low current mode).7. The MCU will clock out just the payload data at a suitable rate (ex. 10kbps).8. When all payload data is retrieved nRF2401 sets DR1 low again, and is ready for new incoming data package if CE is kept high during data download. If the CE was set low, a new start up sequence can begin.The following flowchart displays the processes of receiving and transmitting. Page 72
  73. 73. Unmanned Aerial VehicleCONFIGURATION MODESimilar to active mode Configuration mode has two options, Configure Transmitter, andConfigure Receiver.Configure Transmitter1. In configure transmitter, CE is turned off, and CS is turned on.2. DATA1 with CLK send the configuration word to the RF.3. A delay of (1ms) is issued to allow ample time for onboard processing.4. Both CE and CS are turned off.Configure Receiver1. In configure receiver, CE is turned off and CS is turned on.2. A delay (1ms) is issued. The configuration is then sent through DATA1 from the PIC as the clock toggles.3. CE and CS are then turned off and a delay (1ms) is used also for onboard processing.4. CE is then left on as to enable receiving.STAND-BY MODE Stand by mode is used to minimize average current consumption while maintainingshort start up times. In this mode, part of the crystal oscillator is active. Currentconsumption is dependent on crystal frequency.POWER DOWN MODE In power down the nRF2401 is disabled with minimal current consumption,typically less than 1µA. Entering this mode when the device is not active minimizesaverage current consumption, maximizing battery lifetime. Page 73
  74. 74. Unmanned Aerial VehicleDATA PACKAGE DESCRIPTION Data packages contain four main sections, in MSB order Pre-amble, address,payload and CRC. Pre-amble is either 4 or 8 bits and is added to the data packet. Address isbetween 8 and 40 bits. Payload is the desired data being transmitted or received. CRC iseither 8 or 16 bits and used for validating message. More detail about the data package canbe seen in the table below. For information regarding delays, (please refer to the RF-24G datasheet page22).Recommendations: 1. Delays should be taken very carefully, ample time is required for onboard processing. 2. Sequence of turning on CE and CS should be very accurate, or the transceiver will not operate as desired. 3. Configuration word should be set very carefully. 4. Configuration word entry starts from the MSB to the LSB. 5. This IC is unlike other ICs, it is very sensitive to physical shock and short circuits, three of these units were irreversibly damaged, which in our case cost much time. Page 74
  75. 75. Unmanned Aerial Vehicle4.5 RC UNIT The main purpose of this RC Unit besides enabling RC mode, is that the user caninterfere manually should any errors occur, such as vehicle misguidance. This can save thevehicle from possible crashes.1. KEYPAD TESTING Required components are the keypad encoder MM74C923, 0.1uF capacitor, 1uFcapacitor, and a 16 key keypad. The 1uF capacitor determines the debounce key mask. Thisis done by creating a debounce period of 0.01s (delay) of on the encoder. The 0.1uFdetermines the scanning frequency at 400Hz. The encoder has an output enable as whichshould be set at active low. These CMOS key encoders provide all the necessary logic to fully encode an arrayof SPST switches. The keyboard scan can be implemented by either an external clock orexternal capacitor. These encoders also have on-chip pullup devices which permit switcheswith up to 50 KHz on resistance to be used. No diodes in the switch array are needed toeliminate ghost switches. The internal debounce circuit needs only a single external Page 75