Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:laboratory_iot:exp52 [2020/06/11 20:54] – создано labuser29 | products:laboratory_iot:exp52 [2021/07/21 16:55] (текущий) – [Программный код эксперимента] labuser29 | ||
|---|---|---|---|
| Строка 7: | Строка 7: | ||
| </ | </ | ||
| + | Отображать игру будем на TFT дисплее, | ||
| + | Отображать графику будем с помощью // | ||
| + | |||
| + | <WRAP center round download 60%> | ||
| + | {{ : | ||
| + | </ | ||
| + | |||
| + | Начнем с построения игрового поля — лабиринта. Нужно описать в каких клетках есть стена, а в каких нет. Проще всего это сделать с помощью двумерного массива. Число 1 будет обозначать наличие стены, а 0 — ее отсутствие. | ||
| + | |||
| + | ==== Схема эксперимента ==== | ||
| + | |||
| + | {{ : | ||
| + | // | ||
| + | |||
| + | {{ : | ||
| + | // | ||
| + | ==== Программный код эксперимента ==== | ||
| + | |||
| + | <file python Exp52.py[enable_line_numbers=" | ||
| + | from machine import Pin, SPI | ||
| + | from tft import TFT_GREEN | ||
| + | _init() | ||
| + | machine.freq(160000000) | ||
| + | |||
| + | |||
| + | dc = Pin(4, Pin.OUT) | ||
| + | cs = Pin(2, Pin.OUT) | ||
| + | rst = Pin(5, Pin.OUT) | ||
| + | spi = SPI(1, baudrate=40000000, | ||
| + | |||
| + | tft = TFT_GREEN(128, | ||
| + | |||
| + | Map = [ | ||
| + | [1, | ||
| + | [0, | ||
| + | [1, | ||
| + | [0, | ||
| + | [0, | ||
| + | [1, | ||
| + | [1, | ||
| + | [1, | ||
| + | [1, | ||
| + | [1, | ||
| + | ] | ||
| + | |||
| + | |||
| + | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, | ||
| + | tft.clear(tft.COLOR_BLACK) | ||
| + | |||
| + | x = 0 | ||
| + | y = 0 | ||
| + | |||
| + | for row in Map: | ||
| + | for col in row: | ||
| + | if col: | ||
| + | tft.draw_bmp(x * 16, y * 16,' | ||
| + | x+=1 | ||
| + | x=0 | ||
| + | y+=1 | ||
| + | </ | ||
| + | |||
| + | Мы объявили двумерный массив '' | ||