Damien George
10 years ago
2 changed files with 132 additions and 0 deletions
@ -0,0 +1,127 @@ |
|||||
|
Quick reference for the pyboard |
||||
|
===================================== |
||||
|
|
||||
|
.. image:: http://micropython.org/static/resources/pybv10-pinout.jpg |
||||
|
:alt: AMP skin |
||||
|
:width: 600px |
||||
|
|
||||
|
General board control |
||||
|
--------------------- |
||||
|
:: |
||||
|
|
||||
|
import pyb |
||||
|
|
||||
|
pyb.delay(50) # wait 50 milliseconds |
||||
|
pyb.millis() # number of milliseconds since bootup |
||||
|
pyb.repl_uart(pyb.UART(1, 9600)) # duplicate REPL on UART(1) |
||||
|
pyb.wfi() # pause CPU, waiting for interrupt |
||||
|
pyb.freq() # get CPU and bus frequencies |
||||
|
pyb.freq(60000000) # set CPU freq to 60MHz |
||||
|
pyb.stop() # stop CPU, waiting for external interrupt |
||||
|
|
||||
|
LEDs |
||||
|
---- |
||||
|
:: |
||||
|
|
||||
|
from pyb import LED |
||||
|
|
||||
|
led = LED(1) # red led |
||||
|
led.toggle() |
||||
|
led.on() |
||||
|
led.off() |
||||
|
|
||||
|
Pins and GPIO |
||||
|
------------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import Pin |
||||
|
|
||||
|
p_out = Pin('X1', Pin.OUT_PP) |
||||
|
p_out.high() |
||||
|
p_out.low() |
||||
|
|
||||
|
p_in = Pin('X2', Pin.IN, Pin.PULL_UP) |
||||
|
p_in.value() # get value, 0 or 1 |
||||
|
|
||||
|
External interrupts |
||||
|
------------------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import Pin, ExtInt |
||||
|
|
||||
|
callback = lambda e: print("intr") |
||||
|
ext = ExtInt(Pin('Y1'), ExtInt.IRQ_RISING, Pin.PULL_NONE, callback) |
||||
|
|
||||
|
Timers |
||||
|
------ |
||||
|
:: |
||||
|
|
||||
|
from pyb import Timer |
||||
|
|
||||
|
tim = Timer(1, freq=1000) |
||||
|
tim.counter() # get counter value |
||||
|
tim.freq(0.5) # 0.5 Hz |
||||
|
tim.callback(lambda t: pyb.LED(1).toggle()) |
||||
|
|
||||
|
PWM (pulse width modulation) |
||||
|
---------------------------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import Pin, Timer |
||||
|
|
||||
|
p = Pin('X1') # X1 has TIM2, CH1 |
||||
|
tim = Timer(2, freq=1000) |
||||
|
ch = tim.channel(1, Timer.PWM, pin=p) |
||||
|
ch.pulse_width_percent(50) |
||||
|
|
||||
|
ADC (analog to digital conversion) |
||||
|
---------------------------------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import Pin, ADC |
||||
|
|
||||
|
adc = ADC(Pin('X19')) |
||||
|
adc.read() # read value, 0-4095 |
||||
|
|
||||
|
DAC (digital to analog conversion) |
||||
|
---------------------------------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import Pin, DAC |
||||
|
|
||||
|
dac = DAC(Pin('X5')) |
||||
|
dac.write(120) # output between 0 and 255 |
||||
|
|
||||
|
UART (serial bus) |
||||
|
----------------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import UART |
||||
|
|
||||
|
uart = UART(1, 9600) |
||||
|
uart.write('hello') |
||||
|
uart.read(5) # read up to 5 bytes |
||||
|
|
||||
|
SPI bus |
||||
|
------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import SPI |
||||
|
|
||||
|
spi = SPI(1, SPI.MASTER, baudrate=200000, polarity=1, phase=0) |
||||
|
spi.send('hello') |
||||
|
spi.recv(5) # receive 5 bytes on the bus |
||||
|
spi.send_recv('hello') # send a receive 5 bytes |
||||
|
|
||||
|
I2C bus |
||||
|
------- |
||||
|
:: |
||||
|
|
||||
|
from pyb import I2C |
||||
|
|
||||
|
i2c = I2C(1, I2C.MASTER, baudrate=100000) |
||||
|
i2c.scan() # returns list of slave addresses |
||||
|
i2c.send('hello', 0x42) # send 5 bytes to slave with address 0x42 |
||||
|
i2c.recv(5, 0x42) # receive 5 bytes from slave |
||||
|
i2c.mem_read(2, 0x42, 0x10) # read 2 bytes from slave 0x42, slave memory 0x10 |
||||
|
i2c.mem_write('xy', 0x42, 0x10) # write 2 bytes to slave 0x42, slave memory 0x10 |
Loading…
Reference in new issue