BWP-WS19-02/Dokumentation/SensorenKartierung
Teamstruktur
Woche 1 bis 4:
- Jan (Manager)
- Jonas (Tester)
- Mario (Dokumentation)
Arbeitspakete
Sensoren & Kartierung
Adafruit BNO055 Absolute Orientation Sensor
Der 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.
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.
- 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:0xEB
You can read more about PS/2 mouse protocol here.Thanks this information and the "Computer Mouse Project" from 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: