magnetometer
MagnetometerPeriod
module-attribute
#
MagnetometerPeriod = Union[
Literal[1],
Literal[2],
Literal[5],
Literal[10],
Literal[20],
Literal[80],
Literal[160],
Literal[640],
]
Het interval waarmee de magnetometer wordt uitgelezen, dit is een geheel getal en drukt het aantal milliseconden uit. Er is een beperkt aantal geldige periodes: 1, 2, 5, 10, 20, 80, 160, 640
Warning
Dit zijn de geldige waarden volgens de specificatie, maar het lijkt erop dat dit niet klopt/werkt zoals ik verwacht TODO te onderzoeken
Calibration #
Een klasse die je toelaat een calibratie op te volgen
Source code in src/kaspersmicrobit/services/magnetometer.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
done #
done() -> bool
Kijk na of de calibratie nog bezig is
Returns:
-
bool
–True indien de calibratie gedaan is, False indien het nog bezig is
Source code in src/kaspersmicrobit/services/magnetometer.py
32 33 34 35 36 37 38 39 |
|
wait_for_result #
wait_for_result(timeout=None) -> bool
Wacht op het einde van het calibreren Args: timeout: het aantal seconden dat je maximaal wil wachten op een resultaat
Returns:
-
bool
–True indien de calibratie gelukt is, False indien het mislukt is
Source code in src/kaspersmicrobit/services/magnetometer.py
41 42 43 44 45 46 47 48 49 50 51 52 53 |
|
MagnetometerData
dataclass
#
De waarden op de 3 assen van een meting van de magnetometer
Attributes:
-
x
(int
) –horizontaal (van links naar rechts)
-
y
(int
) –horizontaal (van achter naar voor)
-
z
(int
) –verticaal (van onder naar boven)
Source code in src/kaspersmicrobit/services/magnetometer.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
|
MagnetometerService #
Deze klasse bevat de functies die je kan aanspreken in verband met de magnetometor van de micro:bit. Er zijn functies om
- het magnetisch veld langs 3 assen te meten
- de hoek in graden ten opzichte van het noorden te meten
- de magnetometer te calibreren. Het is het best om de magnetometer te calibreren voor je gegevens uitleest, zoniet kunnen de gegevens of de hoek in graden verkeerd zijn.
Warning
Ik heb gemerkt dat ondanks calibratie, de microbits die ik testte slechte resultaten gaven (verder te onderzoeken)
Dit zijn alle mogelijkheden aangeboden door de bluetooth magnetometer service
Zie ook: https://lancaster-university.github.io/microbit-docs/ble/magnetometer-service/
Zie ook: https://lancaster-university.github.io/microbit-docs/ubit/compass/
Source code in src/kaspersmicrobit/services/magnetometer.py
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 |
|
is_available #
is_available() -> bool
Kijkt na of de magnetometer bluetooth service gevonden wordt op de geconnecteerde micro:bit.
Returns:
-
bool
–true als de magnetometer gevonden werd, false indien niet.
Source code in src/kaspersmicrobit/services/magnetometer.py
103 104 105 106 107 108 109 110 |
|
notify_data #
notify_data(callback: Callable[[MagnetometerData], None])
Deze methode kan je oproepen wanneer je verwittigd wil worden van nieuwe magnetometer gegevens. Hoe vaak je nieuwe gegevens ontvangt hangt af van de magnetometer periode
Warning
De micro:bit geeft geen metingen indien er geen calibratie is geweest
Parameters:
-
callback
(Callable[[MagnetometerData], None]
) –een functie die wordt opgeroepen wanneer er nieuwe gegevens zijn van de magnetometer. De nieuwe MagnetometerData worden meegegeven als argument aan deze functie
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de notificaties van magnetometer data te activeren (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 |
|
read_data #
read_data() -> MagnetometerData
Geeft de gegevens van de magnetometer.
Returns:
-
MagnetometerData
–De gegevens van de magnetometer (x, y en z)
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de magnetometer data te lezen (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
132 133 134 135 136 137 138 139 140 141 142 143 144 |
|
set_period #
set_period(period: MagnetometerPeriod)
Stelt het interval in waarmee de magnetometer metingen doet (in milliseconden).
Parameters:
-
period
(MagnetometerPeriod
) –het interval waarop de magnetometer metingen doet, geldige waarden zijn: 1, 2, 5, 10, 20, 80, 160, 640
Warning
Dit zijn de geldige waarden volgens de specificatie, maar het lijkt erop dat dit niet klopt/werkt zoals ik verwacht TODO te onderzoeken
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de magnetometer periode te schrijven (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
|
read_period #
read_period() -> int
Geeft het interval terug waarmee de magnetometer metingen doet
Returns:
-
int
–Het interval in milliseconden
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de magnetometer periode te lezen (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
165 166 167 168 169 170 171 172 173 174 175 176 177 178 |
|
notify_bearing #
notify_bearing(callback: Callable[[int], None])
Deze methode kan je oproepen wanneer je verwittigd wil worden van de hoek in graden waarin de micro:bit gericht wordt ten opzichte van het noorden.
Warning
De micro:bit geeft geen metingen indien er geen calibratie is geweest
Parameters:
-
callback
(Callable[[int], None]
) –een functie die periodiek wordt opgeroepen met de hoek in graden ten opzichte van het noorden
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de notificaties van magnetometer bearing te activeren (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
|
read_bearing #
read_bearing() -> int
Lees de hoek in graden waarin de micro:bit gericht wordt ten opzichte van het noorden.
Returns:
-
int
–de hoek in graden tov het noorden
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de magnetometer bearing te lezen (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
|
calibrate #
calibrate() -> Calibration
Calibreer de magnetometer. Deze methode start het calibratieproces op de micro:bit, waarbij je de micro:bit moet kantelen om het LED scherm te vullen. Door het kantelen wordt de magnetometer gecalibreerd Indien er al een calibratie bezig is wordt geen nieuwe calibratie gestart
Warning
De micro:bit geeft geen metingen indien er geen calibratie is geweest
Returns:
-
Calibration
–Het de calibratie die bezig is. Je kan hiermee nakijken of het calibreren nog bezig is, of wachten tot
-
Calibration
–De calibratie gedaan is.
Raises:
-
BluetoothServiceNotFound
–Wanneer de magnetometer service niet actief is op de micro:bit
-
BluetoothCharacteristicNotFound
–Wanneer de magnetometer service actief is, maar er geen manier was om de magnetometer calibratie te activeren of op te volgen (komt normaal gezien niet voor)
Source code in src/kaspersmicrobit/services/magnetometer.py
215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 |
|