rotary almost works

This commit is contained in:
PiFestim 2022-07-29 17:50:32 +01:00
parent 1a2adbffdf
commit 8abf5ba17d

38
main.py
View File

@ -5,11 +5,41 @@ import datetime
import asyncio import asyncio
import os import os
from itertools import cycle from itertools import cycle
from RPi import GPIO
from time import sleep
from itertools import cycle
from rotary import main_loop as rotary
bands = {
"80m":[3.5, 4],
"40m":[7, 7.3],
"20m":[14, 14.35],
"10m":[28, 29.7],
"2m":[144,146],
"70cm":[430,440]
}
# Setup for encoder
band = cycle(bands)
CURRENT_BAND = None
step = 0.025
clk=17
dt=27
sw=22
GPIO.setmode(GPIO.BCM)
GPIO.setup(clk, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(dt, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
GPIO.setup(sw, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
counter = 0
clkLastState = GPIO.input(clk)
# 1. Hook up the screen and buttons # 1. Hook up the screen and buttons
# * the screen should show the frequency we're at # * the screen should show the frequency we're at
# * read the buttons # * read the buttons
# 2. Encoder # 2. Encoder [x]
# * Change frequency in the scope of a given band # * Change frequency in the scope of a given band
PTT_IS_ON:bool = False PTT_IS_ON:bool = False
FREQUENCY:float = float(430) FREQUENCY:float = float(430)
@ -40,16 +70,18 @@ async def button_press(gpio:int, level):
async def frequency(gpio): # async def frequency(gpio):
# TODO write this function after hooking up the encoder # # TODO write this function after hooking up the encoder
async def main(freq:float): async def main(freq:float):
# TODO change after figuring out the logic # TODO change after figuring out the logic
task_created = False task_created = False
asyncio.create_task(rotary)
print("Ready") print("Ready")
while True: while True:
await button_press(gpio, level) await button_press(gpio, level)
if (PTT_IS_ON and not task_created): if (PTT_IS_ON and not task_created):
asyncio.create_task(run_command(MODULATION, str(freq))) asyncio.create_task(run_command(MODULATION, str(freq)))
task_created = True task_created = True