# Skrolli 2019.3: BPI-Bit, ESP32 ja MicroPython – Listaukset import time, machine led = machine.Pin(18, machine.Pin.OUT) while True: led.value(1) time.sleep_ms(500) led.value(0) time.sleep_ms(500) import network wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect('verkonnimi','verkonsalasana') import network ap = network.WLAN(network.AP_IF) ap.active(True) ap.config(essid='omatukiasema', authmode=network.AUTH_WPA_WPA2_PSK, password="salasana") import network wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect('verkonnimi','verkonsalasana') def mem(): import micropython micropython.mem_info() import webrepl webrepl.start() import machine led = machine.Pin(18, machine.Pin.OUT) timer = machine.Timer(0) def blink(timer): led.value(not led.value()) timer.init(period=500, mode=machine.Timer.PERIODIC, callback=blink) import sys del sys.modules["ohjelma"] import machine def buttonA(pin): print("Nappi A!") def buttonB(pin): print("Nappi B!") p35 = machine.Pin(35, machine.Pin.IN, machine.Pin.PULL_UP) p27 = machine.Pin(27, machine.Pin.IN, machine.Pin.PULL_UP) p35.irq(trigger=machine.Pin.IRQ_FALLING, handler=buttonA) p27.irq(trigger=machine.Pin.IRQ_FALLING, handler=buttonB) import machine, time pwm = machine.PWM(machine.Pin(25)) pwm.freq(500) pwm.duty(512) time.sleep_ms(500) pwm.deinit() import machine, time sensor1 = machine.ADC(machine.Pin(36)) sensor2 = machine.ADC(machine.Pin(39)) sensor1.atten(machine.ADC.ATTN_11DB) sensor2.atten(machine.ADC.ATTN_11DB) while True: print('vasen:%5d oikea:%5d' % (sensor1.read(), sensor2.read())) time.sleep_ms(500) import machine, math adc = machine.ADC(machine.Pin(34)) adc.atten(adc.ATTN_11DB) data = adc.read() Rt = 4095*4700/data - 4700 temperature = round(1 / (math.log(Rt / 10000) / 3950 + (1 / (25 + 273.15))) - 273.15) print(temperature) import machine, struct i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21)) data = i2c.readfrom_mem(0x69, 0x41, 2) temperature = round(struct.unpack('>H', data)[0] / 333.87 + 21.0) print(temperature) import machine, neopixel, random np_enabled = machine.Pin(2, machine.Pin.OUT) np_enabled.value(1) np = neopixel.NeoPixel(machine.Pin(4), 25) sydan = [14, 8, 2, 1, 5, 11, 15, 21, 22, 18]; while True: for pixel in sydan: r = random.randint(0,1)*50 g = random.randint(0,1)*50 b = random.randint(0,1)*50 np[pixel] = (r, g, b) np.write() time.sleep_ms(100) # Listaa hakemiston tiedostot def ls(): import os print(os.listdir()) # Näytä tiedoston sisältö, esim. cat(“boot.py”) def cat(filename): file = open(filename, "r") while True: data=file.readline() if data=='': break print(data.rstrip()) file.close() # Poistaa moduulin tai ohjelman muistista, esim. unload(omaohjelma) def unload(mod): mod_name = mod.__name__ import sys if mod_name in sys.modules: del sys.modules[mod_name] # Ajaa ohjelman, esim. run(omaohjelma) def run(mod): unload(mod) __import__(mod.__name__) # Näyttää vapaan käyttömuistin määrän def mem(): import micropython micropython.mem_info() # Näyttää vapaan flash-muistin määrän def df(): import os s = os.statvfs('//') return ('{0} MB'.format((s[0]*s[3])/1048576)) # Vaihtaa hakemistoa, esim. cd(“omahakemisto”) def cd(dir): import os os.chdir(dir) # Luo hakemiston, esim. md(“omahakemisto”) def md(dir): import os os.mkdir(dir) import machine i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21)) i2c.scan() data = i2c.readfrom_mem(0x69, 0x75, 1) i2c.writeto_mem(0x69, 0x37, b'\x02') MPU9250 = 0x69 MAG = 0x0c import machine, ubinascii, time, struct i2c = machine.I2C(scl=machine.Pin(22), sda=machine.Pin(21)) # tunnista (0x71 = MPU-9520) dev1 = i2c.readfrom_mem(MPU9250, 0x75, 1) print(ubinascii.hexlify(dev1)) # aseta magnetometri näkyväksi I2C-väylälle i2c.writeto_mem(0x69, 0x37, b'\x02') # tunnista (0x48 = AK8963) dev2 = i2c.readfrom_mem(MAG, 0x00, 1) print(ubinascii.hexlify(dev2)) # aseta magnetometrin asetukset: 16-bittiset arvot ja jatkuva lukeminen i2c.writeto_mem(MAG, 0x0a, b'\x16') while True: data = i2c.readfrom_mem(MPU9250, 0x43, 6) gyro = struct.unpack('>HHH', data) print(gyro) # gx, gy, gz data = i2c.readfrom_mem(MPU9250, 0x3B, 6) acc = struct.unpack('>HHH', data) print(acc) # ax, ay, az data = i2c.readfrom_mem(MPU9250, 0x03, 6) mag = struct.unpack('>HHH', data) print(mag) # mx, my, mz time.sleep_ms(1000)