Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot:exp54 [2020/06/12 09:53] – [Схема эксперимента] labuser29 | products:laboratory_iot:exp54 [2021/07/21 17:04] (текущий) – [Схема эксперимента] labuser29 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
===== Эксперимент 54. Управление кладовщиком ===== | ===== Эксперимент 54. Управление кладовщиком ===== | ||
- | Научим кладовщика двигаться при нажатии на кнопки " | + | Научим кладовщика двигаться при нажатии на кнопки " |
Подключим кнопки к микроконтроллеру. Три кнопки подтянуты к земле, а одна к питанию. Это сделано специально, | Подключим кнопки к микроконтроллеру. Три кнопки подтянуты к земле, а одна к питанию. Это сделано специально, | ||
Строка 8: | Строка 8: | ||
{{ : | {{ : | ||
- | // | + | // |
+ | {{ : | ||
+ | // | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
Строка 125: | Строка 127: | ||
# init TFT | # init TFT | ||
- | tft.initr() | + | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, |
tft.clear(tft.COLOR_BLACK) #b, g, r | tft.clear(tft.COLOR_BLACK) #b, g, r | ||
Строка 173: | Строка 175: | ||
man.setPos(newPos[0], | man.setPos(newPos[0], | ||
</ | </ | ||
+ | |||
+ | В код прошлого эксперимента мы добавили класс кнопки, | ||
+ | <code python[enable_line_numbers=" | ||
+ | btnUp = Button(16, 1) | ||
+ | btnDown = Button(15, 1) | ||
+ | btnLeft = Button(12, 1) | ||
+ | btnRight = Button(0, 0) | ||
+ | </ | ||
+ | |||
+ | Добавили бесконечный цикл, в котором постоянно мониторим события нажатия на кнопки: | ||
+ | <code python[enable_line_numbers=" | ||
+ | while True: | ||
+ | mPos = man.getPos() | ||
+ | |||
+ | if btnUp.onPress(): | ||
+ | newPos = (mPos[0], mPos[1]-1) | ||
+ | man.setPos(newPos[0], | ||
+ | |||
+ | if btnDown.onPress(): | ||
+ | newPos = (mPos[0], mPos[1]+1) | ||
+ | man.setPos(newPos[0], | ||
+ | |||
+ | if btnLeft.onPress(): | ||
+ | newPos = (mPos[0]-1, mPos[1]) | ||
+ | man.setPos(newPos[0], | ||
+ | |||
+ | if btnRight.onPress(): | ||
+ | newPos = (mPos[0]+1, mPos[1]) | ||
+ | man.setPos(newPos[0], | ||
+ | </ | ||
+ | |||
+ | При нажатии на кнопку " |