Oxoscript se transforme en NanoPy - plus d'infos

Fonctions du capteur

getHumidityAbsolute

  getHumidityAbsolute()->float

Oxocard-Science uniquement

Renvoie l’humidité absolue actuelle en g/m^3. Cette valeur représente la quantité de vapeur d’eau (humidité) dans l’air, indépendamment de la température.

L’humidité absolue maximale de l’air chaud à 30°C est d’environ 30g de vapeur d’eau.
L’humidité absolue maximale de l’air froid à 0°C est d’environ 5g de vapeur d’eau.

L’humidité absolue a été calculée à l’aide de la formule suivante:

image (Source)

getAmbientLux

  getAmbientLux()->long

Uniquement Oxocard Science

Renvoie l’intensité lumineuse en lux.

</tableau>
lux Surfaces
0,0001 Ciel nocturne sans lune, couvert (lumière des étoiles)
0,002 Ciel nocturne clair et sans lune avec lueur de l'air
0,05-0,3 Pleine lune par une nuit claire
3.4 La limite sombre du crépuscule civil sous un ciel clair
20-50 Les zones publiques avec un environnement sombre
50 Les lumières du salon familial (Australie, 1998)
80 Éclairage des couloirs/toilettes d'un immeuble de bureaux
100 Jour très sombre et couvert
150 Quais de gare
320-500 Éclairage de bureau
400 Lever ou coucher du soleil par temps clair.
1000 Jour de ciel couvert; éclairage typique d'un studio de télévision
10'000–25'000 La lumière du jour complète (pas de soleil direct)
32'000–100'000 Lumière solaire directe

getAccelerationXY

  getAccelerationXY()->vector

Même chose que la fonction getAcceleration(), mais sans l’axe Z.

La valeur de retour est de type vector. Cette classe contient deux variables objet x et y qui sont de type float.

v:vector
v = getAccelerationXY()

getMicrophoneFrequency

  getMicrophoneFrequency()->int

Oxocard-Science uniquement

Renvoie la fréquence actuelle la plus dominante en Hz.

La fréquence est calculée en utilisant la transformation de fourier rapide (fft). Les valeurs possibles sont: 250Hz, 375Hz, 500Hz, …, 15375Hz.

getMicrophoneDecibel

  getMicrophoneDecibel()->byte

Uniquement Oxocard-Science

Renvoie le niveau sonore actuel sous forme d’octet en décibels.

Le niveau sonore est calculé à partir de l’amplitude du microphone:

noise = 20 * log10(micAmp) - 20

Exemple::

def onDraw():
    db = getMicrophoneDecibel()
    h = map(db, 0, 150, 0, 255)
    clear()
    fill(255,255,255)
    drawRectangle(110, 240-h, 20, 240)
    update()

Cet exemple dessine une barre sur l’écran dont la hauteur dépend du niveau sonore actuel. Souffle sur le micro ou couvre-le pour voir l’effet.

getMicrophoneAmplitude

  getMicrophoneAmplitude()->long

Uniquement Oxocard-Science

Renvoie l’amplitude du microphone actuellement la plus dominante sous forme de valeur longue.

L’amplitude est calculée à l’aide de la transformation de Fourier rapide (fft).

Exemple de calcul:

def onDraw():
    amp = getMicrophoneAmplitude()
    h = map(amp, 0, 50000, 0, 255)
    clear()
    fill(255,255,255)
    drawRectangle(110, 240-h, 20, 240)
    update()

Cet exemple dessine une barre sur l’écran avec une hauteur qui dépend de l’amplitude du microphone. Souffle sur le micro pour voir l’effet.

getETOH

  getETOH()->float

Oxocard-Science uniquement

Renvoie l’ETOH actuel en ppm.

L’ETOH (respectivement l’éthanol) est un liquide volatil, inflammable, incolore et appartient au composé chimique organique.

Notez que le capteur ZMOD4410 a besoin d’un temps de chauffe d’environ 2 minutes. Pendant ce temps, la valeur -1 est renvoyée.

Exemple:

def onDraw():
    etoh = getETOH()
    print(etoh)
    delay(10000)

Cet exemple imprime la valeur ETOH toutes les 10 secondes dans le terminal.

getTVOC

  getTVOC()->float

Uniquement Oxocard-Science

Renvoie le COVT actuel en mg/m3.

TVOC signifie Total Volatile Organic Compounds et décrit la quantité de substances d’origine organique présentes dans l’air sous forme de gaz et de vapeur.

Comme référence:

Valeur Etat
<0.3 Très bon
0.3-1.0 Bien
1.00-3.00 Moyen
3.0-10.0 Mauvaise
>10.0 Très mauvais

Note que le capteur ZMOD4410 a besoin d’un temps de préchauffage d’environ 2 minutes. Pendant ce temps, il renvoie toujours -1.

Par exemple, on peut dire

def onDraw():
    tvoc = getTVOC()
    print(tvoc)
    delay(10000)

Cet exemple affiche la valeur TVOC toutes les 10 secondes dans le terminal.

getIAQ

  getIAQ()->float

Oxocard-Science uniquement

Renvoie l’évaluation actuelle de la IAQ.

IAQ signifie qualité de l’air intérieur et prend normalement une valeur comprise entre 0 et 5:

Tableau

Valeur Niveau Condition ≤1.99 1 Très bon 2,00-2,99 2 Bien 3.00-3.99 3 Moyen 4.00-4.99 4 Pauvre ≥5.00 5 Mauvais

</tableau>

Notez que le capteur ZMOD4410 a besoin d’un temps de chauffe d’environ 2 minutes. Pendant ce temps, la valeur -1 est renvoyée.

La valeur de la IAQ n’est pas directement mesurée mais calculée avec un algorithme spécial de Renesas.

Exemple:

def onDraw():
    iaq = getIAQ()
    print(iaq)
    delay(10000)

Cet exemple imprime la valeur de la IAQ toutes les 10 secondes dans le terminal.

getCO2

  getCO2()->float

Oxocard-Science uniquement

Renvoie le CO2 actuel en ppm.

Notez que le capteur ZMOD4410 a besoin d’un temps de chauffe d’environ 2 minutes. Pendant ce laps de temps, -1 est renvoyé.

La valeur du CO2 n’est pas directement mesurée mais calculée avec un algorithme spécial de Renesas. La valeur de départ est toujours de 400ppm et évolue avec le temps. Les valeurs inférieures à 1000ppm sont bonnes et les valeurs inférieures à 800ppm sont excellentes.

Exemple:

def onDraw():
    co2 = getCO2()
    print(co2)
    delay(10000)

Cet exemple imprime la valeur du CO2 toutes les 10 secondes dans le terminal.

getAmbientIR

  getAmbientIR()->long

Uniquement Oxocard-Science

Donne un nombre en fonction de l’intensité du rayonnement infrarouge (plage de valeurs de 0 à 2^18).

Comme la plupart des télécommandes de téléviseurs communiquent par infrarouge, un simple programme permet de visualiser ces signaux:

def onDraw():
    ir = getAmbientIR()
    clear()
    textFont(FONT_ROBOTO_32)
    drawText(10,10,ir)
    update()

getAmbientRGB

  getAmbientRGB()->color

Oxocard-Science uniquement

Renvoie la lumière ambiante actuelle sous forme de valeurs de couleur rouge, verte et bleue (RGB). La lumière ambiante est mesurée avec le capteur APDS-9251 et calculée pour correspondre à la plage 0…. 255.

Exemple:

def onDraw():
    ambient:color
    ambient = getAmbientRGB()
    print("R = " + ambient.r + "; G = " + ambient.g + "; B = " + ambient.b)
    delay(5000)

Cet exemple imprime les couleurs RGB mesurées toutes les 5 secondes dans le terminal.

getPressure

  getPressure()->float

Oxocard-Science uniquement

Renvoie la pression barométrique actuelle en mbar. La pression barométrique est mesurée avec le capteur MS560702BA03-50 avec une précision de ±1,5 mbar.

Exemple:

def onDraw():
    pres = getPressure()
    print(pres)
    delay(10000)

Cet exemple imprime la pression barométrique mesurée toutes les 10 secondes dans le terminal.

getHumidity

  getHumidity()->float

Oxocard-Science uniquement

Renvoie l’humidité actuelle en %RH. L’humidité est mesurée avec le capteur SHTC3 avec une précision de ±2 %RH.

Comme les capteurs d’humidité en général peuvent avoir un décalage important, il est recommandé de calibrer le décalage via le menu des paramètres de l’Oxocard-Science.

Exemple:

def onDraw():
    humi = getHumidity()
    print(humi)
    delay(10000)

Cet exemple imprime l’humidité mesurée toutes les 10 secondes dans le terminal.

getTemperature

  getTemperature()->float

Oxocard-Science uniquement

Renvoie la température actuelle sous forme de float en °C. La température est mesurée avec le capteur SHTC3 avec une précision de ±0,2 °C.

Comme les capteurs de température en général peuvent avoir un décalage important, il est recommandé de calibrer le décalage via le menu des paramètres sur l’Oxocard-Science.

Exemple:

def onDraw():
    temp = getTemperature()
    print(temp)
    delay(10000)

Cet exemple imprime la température mesurée toutes les 10 secondes dans le terminal.

getAcceleration

  getAcceleration()->vector3D

Détermine les valeurs d’accélération actuelles sur les trois axes x,y et z. Les valeurs sont exprimées en milli-G (G ~ 9.81m/s^2). Selon la direction, les valeurs >0 ou <0 sont indiquées.

La valeur de retour est de type vector3D. Cette classe contient trois variables objet x,y, et z qui sont de type float.

Exemple:

def onDraw():
    push()
    fond(0,0,0)
    stroke(255,255,255)
    v:vector3D
    v = getAcceleration()
    v1 = vector(x=v.x,y=v.y)
    v1.mulScalar(90)
    translate(120,120)
    noStroke()
    fill(100,100,100)
    drawCircle(0,0,28)
    noFill()
    stroke(255,255,255)
    drawCircle(-v1.x,v1.y,30)
    update()
    delay(50)
    pop()

Cet exemple dessine une horloge à eau. Lorsque la carte est bien alignée horizontalement, les deux cercles sont centrés.

getButton

  getButton()->byte

Vérifie si un bouton a été pressé.

0 = pas de bouton 1 = au milieu 2 = sur 3 = à droite 4 = vers le bas 5 = à gauche

b = getButton()

Cette fonction ne permet d’interroger qu’UN seul bouton à la fois.

getButtons

  getButtons()->buttons

Vérifie si plusieurs boutons ont été pressés.

La fonction crée un objet de la classe buttons.

La classe est a les variantes d’objet suivantes: up, down, left, right, middle. Ces valeurs ont toutes le type “bool”, c’est-à-dire qu’elles peuvent être true ou false.

Cette fonction permet d’interroger simultanément plusieurs clics de bouton.

def onDraw():
    background(0,0,0)
    b:boutons = getButtons()
    if b.left and b.right:
        background(255,0,0)
    update()

(L'écran ne s'allume en rouge que si l'on appuie à gauche et à droite en même temps).