Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| 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], | ||
| + | </ | ||
| + | |||
| + | При нажатии на кнопку " | ||