ECE 477: Digital Systems Senior Design v1.0 Component Analysis Year: 2014 Semester: Fall Team: 1 Creation Date: September 19, 2014 Member 1: Member 2: Member 3: Member 4: Yuhao Chen Xianzhe Zhou Yuchen Cui Enpei Xi Project: Extreme Sports UAV Last Modified: February 8, 2016 Email: chen902@purdue.edu Email: zhou196@purdue.edu Email: cui27@purdue.edu Email: exi@purdue.edu Assignment Evaluation: Item Score (0-5) Assignment-Specific Items Analysis of Component 1 Analysis of Component 2 Analysis of Component 3 Bill of Materials Writing-Specific Items Spelling and Grammar Formatting and Citations Figures and Graphs Technical Writing Style Total Score 5: Excellent 4: Good Weight Points Notes x2 x2 x2 x6 x2 x1 x2 x3 3: Acceptable 2: Poor 1: Very Poor 0: Not attempted General Comments: Relevant overall comments about the paper will be included here IMPORTANT NOTE: The Bill of Materials is a separate document and should be downloaded and filled out in concert with this document. Please submit it when you submit this component analysis, but do not combine the BOM with this document (such as in an appendix, etc.) https://engineering.purdue.edu/ece477 Page 1 of 6 ECE 477: Digital Systems Senior Design v1.0 1.0 Component Analysis: The microcontroller will be the central computing and commanding unit of our design, which needs to interface with other components through PWM, ATD, I2C and SPI channels. Other major components in our design include: i. ii. iii. iv. v. vi. A flight controller will interface with our microcontroller through PWM channels, outputs signals to control motor rotations and at the same time utilizes GPS, IMU and ultrasonic sensor data to stabilize the copter. A computer vision module is used to output the position of a target object in terms of x y coordinates of the frame that is produced by the camera on UAV. A Bluetooth data transmission module is needed to connect the User’s Android device to the UAV, which needs to have a transmission range of at least 15 meters. A radio receiver is used to communicate between the user and UAV as an alternative method of remote control when Bluetooth connection is not established. A Global Positioning System (GPS) module is used to detect positions of the UAV in terms of latitude and longitude, whose values will be used by the motion detection algorithm. An Inertial Measurement Unit (IMU), in addition to the one used by the flight controller, is used by the microcontroller to measure the movements of the UAV in different directions. 1.1 Analysis of Microcontroller: Considering brand name and availability of help from course staff, our team looked into Microchip products, the PIC families, to pick a microcontroller that meet our requirements. Using the website of Microchip, we applied a filter requiring at least 6 PWM channels, 1 UART interface, 2 SPI interfaces and 2 I2C interfaces, we acquired a list of 30 or so microcontrollers as shown in Figure 1, which are basically PIC22HJ and PIC33FJ families. Then we talked with course staff to see what was available at hand and checked out a PIC33FJ128GP710A. We are going to use this chip to prototype our design and see if we switch to a different one. 1.2 Analysis of Flight Controller: A good flight controller is critical for the success of our UAV. For our project, the major criteria for a good flight controller are good stabilization control and support of 4-8 motors. However, there is no good way to see how good a flight control’s stabilization is. By reading reviews online, watching Youtube examples together with inquiring some professionals, we were able to narrow the selections down to ArduPilot [1] and DJI A2 [2]. ArduPilot is an open source flight controller while the DJI A2 is a commercial product. With https://engineering.purdue.edu/ece477 Fig 1. List of microcontrollers meet requirements Page 2 of 6 ECE 477: Digital Systems Senior Design v1.0 all the documentation and open source projects available online, we decided ArduPilot Mega is our best choice of flight controller. 1.3 Analysis of Computer Vision Module: A computer vision module will be used to detect the position of a color object in the recording frame. It is expected to be used with I2C interface. Considering the difficulty of Computer Vision algorithm implementation, we narrowed the selection down to Pixy (CMUcam5) [3] and Raspberry Pi [4] with camera module. Pixy (CMUcam5) module is a dedicated computer vision IC module developed by a group of students in CMU and has demonstrated its ability to recognize different colored objects efficiently. Course staff also recommends it. The downside of this device is the limitation of the camera sensor. It only supports up to 1280x800 resolution. On the other hand, Raspberry Pi runs Linux. It provides more computation power and control on Computer vision programs. Also, we can select camera modules on our own to fit our needs. However, the complexity of getting Computer Vision to work on the device with a camera module causes too much trouble and battery power. After an overall analysis, we choose Pixy over Raspberry Pi because Pixy costs much less power and it is ready to use without unnecessary effort into Computer vision program development. Pixy Raspberry Pi + camera Module 1280x800 resolution 2592x1944 resolution 50Hz processing speed Depends on Computer vision algorithms Ready to use Development needed 140mA power consumption 700mA(Raspberry Pi) + 200mA(camera) $69 $39.44 (Raspberry Pi) + 27.5(camera) 1.4 Analysis of Bluetooth Module: The Bluetooth Module connects the user’s Android device to the UAV’s microcontroller and transmits/receives commands and data. It should have a transmission range of more than 15 meters. We have conducted extensive research on different commercial Bluetooth modules and have chosen the WRL-12579 [5] on sparkFun.com as our Bluetooth Module. The module has a transmission distance of 100 meters with RN41.It is FCC certified with fully configurable UART interface. It supports BCSP, DUN, LAN, GAP SDP, RFCOMM, and L2CAP protocols. (The default Android Bluetooth communication protocol is RFCOMM) The module also comes with a breakout board, which will facilitate the mechanical interfacing with the microcontroller. Two more final candidates were found, WRL-11600 [6] and WRL-11601 [7]. The WRL-11600 is very similar to WRL-12579. However, the WRL12579 is better at interfacing labeling and the part comes with online tutorial. There are also many online complaints on WRL11600 underneath the product section. The WRL11601 is a sibling of WRL11600 with a PCB antenna instead of a chip antenna. The size of the antenna makes the data transmission distance only 20 meters with RN42. After a team discussion, we have decided to make the Bluetooth module an https://engineering.purdue.edu/ece477 Page 3 of 6 ECE 477: Digital Systems Senior Design v1.0 independent module (not on the PCB) and chosen the one with longer transmission distance (RN41-100 meters). WRL-12579 WRL-11601 WRL-11600 FCC Certified FCC Certified FCC Certified RFCOMM RFCOMM RFCOMM Breakout Board Breakout Board Break Board Chip Antenna (RN41-100 meter) PCB Antenna (RN42-20 meter) Chip Antenna (RN41-100 meter) UART UART UART UART interface pin labeling Only Vcc and GND labels Only Vcc and GND labels Online Tutorial Support Datasheet only Datasheet only Vcc = 3.3V Vcc = 3.3V Vcc = 3.3V $34.95 $29.95 $24.95 1.5 Analysis of Radio Receiver: The radio receiver will be activated and responsible for transmitting commands from a radio transmitter to the microcontroller to control the UAV when Bluetooth connection is lost. It should have a transmission range larger than that of the Bluetooth module. Since we already acquire a transmitter DSM2 from Spektrum, what we need is a receiver from Spektrum to bind to the transmitter. After some research, SPMAR8000 [8] and SPMAR610 [9] become our potential choices. However, we cannot find any formal data from data sheet or technical specifications that indicates the range of the transmission distance. After checking out the review from other users, we believe the range of radio receiver/transmitter from Spektrum is about 400 -1.5 km (depends on circumstance) in normal, which is acceptable for us. Both of our choices share the similar specifications. The most considerable difference is that SPMAR8000 has 8 channels communication while SPMAR610 has only 6 channels. More channels of control give us more freedom of commanding the UAV to perform different tasks. This allows our UAV to do more precise movements as needed. And SPMAR8000 has an external remote antenna while SPMAR610 does not. The antenna guarantees a more reliable and stable range of transmission. SPMAR8000 also provides a guide video for component placement. After a team discussion, although SPMAR610 is cheaper than SPMAR8000, we still consider SPMAR8000 will be better for our design for the consideration of stable data transmission. SPMAR8000 SPMAR610 8 Channels 6 Channels Another External Antenna No External Antenna https://engineering.purdue.edu/ece477 Page 4 of 6 ECE 477: Digital Systems Senior Design v1.0 BIND/DATA BIND/DATA SPMAR8000 SPMAR610 Tutor Video Datasheet only 2048 Resolution 2048 Resolution $129.99 $69.99 1.6 Analysis of GPS Module: A GPS module will be used to determine the position of the UAV and subsequently to navigate the UAV. Our team has already acquired two GPS modules for testing purpose: CJMCU-GPS-HMC5883L [10] and Cirocomm 580 [11]. The CJMCU-GPS-HMC5883L comes with Cirocomm 585 GPS antenna. After extensive research, no technical specifications or data sheet were found for either of the GPS modules. Our team will have to choose a GPS module based on our own user experience. The two GPS modules might not have much of a difference in our use case. Some metrics to consider later when determining the GPS module are size, update rate, power requirement, number of channels, antennas and accuracy. CJMCU-GPS-HMC5883L Cirocomm 580 3.8cm*3.8cm*0.8cm 2.5cm*2.5cm*0.2cm 48g 6 pin cable or 4 pin cable 1.7 Analysis of Inertial Measurement Unit An IMU will be used to detect UAV motions. An accelerometer will be needed to measure the accelerations of the UAV in different directions in order to calculate its displacement in space. To accurately calculate the accelerations in a fixed reference coordinate system shared by both the user and the UAV, a gyroscope is needed to provide the roll, yaw and pitch angles for correcting the deviation. Therefore an integrated IMU is desired in our design. There are several popular IMU’s used by many open source quadcopter projects, among which the MPU families are the most popular ones. Specifically, we looked at MPU-6000/MPU-6050 [12] and MPU9150 [13]. There major difference between the two is that MPU-9150 is 9-axis with a magnetometer while MPU-6000/MPU-6050 has only the accelerometer and gyroscope. Though the gyroscope can directly measure raw, pitch and yaw angles, using of a magnetometer will help correct the values using a Kalman filter algorithm. So we decided to use MPU-9150. https://engineering.purdue.edu/ece477 Page 5 of 6 ECE 477: Digital Systems Senior Design v1.0 2.0 Sources Cited: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] ArduPilot: http://ardupilot.com/ DJI A2: http://www.uavproducts.com/category.php?id_category=48 Pixy: http://charmedlabs.com/default/?page_id=211 Raspberry Pi: https://www.sparkfun.com/products/11546 WRL-12579 : https://www.sparkfun.com/products/12579 WRL-11600 : https://www.sparkfun.com/products/11600 WRL-11601 : https://www.sparkfun.com/products/11601 SPEKTRUM AR8000: http://www.horizonhobby.com/products/ar8000-8-channeldsmx-receiver-SPMAR8000#t1 SPEKTRUM AR610: http://www.horizonhobby.com/products/ar610-6-channel-dsmxaircraft-receiver-SPMAR610#t6 CJMCU-GPS-HMC5883L: http://www.deal-dx.net/deal-dx/viewitem/303679-cjmcu108-apm-2-6-gps-hmc5883l-neo-6m-rotary-flight-control-compass-modulepurple.html#.VBnzlCVESBs Cirocomm 580: http://item.taobao.com/item.htm?spm=a230r.1.14.1.xWrjpl&id=39898699814&ns=1#de tail MPU6050: http://www.invensense.com/mems/gyro/mpu6050.html MPU9150: http://www.invensense.com/mems/gyro/mpu9150.html Other References: GPS metrics:https://www.sparkfun.com/pages/GPS_Guide Receiver channel difference: https://www.hobbywarehouse.com.au/articles/differencesbetween-3-4-6-channel-rc-helicopters.html Receiver range: http://www.rcgroups.com/forums/showthread.php?t=2106008 Camera module https://www.sparkfun.com/products/11868 https://engineering.purdue.edu/ece477 Page 6 of 6