Tecnologia vestible

Per començar Elements d'entrada Programació CircuitPython   Recursos CITCEA
Elements no electrònics Elements de sortida Programació Arduino    
Projectes Elements de control Dades pràctiques   Inici

Utilitats

Temps d'espera (sleep)

En molts programes és necessari que el microcontrolador esperi un temps abans d'executar la instrucció següent. Això habitualment es resol amb la instrucció sleep que està a la biblioteca time.

La funció sleep realitza una pausa de la durada que li indiquem. Aquesta durada s'ha d'indicar en segons.

import time
    time.sleep(0.5)  # Pausa de mig segon

Gestió del temps (monotonic)

La funció monotonic ens dóna un valor de tipus float que correspon al temps transcorregut, en segons. Podem fer servir els valors que ens dóna aquesta funció per controlar el temps transcorregut. Per exemple:

import time
...
darrer_valor = time.monotonic()
while True:
    actual = time.monotonic()
    if actual - darrer_valor >= 1.0:    # Ha passat 1 s
        darrer_valor = actual
        ...

Valors aleatoris (random)

La funció random ens dóna un nombre real entre 0 i 1 escollit aleatòriament.

import time
import random
while True:
    a = random.random()
    print(a)
    time.sleep(1)

La funció random no genera nombres aleatoris sinó pseudo-aleatoris, és a dir que tenen un patró de repetició. Si volem millorar l'aleatòrietat convé combinar-ho amb la funció seed que permet donar un valor d'inici o llavor diferent cada vegada. El més habitual és agafar com a llavor la lectura d'una entrada analògica que no estigui connectada perquè així només llegim soroll que, en principi, és aleatori.

import board
import time
import analogio
import random
soroll = analogio.AnalogIn(board.A3)
random.seed(soroll.value)
while True:
    a = random.random()
    print(a)
    time.sleep(1)

La funció randint ens dóna un nombre enter, en un intèrval especificat, escollit aleatòriament.

import time
import random
while True:
    a = random.randint(0, 100)
    print(a)
    time.sleep(1)

Memòria disponible

La funció mem_free ens dóna la quantitat de memòria que queda disponible al microcontrolador.

import gc
print(gc.mem_free())

Temperatura del microcontrolador

En alguns microcontroladors tenim una utilitat que ens permet saber la temperatura interna del processador (no la temperatura ambient).

import microcontroller
print(microcontroller.cpu.temperature, " C")

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Llicència de Creative Commons
Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.