Electronics Design Contest 2016 Wearable Controller VLSI Category Participant guidance June 27, 2016 Wearable Controller is a wearable device that can gather data from person that wears it. Those data will be processed and then used control the attached-system. This device gets data from the person wearing it by sensing the persons motion and using some buttons. This device communicates with system through wireless communication. It has 2 modules, Input Module and Main Board. Input Module processes data from sensor and send them to Main Board. Main Board processes the data from Input Module and communicates them to system it attached. The usage of this device are varies. For EDC 2016, VLSI category, the challenge is to design the processing unit used in motion sensing process. 1 Project Overview Wearable Controller is a wearable device that can gather data from person that wear it. Those data will be processed and then used control the attached-system. This device gets data from the person wearing it by sensing the persons motion and using some buttons. This device communicates with system through wireless communication. It has 2 modules, Input Module and Main Board. Input Module processes data from sensor and send them to Main Board. Main Board processes the data from Input Module and communicates them to system it attached. The usage of this device are varies. For EDC 2016, VLSI category, the challenge is to design the processing unit calculate roll and pitch in motion sensing process. This processing unit is needed to obtain orientation that will be used in estimating device motion/relative position, which got the input from accelerometer and gyroscope. 1
Figure 1: Inertial Frame [8] 2 Background The most common sensory device used to determine the position and orientation of an object are accelerometer and gyroscope. Though similar in purpose, both accelerometer and gyroscope measure different things. However we can combine data from both sensor to estimate orientation, position, and detect the direction of tilt change. Three things usually being measured for tilt detection are pitch, roll, yaw which is shown on Figure1. 2.1 What is a gyroscope? A traditional gyroscope is a device which consists of a freely-rotating disk called a rotor, mounted onto a spinning axis in the center of a larger and more stable wheel. The gyroscope that is widely used by smartphones, gaming devices, and other devicees is referred as Coriolis vibratory gyroscope. This inexpensive type of gyroscope is manufactured using MEMS technology. It uses a vibrating structure to determine rate of rotation (angular velocity) with a unit [ deg. s ]. This means that we get the derivative of the angular position over time. θ = dθ dt 2.2 Getting angular position from gyroscope Rate feedback is extremely useful in control engineering, it usually used in combination with position feedback. To obtain the angular position, we can simply integrate the angular velocity. So, assuming that at t=0, θ = 0, we can find the angular position at 2
any given moment t with the following equation: θ(t) = t 0 θ(t)dt t θ(t)dt 0 The third part in this equation shows the approximation we make when using digital systems. Because we can t take a perfectly continuous integral, we have to take the sum of a finite number of samples taken at a constant interval T s. T s is called the sampling period. Of course this approximation will introduce errors. When gyroscope data changes faster than the sampling frequency, we will not detect it, and the integral approximation will be incorrect. This error is called drift, as it increases in time. It results in the sensor reading not returning to 0 at the rest position. For this, it is important that we choose a good sampling period.[2] 2.2.1 The problem with gyroscopes We saw that it was very easy to obtain an accurate measurement that was not susceptible to external forces (translation forces). The less good news was that, because of the integration over time, the measurement has tendency to drift, not returning to zero when the system went back to its original position. We could not estimate angular position using only gyroscope, as it starts to drift on the long term. 2.3 What is an accelerometer? An accelerometer is a compact device designed to measure acceleration, including gravitational accelertation. It uses microscopic crystals that go under stress when vibrations occur, and from that stress a voltage is generated to create a reading on any acceleration. Accelerometers are important components to devices that track fitness and other measurements in the quantified self movement. 2.4 Getting angular position from accelerometer With the assumption that there s no external forces that is being applied to the accelerometer except gravitational forces, we could assume that the accelerometer reading could be described as figure 2. From accelerometer reading we could get two angular position pitch(α) and roll(β) usin. ( ) A x1 pitch = α = arctan (Ay1 ) 2 + (A z1 ) 2 ( ) A y1 roll = β = arctan (Ax1 ) 2 + (A z1 ) 2 (A x, A y, and A z are the output of accelerometer) 3
Figure 2: Tilt angles from a tri-axis accelerometer Figure 3: Tilt angles from a tri-axis accelerometer 4
2.4.1 The problem with accelerometers As an accelerometer measures all forces that are working on the object, it will also see a lot more than just the gravity vector. Every small force working on the object will disturb our measurement completely. If we are working on an actuated system (like the quadrocopter), then the forces that drive the system will be visible on the sensor as well. The accelerometer data is reliable only on the long term, so a low pass filter has to be used. 3 Combining Accelerometer and Gyroscope Even though accelerometer model already gave us inclination angles the data cannot always be trusted 100%. The reason are, accelerometer measures inertial force, such a force can be caused by gravitation or by acceleration (movement) of the device. As a result even if accelerometer is in a relatively stable state, it is very sensitive to vibration and mechanical noise in general. This is the main reason why most IMU systems use a gyroscope to smooth out any accelerometer errors. In the other hand, gyroscope measures rotation which is less sensitive to linear mechanical movements, the type of noise that accelerometer suffers from. However the gyroscope is also not free from noise, it has other types of problems like for example drift (not coming back to zero-rate value when rotation stops). Nevertheless by averaging data that comes from accelerometer and gyroscope we can obtain a relatively better estimate of current device inclination than we would obtain by using the accelerometer data alone. 4 Why do we need a filter? As we know accelerometer reads for static angles that is fast changes are ignored and gyroscope is used for changing angles that is slow changes are ignored. For removing these problems there are two filters that usually used: Complementary filter and Kalman filter. In that case Kalman filter is theoretically ideal filter for combining noisy sensors to get accurate estimation, however, it is considered complex mathematically. As other option complementary filters is easier to fix noise, drift and horizontal acceleration dependency [4]. More explanation about the comparison of Complementary and Kalman Filter is given in [1] 5 Challenge 5.1 Level 1 Design a circuit to calculate pitch and roll. A set of output data from accelerometer and gyroscope will be given. Prove that your circuit give correct mathematics result. 5
Figure 4: Complementary filter used to combine accelerometer and gyroscope data [7] 5.2 Level 2 Next step connect the real sensor (gyroscope and accelerometer). Show us that your circuit can give minimum indicator of tilt sensing mechanism (you can ignore the precision) 5.3 Level 3 Further challenge: develop your design with any creative idea crossing in your mind to implement tilt sensing unit, given at least accelerometer and gyroscope as the input. You are free to decide any additional feature. Surprise us :) Note: For all challenge level, you have to present your work in simulation and implementation (FPGA). 6 Judging Criteria The judging criteria used in this contest are as follows: 1. Innovation and novelty, the novelty level and the level of creativity shown in the design to solve given problem 2. Design functional and performance (speed, area) 3. Documentation includes proposals, reports, papers. 4. Oral presentations and posters. (Which will be evaluated is the clarity and exciting levels or absence of the presentation). 6
We try to evaluate not only the speed and the area, but also your idea, originality, uniqueness. But be sure to remember that we are not perfect, please make a good presentation to appeal us. We definitely take your school grade into account. We like fun ideas. Please do something different from others. 7 Contest Phase The contest is divided into the following phases: 1. Architecture/design Proposal 2. Selection of 5 best design proposals 3. Implementation of 5 best design proposals into Altera/Xilinx FPGA board 4. Presentation and Demonstration 5. Winner announcement 8 Who can join The team of maximum 3 students (university/college/high school). 9 Registration Send Email To: edc@stei.itb.ac.id Email Subject format as follow: EDC2016-[Category]-[Team_Name] Email contains (attachments): 1. Registration Form 2. Design Proposal 3. CV of Team Members 10 Documentations 10.1 Design Proposal File Name: EDC2016-[Category]-[Team_Name]-Proposal/Report File Format: PDF Language: English or Bahasa Indonesia. Content: 7
1. Title 2. Idea 3. Mathematics formulation 4. Flowchart 5. System Design 6. Development Plan 7. Implementation Scenario / Implementation 8. Simulation Result (*only in report) 9. Implementation Result (Functional, Performance) (*only in report) 10. Analysis (*only in report) 11. Conclusion (*only in report) 12. Reference 10.2 Registration Data File Name: EDC2016-[Category]-[Team_Name]-Registration File Format: PDF Content: 1. Team Name 2. University Name 3. Contact Name and Email 4. Team Members Name List 10.3 Team Member CV File Name: EDC2016-{Category]-[Team_Name]-CV[Space]Name File Format: PDF Content: 1. Personal Information 2. Full Name 3. Email 4. Picture 5. Current Education Information 6. University/School Name 7. Concentration 8
8. Skills 9. Short Resume 11 Important Dates Please pay attention to these schedule: 1. Registration and Proposal Submission: July 25th, 2016 2. Notification of Acceptance: July 30th, 2016 3. Product Development Phase I- VLSI: July 31st - October 6th, 2016 4. Product Development Phase II- VLSI: October 15th - November 14th 2016 5. Development Report Submission Deadline: VLSI Phase I: October 7th, 2016 VLSI Phase II: November 15th, 2016 6. Notification of Finalist:November 21st, 2016 7. Submission of Presentation Materials: November21st -November 28th, 2016 8. Final Event: November 29th-30th 2016 12 FAQ 13 Contact Website : http://ieee-edc.stei.itb.ac.id/ Email : edc@stei.itb.ac.id Phone : (+62)82240932844 (Whatsapps, Line, Telegram) References [1] Walter T. Higgins, JR. [A Comparison of Complementary and kalman Filtering]. IEEE Transaction on Aerospace and Electronics Systems Vol.AES-1 1, no.3 May 1975. [2] Pieter-Jan Van de Maele: Getting the angular position from gyroscope data, http : //www.pieter jan.com/node/7, accessed : June, 7th 2016 [3] Ryan Goodrich:Accelerometer vs. Gyroscope: What s the Difference? http : //www.livescience.com/40103 accelerometer vs gyroscope.html, accessed : June, 7th 2016 9
[4] Sanghyuk Park and Jonathan How:Examples of Estimation Filters from Recent Aircraft Projects at MIT http : //ocw.mit.edu/courses/aeronautics and astronautics/16 333 aircraf t stability and control fall 2004/lecture notes/lecture 1 5.pdf, accessed : June, 8th 2016 [5] Starlino: A GuideTo using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications, http : //www.starlino.com/imu g uide.html, accessed : June, 7th 2016 [6] ST AN3182 Application note: Tilt measurement using a low-g 3-axis accelerometer [7] Scolton:Step 15: IMU Part 2: Complementary Filter http://www.instructables.com/id/pcb-quadrotor-brushless/step15/imu-part-2-complementar accessed : June, 8th 2016 [8] CHRobotics LLC:Understanding Euler Angles http://www.chrobotics.com/library/understanding-euler-angles, accessed : June, 8th 2016 [9] IMU https://developer.mbed.org/cookbook/imu, accessed : June, 26th 2016z [10] My MoS Thesis: Using Arduino for Tangible Human Computer Interaction http://www.varesano.net/blog/fabio/my-mos-thesis-using-arduino-tangible-human-computer accessed : June, 26th 2016z 10