EPS@ISEP | The European Project Semester (EPS) at ISEP

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
report [2014/06/26 02:16] – [6.4 Functionalities] team2report [2014/06/26 14:23] (current) – [6.5 Tests and Results] team2
Line 818: Line 818:
  
 The power supply in our project comes from Li-Poly 2000 mAh battery. This battery has a nominal voltage of 3.7 V. We will convert this voltage with the battery charger and boost it uptil 5 V. The output of the booster is directly connected to the arduino 5 V. voltage input then the Arduino linear regulator and the wireless shield linear regulator take care of providing the sensor stick and the Bluetooth radio the right amount of voltage (3.3 V). The TMP 36 temperature sensor is fed at 5 V. by the arduino output in the following sketch we have the electrical architecture as well as the power consumption in mA. The power supply in our project comes from Li-Poly 2000 mAh battery. This battery has a nominal voltage of 3.7 V. We will convert this voltage with the battery charger and boost it uptil 5 V. The output of the booster is directly connected to the arduino 5 V. voltage input then the Arduino linear regulator and the wireless shield linear regulator take care of providing the sensor stick and the Bluetooth radio the right amount of voltage (3.3 V). The TMP 36 temperature sensor is fed at 5 V. by the arduino output in the following sketch we have the electrical architecture as well as the power consumption in mA.
 +
 +{{:elek_graf.png?500|}}
  
 Figure 15 - Electrical architecture of surf logger Figure 15 - Electrical architecture of surf logger
Line 824: Line 826:
  
 The 9 Degrees of freedom-sensor stick is communicating with an I²C (Inter-Integrated Circuit) interface with the Arduino Uno. I²C is a multi-master serial single-ended computer bus invented by the Philips semiconductor division. I²C uses only two bidirectional open-drain lines, Serial Data Line (SDA) and Serial Clock Line (SCL), pulled up with resistors as we can see in the following sketch it’s not necessary for us to add the pull up resistors because they are included in the mate. The 9 Degrees of freedom-sensor stick is communicating with an I²C (Inter-Integrated Circuit) interface with the Arduino Uno. I²C is a multi-master serial single-ended computer bus invented by the Philips semiconductor division. I²C uses only two bidirectional open-drain lines, Serial Data Line (SDA) and Serial Clock Line (SCL), pulled up with resistors as we can see in the following sketch it’s not necessary for us to add the pull up resistors because they are included in the mate.
 +
 +{{:ıkre_c.png?400|}}
  
 Figure 16 – I²C [68] Figure 16 – I²C [68]
  
 The TMP 36 temperature sensor it’s connected to an arduino analog input this analog signal follow the graph shown below. The TMP 36 temperature sensor it’s connected to an arduino analog input this analog signal follow the graph shown below.
 +
 +{{:output_voltge.png?400|}}
  
 Figure 17 – Output voltage vs temperature [69] Figure 17 – Output voltage vs temperature [69]
  
 These signals are processed on the Arduino CPU and sent by the arduino serial port that is used the Bluetooth interface to send the data to the PC where the processed signals are used to visualize a 3D model of the board. Additionally, this data are also sent to the SD card in order to have a backup copy of the session if Bluetooth communication is lost. These signals are processed on the Arduino CPU and sent by the arduino serial port that is used the Bluetooth interface to send the data to the PC where the processed signals are used to visualize a 3D model of the board. Additionally, this data are also sent to the SD card in order to have a backup copy of the session if Bluetooth communication is lost.
 +
 +{{:baska_ark.png?500|}}
  
 Figure 18 - Signal Architecture Figure 18 - Signal Architecture
Line 838: Line 846:
  
 In the following fritzing diagram and in the table below we will explain the physical connections between all the components. The Bluetooth radio It is represented with XBee radio because they have the same footprint and the SD card is not represented in the in the diagram but it’s just plug on the SD slot of the arduino wireless SD shield. In the following fritzing diagram and in the table below we will explain the physical connections between all the components. The Bluetooth radio It is represented with XBee radio because they have the same footprint and the SD card is not represented in the in the diagram but it’s just plug on the SD slot of the arduino wireless SD shield.
 +
 +{{:sketch_surf_logger_bb.jpg?500|}}
  
 Figure 19 - Physical schematics Figure 19 - Physical schematics
Line 843: Line 853:
  
 The connections between wireless shield and the Arduino uno and the connection between wireless shield and the Bluetooth radio are easy. Each one is mounted to the other, staked because the footprint of one matches perfectly with the pins of the other as we can see in the Figure 19. The connections between wireless shield and the Arduino uno and the connection between wireless shield and the Bluetooth radio are easy. Each one is mounted to the other, staked because the footprint of one matches perfectly with the pins of the other as we can see in the Figure 19.
 +
 +{{:uno.png?400|}}
  
 Figure 20 - Arduino Uno + Arduino wireless SD shield [70] Figure 20 - Arduino Uno + Arduino wireless SD shield [70]
Line 848: Line 860:
 In the Figure 21 we can see and XBee module plug into the wireless shield but as we have explain we will use a Bluetooth antenna that can be plug in because it has the same footprint (show Figure 21) In the Figure 21 we can see and XBee module plug into the wireless shield but as we have explain we will use a Bluetooth antenna that can be plug in because it has the same footprint (show Figure 21)
  
 +
 +{{:bluetooth.png?400|}}
  
 Figure 21 - RN41-XV Bluetooth Module [71] Figure 21 - RN41-XV Bluetooth Module [71]
  
 **Cork Box Design** **Cork Box Design**
 +
 +{{:kutu_ıcı.png?300|}}{{:kutu_tammi.png?300|}}
  
 Figure 22 – Surf Logger box Figure 22 – Surf Logger box
Line 902: Line 918:
 |EEPROM|1 kB (ATmega328)| |EEPROM|1 kB (ATmega328)|
 |Clock Speed|16 MHz| |Clock Speed|16 MHz|
 +
 +{{:arduıno.png?400|}}
  
 Figure 13 - Arduino Uno [60] Figure 13 - Arduino Uno [60]
  
 The 9DOF Sensor stick or put in another way a sensor board with 9 degrees of freedom. Includes the ADXL345 accelerometer, the HMC5883L magnetometer, and the ITG-3200 MEMS gyro has a I2C interface in the followings we show the specifications of all the sensors. The 9DOF Sensor stick or put in another way a sensor board with 9 degrees of freedom. Includes the ADXL345 accelerometer, the HMC5883L magnetometer, and the ITG-3200 MEMS gyro has a I2C interface in the followings we show the specifications of all the sensors.
 +
 +{{:sesnsor_stick.png?400|}}
  
 Figure 14 – Sensorstick [61] Figure 14 – Sensorstick [61]
Line 930: Line 950:
 The speciation of the output of our battery is 3.7 V, so we need to change this voltage to an accurate one for our arduino board. We can make it by using two batteries in series and using the voltage regulator of the arduino board Input Voltage (recommended) 7-12 V or using a boost regulator to 5 V and connected to the arduino board without using the regulator of the board. The speciation of the output of our battery is 3.7 V, so we need to change this voltage to an accurate one for our arduino board. We can make it by using two batteries in series and using the voltage regulator of the arduino board Input Voltage (recommended) 7-12 V or using a boost regulator to 5 V and connected to the arduino board without using the regulator of the board.
  
-As we see Table 19 the output voltage of our battery is 3.7 V but 5 V is needed to arduino board. For changing this voltage to accurate to our arduino board, there were two options. First, made it by using two batteries in series and use the voltage regulator to regulate arduino board Input Voltage (recommended) to 7-12 V. Second one, use a boost regulator to reach 5 V and connected to the arduino board without using the regulator of the board. We preferred second option because using two batteries means that the linear voltage converter are reducing the voltage to 5 V with an approximately efficiency of 65% much less than the one boost converter give us.+The output voltage of our battery is 3.7 V but 5 V is needed to arduino board. For changing this voltage to accurate to our arduino board, there were two options. First, made it by using two batteries in series and use the voltage regulator to regulate arduino board Input Voltage (recommended) to 7-12 V. Second one, use a boost regulator to reach 5 V and connected to the arduino board without using the regulator of the board. We preferred second option because using two batteries means that the linear voltage converter are reducing the voltage to 5 V with an approximately efficiency of 65% much less than the one boost converter give us.
  
 **Battery Charger/Booster** **Battery Charger/Booster**
Line 976: Line 996:
  
 Once the code has read the information from the sensors the readings are corrected with the Sensor calibration, scale and offset values. We want to know the exact orientation of the surfboard. This means that we need the yaw, pitch and roll angle. Once the code has read the information from the sensors the readings are corrected with the Sensor calibration, scale and offset values. We want to know the exact orientation of the surfboard. This means that we need the yaw, pitch and roll angle.
 +
 +
 +{{:yaw.png?400|}}
  
 Figure 23 - Explanation of yaw pitch and roll in a surf board [72] Figure 23 - Explanation of yaw pitch and roll in a surf board [72]
Line 982: Line 1005:
  
 Internally the fusions of accelerometer, magnetometer and gyroscope data are done to use a Direction Cosine Matrix (DCM) algorithm. The algorithm also takes care of handling sensor noise and numerical errors. It is based on a paper by William Premerlan on the theory and implementation of a direction-cosine-matrix (DCM) [73]. Internally the fusions of accelerometer, magnetometer and gyroscope data are done to use a Direction Cosine Matrix (DCM) algorithm. The algorithm also takes care of handling sensor noise and numerical errors. It is based on a paper by William Premerlan on the theory and implementation of a direction-cosine-matrix (DCM) [73].
 +
 +{{:yesil.png?500|}}
  
 Figure 24 - Block diagram of the DCM [73] Figure 24 - Block diagram of the DCM [73]
  
 Posture data (Euler angles) of the board are get from the gyro. For the roll, pitch, and yaw, three rotation matrices X, Y, and Z can be calculated: Posture data (Euler angles) of the board are get from the gyro. For the roll, pitch, and yaw, three rotation matrices X, Y, and Z can be calculated:
 +
 +{{:x_formulu.png?400|}}
  
 Then, direction cosine matrix (DCM) is given as: Then, direction cosine matrix (DCM) is given as:
 +
 +{{:x_ikinci.png?400|}}
  
 With this matrix, representing of board’s posture in 3-dimensional space is possible. Each of the rotational drift correction vectors (yaw and roll-pitch) are multiplied by weights and fed to a proportional plus integral (PI) feedback controller to be added to the gyro vector to produce a corrected gyro vector. That is used as the input to equation. Proportional plus integral feedback controller are used to apply the rotation correction to the gyros, because it is stable and because the integral term completely cancels gyro offset, including thermal drift, with zero residual orientation error[73], [74]. With this matrix, representing of board’s posture in 3-dimensional space is possible. Each of the rotational drift correction vectors (yaw and roll-pitch) are multiplied by weights and fed to a proportional plus integral (PI) feedback controller to be added to the gyro vector to produce a corrected gyro vector. That is used as the input to equation. Proportional plus integral feedback controller are used to apply the rotation correction to the gyros, because it is stable and because the integral term completely cancels gyro offset, including thermal drift, with zero residual orientation error[73], [74].
  
 **Sensor Calibration** **Sensor Calibration**
 +
 The firmware also implements some settings options to improve precision and responsiveness for sensor calibration. If the sensors are not calibrated, they may effect like: The firmware also implements some settings options to improve precision and responsiveness for sensor calibration. If the sensors are not calibrated, they may effect like:
   * Drifts in yaw when applying roll to the board.   * Drifts in yaw when applying roll to the board.
Line 1017: Line 1047:
  
 ==== 6.5 Tests and Results ==== ==== 6.5 Tests and Results ====
 +
 +In order to prove the functionalities that were explained above, some tests were designed to know if the device was working as expected. The environment of the proves was in most of the cases a worktable EPS classroom, except for the range test and the waterproof test which took place in others environments which were subsequently described.
 +
 +The tested materials were the ones we had put in the material list was purchased by ISEP to inmotion.pt. The pc used to check the Bluetooth connection and run the processing sketch is a Toshiba PORTÉGÉ Z930-15E. The connections between the components for the test was followed the Fritzing diagram shown in the architecture part (Figure 19).
 +
 +**Bluetooth Range test**
 +
 +This test took place outside. For testing the Bluetooth range, it was started to sending data to the PC in a short distance and then gradually the device is moved away from the computer. Every five steps, some test movements were made to find out if the Bluetooth connection is still working.
 +
 +To measure the path length until the Bluetooth stops working, a string was used. Following the specs that were given by the Bluetooth standards and the manufacturer range of the antenna over open air should be approximately 100 meter.
 +
 +Because the cork box attenuates to Bluetooth signal, two different tests is performed. They are:
 +a) Without the case
 +b) With the case
 +
 +**Autonomy test by measure the current**
 +
 +To verify the calculations that performed on the battery, the maximum current draw could be measured. This current should not exceed the 108.64 𝑚𝐴. Also, an ammeter is needed to test it.
 +Assembly will follow the same pattern as the rest of the tests but the ammeter was placed between the battery and the boost converter as shown below:
 +{{:elek_graf.png?500|}}
 +
 +Figure 31 - Sketch of the mounting
 +
 +**Battery Time and Temperature Test**
 +
 +During the discharging process a constant value of the voltage is necessary. The mAh of all the batteries shown in their characteristics (in this case it is 2000 mAh).
 +
 +Autonomy is tested when the device is running. To perform the test, the device is been running steadily and sending data to the PC. The test started with full-charged battery. Start time was checked and written down. The device was started to run. When it shut down, the time was recorded again. The battery should last approximately 19 hours.
 +
 +This test run in parallel with battery time test and consisted in measuring the temperature inside of the box with an external thermometer while the device was running and sending data to the computer. The temperature was measured every 10 minutes until it reached thermal equilibrium.
 +
 +**Waterproof Test**
 +
 +To check the waterproof properties of the cork case, it was put in water without electronic parts. After 10 seconds it was taken out and checked if there is any water inside.
 +At first the presence of water was checked by visual inspection and we putted some paper inside the case.More tests were conducted with liquid contact indicators. A liquid contact indicator (LCI) is a small indicator that turns from white into another colour after contact with water They are usually use to have a lead to the cause of a defect in electronic devices and also avoid discussions about liability and warranty. LCI was also used in the next test [86].
 +
 +Figure 32- Waterproof test
 +
 +//Results from Water test//
 +There was coming water into the case because the seal was not tight enough. This was a manufacture problem, because the prototype was hand-made. In serial production, the case with the seal will be made more accurate because it will be made by machine.
 +
 +**Testing Device in the Water**
 +
 +The final tests will be conducted when the case is waterproof. Liquid contact indicators will be glued to the parts. In order to know if the water comes into the case. The test was taken place in the real environment in which our surf logger was used, the sea. It was fixed to a surf board. This will help us to test if :
 +
 +  * The range was enough to have a good surf experience and not lose the Bluetooth conection
 +  * The cork was isolating components and there was no evidence that water has entereing the device
 +  * That it was useful to improve surf skills
 +
  
 ==== 6.6 Conclusion ==== ==== 6.6 Conclusion ====
-//Provide here the conclusions of this chapter and introduce the next chapter.//+ 
 +In the following chapter we have written about how we have managed to develop our project: first we have presented our components, talking about the features and complementing the part of the state of the art in which different solutions and technologies for the components were compared. Then architecture and software development are presented so that it make understandable the signal and electrical architecture as well as the physical connections and the software solution chosen. After it the functionalities are explained based on how the code, the components and the structure make them possible. Finally at the functional tests some experiments are described in order to try out the functionalities.
  
 ===== 7. Project Management ===== ===== 7. Project Management =====
Line 1097: Line 1177:
 ===== 8. Conclussion ===== ===== 8. Conclussion =====
 ==== 8.1 Discussion ==== ==== 8.1 Discussion ====
- 
-In the following chapter we have written about how we have managed to develop our project: first we have presented our components, talking about the features and complementing the part of the state of the art in which different solutions and technologies for the components were compared. Then architecture and software development are presented so that it make understandable the signal and electrical architecture as well as the physical connections and the software solution chosen. After it the functionalities are explained based on how the code, the components and the structure make them possible. Finally at the functional tests some experiments are described in order to try out the functionalities. 
      
 When trying to create the surf logger, we had some problems. The main one is reading and visualizing the data. We chose the option to take advantage of the AHRS firmware because our lack in knowledge about programming and the absence of time to build a program from scratch. Were also other problems like the difficulty of save the angle’s information on the SD card that would not be possible to solve without the help of the Arduino libraries. So we can conclude we would not have been able to conduct this project without the help of free software and the Arduino community.  When trying to create the surf logger, we had some problems. The main one is reading and visualizing the data. We chose the option to take advantage of the AHRS firmware because our lack in knowledge about programming and the absence of time to build a program from scratch. Were also other problems like the difficulty of save the angle’s information on the SD card that would not be possible to solve without the help of the Arduino libraries. So we can conclude we would not have been able to conduct this project without the help of free software and the Arduino community. 
QR Code
QR Code report (generated for current page)