# Complete project details at https://RandomNerdTutorials.com/micropython-ssd1306-oled-scroll-shapes-esp32-esp8266/
from machine import Pin, SoftI2C
import ssd1306
from time import sleep
import gfx
# ESP32 Pin assignment
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))
# ESP8266 Pin assignment
#i2c = SoftI2C(scl=Pin(5), sda=Pin(4))
oled_width = 128
oled_height = 64
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)
graphics = gfx.GFX(oled_width, oled_height, oled.pixel)
while True:
graphics.line(0, 0, 127, 20, 0) #วาดเส้นตรง
# x0: พิกดั ที่ตาแหน่งเริ่มวาดแกน x
# y0: พิกดั ที่ตาแหน่งเริ่มวาดแกน y
#x1: พิกดั ที่ตาแหน่งทา้ยของการวาดเส้นตรงในแกน x
#y1: พิกดั ที่ตาแหน่งท้ายของการวาดเส้นตรงในแกน y
# 0,1: สีเส้นที่ต้องการแสดง (BLACK, WHITE)
oled.show() #สั่งให้แสดงผล
sleep(2) # หน่วงเวลา
oled.fill(0) # ใส่เลข 0 ล้างหน้าจอดำ ใส่เลข 1 ล้างหน้าจอขาว
graphics.rect(10, 10, 50, 30, 1) #วาดรูปสี่เหลี่ยมแบบโปร่ง
#x0: พิกดั ที่ตาแหน่งเริ่มวาดแกน x
#y0: พิกดั ที่ตาแหน่งเริ่มวาดแกน y
# w: ความกว้างของรูปสี่เหลี่ยม
# h: ความสูงของรูปสี่เหลี่ยม
# 0,1: สีเส้นที่ต้องการแสดง (BLACK, WHITE)
oled.show() #สั่งให้แสดงผล
sleep(2) # หน่วงเวลา
oled.fill(0) # ใส่เลข 0 ล้างหน้าจอดำ ใส่เลข 1 ล้างหน้าจอขาว
graphics.fill_rect(10, 10, 50, 30, 1)#วาดรูปสี่เหลี่ยมแบบโปร่งแบบทึบ
oled.show() #สั่งให้แสดงผล
sleep(2) # หน่วงเวลา
oled.fill(0) # ใส่เลข 0 ล้างหน้าจอดำ ใส่เลข 1 ล้างหน้าจอขาว
graphics.circle(64, 32, 10, 1) #วาดวงกลมแบบโปร่ง
#x0 : พิกดั ที่ตาแหน่งเริ่มวาดแกน x
#y0 : พิกดั ที่ตาแหน่งเริ่มวาดแกน y
#radius: รัศมีของวงกลม
# 0,1: สีเส้นที่ต้องการแสดง (BLACK, WHITE)
oled.show() #สั่งให้แสดงผล
sleep(2) # หน่วงเวลา
oled.fill(0) # ใส่เลข 0 ล้างหน้าจอดำ ใส่เลข 1 ล้างหน้าจอขาว
graphics.fill_circle(64, 32, 10, 1) #วาดวงกลมแบบทึบ
oled.show() #สั่งให้แสดงผล
sleep(2) # หน่วงเวลา
oled.fill(0) # ใส่เลข 0 ล้างหน้าจอดำ ใส่เลข 1 ล้างหน้าจอขาว
graphics.triangle(10,10,55,20,5,40,1)
#x0: พิกดั ที่ตาแหน่งเริ่มวาดแกน x
#y0: พิกดั ที่ตาแหน่งเริ่มวาดแกน y
#x1: พิกดั จุดที่สองของการลากเส้นของแกน x
#y1: พิกดั ที่จุดที่สองของการลากเส้นของแกน y
#x2: พิกดั จุดที่สามของการลากเส้นของแกน x
#y2: พิกดั จุดที่สามของการลากเส้นของแกน y
# 0,1: สีเส้นที่ต้องการแสดง (BLACK, WHITE)
oled.show() #สั่งให้แสดงผล
sleep(2) # หน่วงเวลา
oled.fill(0) # ใส่เลข 0 ล้างหน้าจอดำ ใส่เลข 1 ล้างหน้าจอขาว