Создание меню, в котором опции могут взаимодействовать с кнопками на R-Pi и отображать их на ЖК-дисплее - PullRequest
0 голосов
/ 18 октября 2018

Как я уже сказал, я хочу создать меню, которое может взаимодействовать с помощью кнопок.В настоящее время я программирую в R-Pi 3 Model 3. Программа, которую я придумаю, выглядит так, как показано ниже.Я сделал первый слой меню, но вы можете помочь мне выбрать один из них и создать меню внутри каждого из них.Мне нужна помощь на стороне программирования.Что я спрашиваю, так это то, что если у меня есть четыре основных меню, таких как: фрукты, овощи, одежда и обувь.Но когда я нахожусь на Овощах, и я нажимаю другую кнопку, то я вхожу в это подменю, например, показываю различные овощи, такие как горох, капуста, шпинат и т. Д., И еще одну кнопку, чтобы вернуться назад.У меня есть максимум четыре кнопки для взаимодействия с меню.

from RPLCD import CharLCD, cleared, cursor
import RPi.GPIO as GPIO
import time
from gpiozero import Button
GPIO.setmode(GPIO.BCM)
GPIO.setup(5, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(25, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(26, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(19, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(20, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(21, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)

lcd = CharLCD(numbering_mode=GPIO.BCM, cols=16, rows=2, pin_rs=13, 
pin_e=6, pins_data=[5,22,17,27,12,25,24,23])

Nbutton = Button(19, pull_up=False, bounce_time=0.001)
Ubutton = Button(26, pull_up=False, bounce_time=0.001)

def Fruits():
    lcd.cursor_pos = (0, 0)
    lcd.write_string("Fruits-1")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("Fruits-2")

def Vegetables():
    lcd.cursor_pos = (0, 0)
    lcd.write_string("Vegetables-1")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("Vegetables-2")

def Clothes():
    lcd.cursor_pos = (0, 0)
    lcd.write_string("Clothes-1")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("Clothes-2")

def Shoes():
    lcd.cursor_pos = (0, 0)
    lcd.write_string("Shoes-1")
    lcd.cursor_pos = (1, 0)
    lcd.write_string("Shoes-2")

count=0
try:
    while 1:    
        for count in range(0,4):
            Nbutton.wait_for_press()
            count = count +1
            print (count, "presses so far")
            if count == 1:
                Fruits()
            elif count == 2:
                Vegetables()
            elif count == 3:
                Clothes()
            elif count == 4:
                Shoes()
            else:
                pass
            time.sleep(0.3)

except:
    pass

finally:
    lcd.clear()
    GPIO.cleanup()
...