def TFT_setup(self, spi, dc, reset, cs):

        # setup TFT
        tft = TFT(spi=spi, aDC=dc, aReset=reset, aCS=cs)
        tft.initr()
        tft.rgb(True)
        tft.rotation(3)
        tft.fill(tft.BLACK)
        tft.text((0, 0), ESPCAM_VERSION, tft.WHITE, terminalfont)
        return tft
Esempio n. 2
0
          polarity=0,
          phase=0,
          sck=Pin(SPI_SCLK),
          mosi=Pin(SPI_MOSI),
          miso=Pin(SPI_MISO))
tft = TFT(spi, DC, RST, CS)
tft.initr()
tft.rgb(True)

tft.fill(TFT.BLACK)
v = 30
tft.text((0, v), "octopus LAB (1)", TFT.RED, sysfont, 1, nowrap=True)
v += sysfont["Height"]

tft.fill(TFT.BLACK)
tft.rotation(1)

# size = 3
cursor = Point2D(63, 81)
matrix = Point2D(63 / 3, 81 / 3)
mx = {}  # set

tft.fill(TFT.BLACK)
tft.fillrect((cursor.x, cursor.y), (4, 4), TFT.WHITE)


def position(dx, dy):
    global mx  # cursor, fb, tft
    cursor.x = cursor.x + dx * 3
    cursor.y = cursor.y + dy * 3
    matrix.x = matrix.x + dx
Esempio n. 3
0
    global Lcd_LEDCount, LCD_LEDSet
    Lcd_LEDCount = Lcd_LEDCount + 1
    if Lcd_LEDCount == 10:
        Lcd_LEDCount = 0
    if LCD_LEDSet > Lcd_LEDCount:
        lcd_led.value(0)
    else:
        lcd_led.value(1)


lcd_led_tim = pyb.Timer(2)
lcd_led_tim.init(freq=4000)  # Freq: 4KHz
lcd_led_tim.callback(LCD_LEDCtrl)
tft = TFT(spi2, dc, rst, cs)
tft.init_7735(TFT.REDTAB)
tft.rotation(2)
tft.rgb(True)


def display_weact_logo():
    tft.fill(TFT.BLACK)
    f = open('WeAct_logo_128_160.bmp', 'rb')
    if f.read(2) == b'BM':  # header
        dummy = f.read(8)  # file size(4), creator bytes(4)
        offset = int.from_bytes(f.read(4), 'little')
        hdrsize = int.from_bytes(f.read(4), 'little')
        width = int.from_bytes(f.read(4), 'little')
        height = int.from_bytes(f.read(4), 'little')
        buf = bytearray(width * 2)  # init buf
        if int.from_bytes(f.read(2), 'little') == 1:  # planes must be 1
            depth = int.from_bytes(f.read(2), 'little')
Esempio n. 4
0
                    if flip:
                        pos = offset + (height - 1 - row) * rowsize
                    else:
                        pos = offset + row * rowsize
                    if f.tell() != pos:
                        dummy = f.seek(pos)
                    for col in range(w):
                        bgr = f.read(3)
                        _tft._pushcolor(TFTColor(bgr[2], bgr[1], bgr[0]))
            else:
                print(FileName + 'is not 24bit pic')


tft = TFT(spi, dc, rst, cs)
tft.init_7735(TFT.GREENTAB80x160)
tft.rotation(3)
LCD_ShowBmp(tft, 'WeActStudiologo.bmp')
time.sleep(50)
LCD_LEDSet = 1
time.sleep(1000)
tft.fill(TFT.BLACK)
tft.text((0, 30), 'Hello WeAct!', TFT.WHITE, sysfont, 2, nowrap=False)

sensor.reset()  # Reset and initialize the sensor.
sensor.set_pixformat(
    sensor.RGB565)  # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)  # Set frame size to QVGA (320x240)

if sensor.get_id() == sensor.OV7725:
    sensor.set_hmirror(True)
    sensor.set_vflip(True)
Esempio n. 5
0
    1,
    baudrate=27000000,
    polarity=0,
    phase=0,
    bits=8,
    firstbit=machine.SPI.MSB,
    sck=machine.Pin(13),
    mosi=machine.Pin(15)
)  # Set baudrate way high but will be clamped to a maximum in SPI constructor
tft = TFT(spi, 23, 18, 5)
tft.initr()  # Initialize LCD screen
tft.invertcolor(
    True
)  # This is required for RGB to be parsed correctly (for some reason, 0x00 and 0xFF are flipped on normal mode)
tft.rgb(True)
tft.rotation(3)  # Rotate to landscape mode
tft.fill(
)  # We use black background since text chars would be encapsulated by black background, not transparent

tft.text((20, 40), 'deLIGHT', TFT.YELLOW, sysfont, 3, nowrap=True)
tft.text((20, 70), 'Wi-Fi', TFT.CYAN, sysfont, 2, nowrap=True)


def station():
    # Enable station interface
    sta = network.WLAN(network.STA_IF)
    sta.active(True)

    # Main station loop
    while True:
        scan_result = sta.scan()
Esempio n. 6
0
class RINGO(object):
    def __init__(self):
        self.font1 = {
            "Width":
            6,
            "Height":
            8,
            "Start":
            32,
            "End":
            127,
            "Data":
            bytearray([
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x5F,
                0x06, 0x00, 0x00, 0x07, 0x03, 0x00, 0x07, 0x03, 0x00, 0x24,
                0x7E, 0x24, 0x7E, 0x24, 0x00, 0x24, 0x2B, 0x6A, 0x12, 0x00,
                0x00, 0x63, 0x13, 0x08, 0x64, 0x63, 0x00, 0x36, 0x49, 0x56,
                0x20, 0x50, 0x00, 0x00, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00,
                0x3E, 0x41, 0x00, 0x00, 0x00, 0x00, 0x41, 0x3E, 0x00, 0x00,
                0x00, 0x08, 0x3E, 0x1C, 0x3E, 0x08, 0x00, 0x08, 0x08, 0x3E,
                0x08, 0x08, 0x00, 0x00, 0xE0, 0x60, 0x00, 0x00, 0x00, 0x08,
                0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
                0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49,
                0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, 0x62,
                0x51, 0x49, 0x49, 0x46, 0x00, 0x22, 0x49, 0x49, 0x49, 0x36,
                0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x2F, 0x49, 0x49,
                0x49, 0x31, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30, 0x00, 0x01,
                0x71, 0x09, 0x05, 0x03, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36,
                0x00, 0x06, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x6C, 0x6C,
                0x00, 0x00, 0x00, 0x00, 0xEC, 0x6C, 0x00, 0x00, 0x00, 0x08,
                0x14, 0x22, 0x41, 0x00, 0x00, 0x24, 0x24, 0x24, 0x24, 0x24,
                0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59,
                0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x55, 0x1E, 0x00, 0x7E,
                0x11, 0x11, 0x11, 0x7E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36,
                0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41,
                0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F,
                0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A,
                0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F,
                0x41, 0x00, 0x00, 0x30, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x7F,
                0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40,
                0x00, 0x7F, 0x02, 0x04, 0x02, 0x7F, 0x00, 0x7F, 0x02, 0x04,
                0x08, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F,
                0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E,
                0x00, 0x7F, 0x09, 0x09, 0x19, 0x66, 0x00, 0x26, 0x49, 0x49,
                0x49, 0x32, 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00, 0x3F,
                0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F,
                0x00, 0x3F, 0x40, 0x3C, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08,
                0x14, 0x63, 0x00, 0x07, 0x08, 0x70, 0x08, 0x07, 0x00, 0x71,
                0x49, 0x45, 0x43, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00,
                0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41,
                0x7F, 0x00, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x80, 0x80,
                0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x03, 0x07, 0x00, 0x00,
                0x00, 0x20, 0x54, 0x54, 0x54, 0x78, 0x00, 0x7F, 0x44, 0x44,
                0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, 0x38,
                0x44, 0x44, 0x44, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x08,
                0x00, 0x08, 0x7E, 0x09, 0x09, 0x00, 0x00, 0x18, 0xA4, 0xA4,
                0xA4, 0x7C, 0x00, 0x7F, 0x04, 0x04, 0x78, 0x00, 0x00, 0x00,
                0x00, 0x7D, 0x40, 0x00, 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00,
                0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x00, 0x7F,
                0x40, 0x00, 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78, 0x00, 0x7C,
                0x04, 0x04, 0x78, 0x00, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38,
                0x00, 0xFC, 0x44, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44,
                0x44, 0xFC, 0x00, 0x44, 0x78, 0x44, 0x04, 0x08, 0x00, 0x08,
                0x54, 0x54, 0x54, 0x20, 0x00, 0x04, 0x3E, 0x44, 0x24, 0x00,
                0x00, 0x3C, 0x40, 0x20, 0x7C, 0x00, 0x00, 0x1C, 0x20, 0x40,
                0x20, 0x1C, 0x00, 0x3C, 0x60, 0x30, 0x60, 0x3C, 0x00, 0x6C,
                0x10, 0x10, 0x6C, 0x00, 0x00, 0x9C, 0xA0, 0x60, 0x3C, 0x00,
                0x00, 0x64, 0x54, 0x54, 0x4C, 0x00, 0x00, 0x08, 0x3E, 0x41,
                0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x00,
                0x41, 0x41, 0x3E, 0x08, 0x00, 0x02, 0x01, 0x02, 0x01, 0x00,
                0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C
            ])
        }
        #updated pins/buttons
        self.BTN_1 = 0
        self.BTN_2 = 1
        self.BTN_3 = 2
        self.BTN_4 = 3
        self.BTN_5 = 4
        self.BTN_6 = 5
        self.BTN_7 = 6
        self.BTN_8 = 7
        self.BTN_9 = 8
        self.BTN_ASTERISK = 9
        self.BTN_0 = 10
        self.BTN_HASHTAG = 11
        self.BTN_FUN_RIGHT = 12
        self.BTN_FUN_LEFT = 15
        self.BTN_A = 16
        self.BTN_B = 17
        #obsolete buttons, successor - readJoystickX/Y()
        # self.BTN_UP = 18
        # self.BTN_DOWN = 19
        # self.BTN_LEFT = 20
        # self.BTN_RIGHT = 21

        self._BL_PIN = 21
        self._PIXELS_PIN = 12
        self._SIM_PIXELS_ENABLE_PIN = 26
        self._NUM_PIXELS = 8

        self.i2c = I2C(scl=Pin(27), sda=Pin(14), freq=100000)  #ok
        self.buttons = buttons()
        #self.buttons = PCA9539(self.i2c, 0x21) #21 for main buttons, 20 for numerical keypad
        self.spi = SPI(2,
                       baudrate=20000000,
                       polarity=0,
                       phase=0,
                       sck=Pin(18),
                       mosi=Pin(23),
                       miso=Pin(19))  #ok
        self.display = TFT(self.spi, 0, 2, 4)  #ok
        self.display.initr()
        self.display.rgb(True)
        self.display.rotation(1)  #rotation changed to 1 (top left)
        self.display.fill(0)
        self.pixels = NeoPixel(Pin(self._PIXELS_PIN, Pin.OUT),
                               self._NUM_PIXELS,
                               timing=True)

        self.BLACK = 0
        self.RED = self.display.RED
        self.MAROON = self.display.MAROON
        self.GREEN = self.display.GREEN
        self.FOREST = self.display.FOREST
        self.BLUE = self.display.BLUE
        self.NAVY = self.display.NAVY
        self.CYAN = self.display.CYAN
        self.YELLOW = self.display.YELLOW
        self.PURPLE = self.display.PURPLE
        self.WHITE = self.display.WHITE
        self.GRAY = self.display.GRAY

        Pin(self._BL_PIN, Pin.OUT).value(0)

    def collideRectRect(self, x1, y1, w1, h1, x2, y2, w2, h2):
        return (x2 < x1 + w1 and x2 + w2 > x1 and y2 < y1 + h1
                and y2 + h2 > y1)

    def backlight(self, bl):
        PWM(Pin(self._BL_PIN)).duty(bl)
        return

    def cls(self):
        print("\x1B\x5B2J", end="")
        print("\x1B\x5BH", end="")
        return