BWP-WS19-02/Dokumentation/SensorenKartierung: Unterschied zwischen den Versionen

Aus Verteilte Systeme - Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde geleert.)
Markierung: Geleert
 
(36 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=Teamstruktur=
 
Phase 1:
 
* Jan (Manager)
 
* Jonas (Tester)
 
* Mario (Dokumentation)
 
 
Phase 2:
 
* Jan (Tester)
 
* Jonas (Dokumentation)
 
* Mario (Manager)
 
 
=Arbeitspakete=
 
 
=Sensoren & Kartierung=
 
 
==Adafruit BNO055 Absolute Orientation Sensor==
 
 
Der [https://cdn-shop.adafruit.com/datasheets/BST_BNO055_DS000_12.pdf BNO055-Sensor] beinhaltet drei Accelerometer, drei Gyroscope und drei Magnetometer (jeweils X-, Y- und Z-Achse). Außerdem steht ein ARM-Cortex-M0 zur Verfügung, welcher mittels Sensor Fusion direkt auswertbare Daten liefert.
 
 
Folgende Daten stehen als Output zur Verfügung:
 
* '''Absolute Orientation (Euler Vector, 100Hz)'''
 
: Three axis orientation data based on a 360° sphere
 
* '''Absolute Orientation (Quaterion, 100Hz)'''
 
: Four point quaternion output for more accurate data manipulation Angular
 
* '''Velocity Vector (100Hz)'''
 
: Three axis of 'rotation speed' in rad/s
 
* '''Acceleration Vector (100Hz)'''
 
: Three axis of acceleration (gravity + linear motion) in m/s^2
 
* '''Magnetic Field Strength Vector (20Hz)'''
 
: Three axis of magnetic field sensing in micro Tesla (uT)
 
* '''Linear Acceleration Vector (100Hz)'''
 
: Three axis of linear acceleration data (acceleration minus gravity) in m/s^2
 
* '''Gravity Vector (100Hz)'''
 
: Three axis of gravitational acceleration (minus any movement) in m/s^2
 
* '''Temperature (1Hz)'''
 
: Ambient temperature in degrees celsius
 
 
Nachfolgendes Bild zeigt einen Testaufbau mit BNO055 und einem nRF52 Feather auf einem Steckbrett. Das nRF52 Feather kommuniziert über I2C mit dem BNO055.
 
 
[[Datei:BNO055.jpg|Testaufbau mit BNO055 und einem nRF52 Feather auf einem Steckbrett|300px]]
 
 
Um den Sensor für das Projekt zu benutzen, musste ein eigener Treiber entwickelt werden. Dieser basiert im wesentlichen darauf, dass über I2C-Aufrufe von Zephyr in bestimmte Register des Sensor geschrieben bzw. von ihnen gelesen wird. Anhand des Datenblatts wurde bestimmt welche Register zu welchem Zweck dienen. Daraus ergab sich eine API, welche zum jetzigen Zeitpunkt alle benötigten Funktionen des Sensors abbildet, jedoch nicht den selben Umfang wie die Bibliothek von Adafruit aufweist.
 
 
==VL53L0X Time-Of-Flight Distance Sensor==
 
 
==Positionbestimmung mit einer optischen Maus==
 
 
For the determination of the X-Y position we used a PS/2 optical mouse:
 
 
First we made the Mouse - Arduino Connections for our test: Vcc, Gnd, Data and Clock pins from the mouse were needed.
 
<br/>
 
[[Datei:mouse_uno.png|mouse-uno-conections|300px]]
 
<br/> <br/>
 
*Basic overview of the PS/2 protocol of a mouse:
 
 
There are 2 counters that keep track of the X - Y position. They get inc/dec if movement is detected and get reset if a Data Packet is sent to the Host(Arduino).
 
 
The Data Packet is 3 bytes size, where the first byte are flags (overflow flags for the counters for example), bytes 2 and 3 is where X and Y movement is stored.
 
 
In Order to get the Data Packet the PS/2 protocol provides us with the Read Data Command:<code>0xEB</code> <br/> <br/>
 
You can read more about PS/2 mouse protocol [https://isdaman.com/alsos/hardware/mouse/ps2interface.htm here].Thanks this information and the "Computer Mouse Project" from [https://homofaciens.de/technics-base-circuits-computer-mouse_en.htm hofaciens.de].We were able to read the X-Y positions of the mouse!! Now we can get the absolute position by doing a Vector addition:
 
<br/> <br/>
 
[[Datei:mouse_abs.png | 250px]][[Datei:vectors.jpg | 300px]]
 
 
==Zephyr Scientific Library (zscilib)==
 
Für die Berechnungen, die für den Kalman Filter benötigt werden, wurde eine zusätzliche Library in das Projekt eingebunden. Es handelt sich dabei um die Zephyr Scientific Library (zscilib).
 
Die Library wurde mit folgenden Schritten eingebunden:
 
 
# In the manifest/remotes section add:
 
<code><pre>
 
remotes:
 
- name: zscilib
 
url-base: https://github.com/zscilib
 
</pre></code>
 
 
# In the manifest/projects section add:
 
<code><pre>
 
- name: zscilib
 
remote: zscilib
 
path: modules/lib/zscilib
 
revision: master
 
</pre></code>
 
 
=Quellen=
 
[https://cdn-learn.adafruit.com/downloads/pdf/adafruit-bno055-absolute-orientation-sensor.pdf?timestamp=1573732933 Adafruit Learning Systems]
 
 
[https://cdn-shop.adafruit.com/datasheets/BST_BNO055_DS000_12.pdf BNO055 Datasheet]
 

Aktuelle Version vom 18. Februar 2020, 17:18 Uhr