Adafruit_Learning_System_Gu.../CircuitPython_Knob_Sketcher/bigger_sketcher.py
2018-12-30 12:39:35 -08:00

48 lines
1.1 KiB
Python
Executable file

import board
import busio
import adafruit_ssd1306
from simpleio import map_range
from analogio import AnalogIn
from digitalio import DigitalInOut, Direction, Pull
# Create SPI bus
spi = busio.SPI(board.SCK, board.MOSI)
# Create the display
WIDTH = 128
HEIGHT = 64
DC = DigitalInOut(board.D7)
CS = DigitalInOut(board.D9)
RST = DigitalInOut(board.D10)
display = adafruit_ssd1306.SSD1306_SPI(WIDTH, HEIGHT, spi, DC, RST, CS)
display.fill(0)
display.show()
# Create the knobs
READS = 5
x_knob = AnalogIn(board.A0)
y_knob = AnalogIn(board.A1)
# Create the clear button
clear_button = DigitalInOut(board.D12)
clear_button.direction = Direction.INPUT
clear_button.pull = Pull.UP
def read_knobs(reads):
avg_x = avg_y = 0
for _ in range(reads):
avg_x += x_knob.value
avg_y += y_knob.value
avg_x /= reads
avg_y /= reads
x_screen = map_range(avg_x, 0, 65535, 0, WIDTH - 1)
y_screen = map_range(avg_y, 0, 65535, 0, HEIGHT - 1)
return int(x_screen), int(y_screen)
while True:
while clear_button.value:
x, y = read_knobs(READS)
display.pixel(x, y, 1)
display.show()
display.fill(0)
display.show()