Made main.py a little lighter in generic var and functionality, added led functionality.
This commit is contained in:
@@ -0,0 +1,19 @@
|
|||||||
|
from machine import Pin, I2C
|
||||||
|
|
||||||
|
LED1 = Pin(16, Pin.OUT)
|
||||||
|
LED2 = Pin(17, Pin.OUT)
|
||||||
|
|
||||||
|
def green():
|
||||||
|
LED2.on()
|
||||||
|
|
||||||
|
def red():
|
||||||
|
LED1.on()
|
||||||
|
|
||||||
|
def off(c):
|
||||||
|
if c == "g" or c == "green":
|
||||||
|
LED2.off()
|
||||||
|
elif c == "r" or c == "red":
|
||||||
|
LED1.off()
|
||||||
|
else:
|
||||||
|
LED1.off()
|
||||||
|
LED2.off()
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
import var
|
||||||
|
import gen
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
|
#This'll get done one century
|
||||||
|
|
||||||
|
def run():
|
||||||
|
gen.cls()
|
||||||
|
var.oled.text("Coming soon",0,0)
|
||||||
|
var.oled.show()
|
||||||
|
time.sleep(5)
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
import var
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def cls():#clear screen
|
||||||
|
var.oled.fill(0)
|
||||||
|
var.oled.show()
|
||||||
|
|
||||||
|
def smm(inp):#system_menu_master
|
||||||
|
eval(inp + "()")
|
||||||
@@ -2,11 +2,16 @@ from machine import Pin, I2C
|
|||||||
from ssd1306 import SSD1306_I2C
|
from ssd1306 import SSD1306_I2C
|
||||||
import time
|
import time
|
||||||
import bme280
|
import bme280
|
||||||
|
import LED #LED systems
|
||||||
|
import var #Common variables
|
||||||
|
import test_program #A simple hardware test program
|
||||||
|
import gen #Generic functions
|
||||||
|
import calculator
|
||||||
|
|
||||||
|
|
||||||
# Screen is 128 x 32px
|
# Screen is 128 x 32px
|
||||||
# Screen runs on gp0(sda) and gp1(scl)
|
# Screen runs on gp0(sda) and gp1(scl)
|
||||||
# Expansion modules run on pins GP3-GP15
|
# Expansion modules run on pins GP3-GP15 (excluding gp9)
|
||||||
# See pi pico pinout for specific pin capabilities
|
# See pi pico pinout for specific pin capabilities
|
||||||
# Modules can only be fed 3.n volts. 5 volt module support may be added in the future with a per-port switch.
|
# Modules can only be fed 3.n volts. 5 volt module support may be added in the future with a per-port switch.
|
||||||
# To add an app or module software; Write the module in the dedicated block. In the future apps and module software will be seperate files.
|
# To add an app or module software; Write the module in the dedicated block. In the future apps and module software will be seperate files.
|
||||||
@@ -14,73 +19,65 @@ import bme280
|
|||||||
# 3D printing files will also be available soon for a shell.
|
# 3D printing files will also be available soon for a shell.
|
||||||
|
|
||||||
|
|
||||||
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
|
|
||||||
oled = SSD1306_I2C(128, 32, i2c)
|
|
||||||
button1 = Pin(19, Pin.IN, Pin.PULL_DOWN) #Up
|
|
||||||
button2 = Pin(20, Pin.IN, Pin.PULL_DOWN) #Right
|
|
||||||
button3 = Pin(18, Pin.IN, Pin.PULL_DOWN) #Down
|
|
||||||
button4 = Pin(21, Pin.IN, Pin.PULL_DOWN) #Left
|
|
||||||
button5 = Pin(27, Pin.IN, Pin.PULL_DOWN) #Menu_1 / enter
|
|
||||||
button6 = Pin(22, Pin.IN, Pin.PULL_DOWN) #Menu_2
|
|
||||||
button7 = Pin(28, Pin.IN, Pin.PULL_DOWN) #Menu_3
|
|
||||||
button8 = Pin(26, Pin.IN, Pin.PULL_DOWN) #Menu_4
|
|
||||||
|
|
||||||
version = 0.1
|
|
||||||
|
|
||||||
is_menu = True
|
is_menu = True
|
||||||
is_app_menu = False
|
is_app_menu = False
|
||||||
is_module_menu = False
|
is_module_menu = False
|
||||||
|
|
||||||
menu_item = 0
|
menu_item = 0
|
||||||
app_menu_item = 0
|
app_menu_item = 1
|
||||||
module_menu_item = 1
|
module_menu_item = 0
|
||||||
|
|
||||||
home_items = ["home", "apps", "modules", "info"]
|
home_items = ["home", "apps", "modules", "info"]
|
||||||
app_list = ["calculator","home"]
|
app_list = ["home", "calculator.run", "test_program.run"]
|
||||||
module_list = ["home", "emf", "flashlight"]
|
module_list = ["home"]
|
||||||
|
|
||||||
def startup():
|
def startup():
|
||||||
oled.text("Fossdeck", 16, 0)
|
var.oled.text("Fossdeck", 16, 0)
|
||||||
oled.text("Mk0",36,10)
|
var.oled.text("Mk0",36,10)
|
||||||
oled.text("WFX Engineering",0,25)
|
var.oled.text("WFX Engineering",0,25)
|
||||||
oled.show()
|
var.oled.show()
|
||||||
|
LED.green()
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
cls()
|
gen.cls()
|
||||||
oled.text("v" + str(version), 10, 0)
|
var.oled.text("v" + str(var.version), 10, 0)
|
||||||
oled.show()
|
var.oled.show()
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
LED.red()
|
||||||
|
time.sleep(0.2)
|
||||||
|
LED.off(0)
|
||||||
|
|
||||||
def menu_display():
|
def menu_display():
|
||||||
cls()
|
gen.cls()
|
||||||
oled.text(home_items[menu_item], 44, 0)
|
var.oled.text(home_items[menu_item], 44, 0)
|
||||||
if menu_item == 0:
|
if menu_item == 0:
|
||||||
oled.text(">", 118, 22)
|
var.oled.text(">", 118, 22)
|
||||||
elif menu_item == len(home_items) - 1:
|
elif menu_item == len(home_items) - 1:
|
||||||
oled.text("<", 0, 22)
|
var.oled.text("<", 0, 22)
|
||||||
else:
|
else:
|
||||||
oled.text("<", 0, 22)
|
var.oled.text("<", 0, 22)
|
||||||
oled.text(">", 118, 22)
|
var.oled.text(">", 118, 22)
|
||||||
oled.show()
|
var.oled.show()
|
||||||
|
|
||||||
def menu_nav():
|
def menu_nav():
|
||||||
global menu_item
|
global menu_item
|
||||||
if button1.value():
|
if var.button1.value():
|
||||||
print("up")
|
print("up")
|
||||||
elif button2.value():
|
elif var.button2.value():
|
||||||
if menu_item < len(home_items) - 1:
|
if menu_item < len(home_items) - 1:
|
||||||
menu_item += 1
|
menu_item += 1
|
||||||
menu_display()
|
menu_display()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
elif button3.value():
|
elif var.button3.value():
|
||||||
print("down")
|
print("down")
|
||||||
elif button4.value():
|
elif var.button4.value():
|
||||||
if menu_item > 0:
|
if menu_item > 0:
|
||||||
menu_item = menu_item - 1
|
menu_item = menu_item - 1
|
||||||
menu_display()
|
menu_display()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
elif button5.value():
|
elif var.button5.value():
|
||||||
system_menu_master(home_items[menu_item])
|
gen.smm(home_items[menu_item])
|
||||||
#todo: Add buttons 5-8 and assign functions. On the main menu only 5 does anything (enters into that option)
|
#todo: Add var.buttons 5-8 and assign functions. On the main menu only 5 does anything (enters into that option)
|
||||||
#Creat a function that takes whatever current item is shown, then call that function based on the name.
|
#Creat a function that takes whatever current item is shown, then call that function based on the name.
|
||||||
#EG call menu.items[menu_item] + () or something. So if that expression is saay apps, it'll be apps()
|
#EG call menu.items[menu_item] + () or something. So if that expression is saay apps, it'll be apps()
|
||||||
|
|
||||||
@@ -100,42 +97,38 @@ def apps():
|
|||||||
is_app_menu = True
|
is_app_menu = True
|
||||||
is_menu = False
|
is_menu = False
|
||||||
is_module_menu = False
|
is_module_menu = False
|
||||||
if button1.value():
|
if var.button1.value():
|
||||||
print("up")
|
print("up")
|
||||||
elif button2.value():
|
elif var.button2.value():
|
||||||
if app_menu_item < len(app_list) - 1:
|
if app_menu_item < len(app_list) - 1:
|
||||||
app_menu_item += 1
|
app_menu_item += 1
|
||||||
app_menu_display()
|
app_menu_display()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
elif button3.value():
|
elif var.button3.value():
|
||||||
print("down")
|
print("down")
|
||||||
elif button4.value():
|
elif var.button4.value():
|
||||||
if app_menu_item > 0:
|
if app_menu_item > 0:
|
||||||
app_menu_item = app_menu_item - 1
|
app_menu_item = app_menu_item - 1
|
||||||
app_menu_display()
|
app_menu_display()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
elif button5.value():
|
elif var.button5.value():
|
||||||
system_menu_master(app_list[app_menu_item])
|
gen.smm(app_list[app_menu_item])
|
||||||
|
if app_list[app_menu_item] is not "home":
|
||||||
|
app_menu_display()
|
||||||
|
|
||||||
|
|
||||||
def app_menu_display():
|
def app_menu_display():
|
||||||
cls()
|
gen.cls()
|
||||||
oled.text(app_list[app_menu_item], 44, 0)
|
var.oled.text(app_list[app_menu_item], 0, 0)
|
||||||
if app_menu_item == 0:
|
if app_menu_item == 0:
|
||||||
oled.text(">", 118, 22)
|
var.oled.text(">", 118, 22)
|
||||||
elif app_menu_item == len(app_list) - 1:
|
elif app_menu_item == len(app_list) - 1:
|
||||||
oled.text("<", 0, 22)
|
var.oled.text("<", 0, 22)
|
||||||
else:
|
else:
|
||||||
oled.text("<", 0, 22)
|
var.oled.text("<", 0, 22)
|
||||||
oled.text(">", 118, 22)
|
var.oled.text(">", 118, 22)
|
||||||
oled.show()
|
var.oled.show()
|
||||||
|
|
||||||
def calculator():
|
|
||||||
cls()
|
|
||||||
oled.text("Coming soon",0,0)
|
|
||||||
oled.show()
|
|
||||||
time.sleep(5)
|
|
||||||
app_menu_display()
|
|
||||||
|
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
#MODULES BLOCK#########################################################################################
|
#MODULES BLOCK#########################################################################################
|
||||||
@@ -153,34 +146,36 @@ def modules():
|
|||||||
is_module_menu = True
|
is_module_menu = True
|
||||||
is_app_menu = False
|
is_app_menu = False
|
||||||
is_menu = False
|
is_menu = False
|
||||||
if button1.value():
|
if var.button1.value():
|
||||||
print("up")
|
print("up")
|
||||||
elif button2.value():
|
elif var.button2.value():
|
||||||
if module_menu_item < len(module_list) - 1:
|
if module_menu_item < len(module_list) - 1:
|
||||||
module_menu_item += 1
|
module_menu_item += 1
|
||||||
module_menu_display()
|
module_menu_display()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
elif button3.value():
|
elif var.button3.value():
|
||||||
print("down")
|
print("down")
|
||||||
elif button4.value():
|
elif var.button4.value():
|
||||||
if module_menu_item > 0:
|
if module_menu_item > 0:
|
||||||
module_menu_item = module_menu_item - 1
|
module_menu_item = module_menu_item - 1
|
||||||
module_menu_display()
|
module_menu_display()
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
elif button5.value():
|
elif var.button5.value():
|
||||||
system_menu_master(module_list[module_menu_item])
|
gen.smm(module_list[module_menu_item])
|
||||||
|
if module_list[module_menu_item] is not "home":
|
||||||
|
module_menu_display()
|
||||||
|
|
||||||
def module_menu_display():
|
def module_menu_display():
|
||||||
cls()
|
gen.cls()
|
||||||
oled.text(module_list[module_menu_item], 44, 0)
|
var.oled.text(module_list[module_menu_item], 0, 0)
|
||||||
if module_menu_item == 0:
|
if module_menu_item == 0:
|
||||||
oled.text(">", 118, 22)
|
var.oled.text(">", 118, 22)
|
||||||
elif module_menu_item == len(module_list) - 1:
|
elif module_menu_item == len(module_list) - 1:
|
||||||
oled.text("<", 0, 22)
|
var.oled.text("<", 0, 22)
|
||||||
else:
|
else:
|
||||||
oled.text("<", 0, 22)
|
var.oled.text("<", 0, 22)
|
||||||
oled.text(">", 118, 22)
|
var.oled.text(">", 118, 22)
|
||||||
oled.show()
|
var.oled.show()
|
||||||
|
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
#INFO BLOCK#########################################################################################
|
#INFO BLOCK#########################################################################################
|
||||||
@@ -188,25 +183,23 @@ def module_menu_display():
|
|||||||
|
|
||||||
|
|
||||||
def info():
|
def info():
|
||||||
cls()
|
gen.cls()
|
||||||
oled.text("v" + str(version),0,0)
|
LED.green()
|
||||||
oled.text("RP2040 CPU",0,10)
|
var.oled.text("v" + str(var.version),0,0)
|
||||||
oled.text("1MB flash",0,20)
|
var.oled.text("RP2040 CPU",0,10)
|
||||||
oled.show()
|
var.oled.text("1MB flash",0,20)
|
||||||
|
var.oled.show()
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
cls()
|
gen.cls()
|
||||||
|
LED.off(0)
|
||||||
menu_display()
|
menu_display()
|
||||||
|
|
||||||
|
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
#GENERICS BLOCK#########################################################################################
|
#GENERICS BLOCK#########################################################################################
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
def cls():
|
|
||||||
oled.fill(0)
|
|
||||||
oled.show()
|
|
||||||
|
|
||||||
def system_menu_master(inp):
|
#Generics that haven't been moved to gen
|
||||||
eval(inp + "()")
|
|
||||||
|
|
||||||
def home():
|
def home():
|
||||||
global is_menu
|
global is_menu
|
||||||
@@ -217,12 +210,18 @@ def home():
|
|||||||
is_module_menu = False
|
is_module_menu = False
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
menu_display()
|
menu_display()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#######################################################################################################
|
||||||
|
#FLOW BLOCK############################################################################################
|
||||||
|
#######################################################################################################
|
||||||
|
|
||||||
|
|
||||||
startup()
|
startup()
|
||||||
|
|
||||||
cls()
|
gen.cls()
|
||||||
|
|
||||||
menu_display()
|
menu_display()
|
||||||
|
|
||||||
@@ -234,4 +233,3 @@ while True:
|
|||||||
apps()
|
apps()
|
||||||
while is_module_menu:
|
while is_module_menu:
|
||||||
modules()
|
modules()
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
#App creation for the fossdeck is simple
|
||||||
|
#just write the entry point for your software as run()
|
||||||
|
#then add appname.run to the apps list on main.py, so in this case test_program.run
|
||||||
|
#this will be run as a function when launched.
|
||||||
|
#once the app ends, the system will return you to the app or module menu.
|
||||||
|
#Don't forget to import your app to main!
|
||||||
|
from machine import Pin, I2C
|
||||||
|
from ssd1306 import SSD1306_I2C
|
||||||
|
import time
|
||||||
|
import var
|
||||||
|
import LED
|
||||||
|
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
|
||||||
|
def run():
|
||||||
|
print("print systems OK")
|
||||||
|
var.oled.fill(0)
|
||||||
|
var.oled.text("LED test",0,0)
|
||||||
|
LED.green()
|
||||||
|
LED.red()
|
||||||
|
var.oled.show()
|
||||||
|
time.sleep(3)
|
||||||
|
LED.off("g")
|
||||||
|
time.sleep(1)
|
||||||
|
LED.off("r")
|
||||||
|
var.oled.fill(0)
|
||||||
|
var.oled.text("test complete", 0,0)
|
||||||
|
var.oled.show()
|
||||||
|
time.sleep(3)
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
from machine import Pin, I2C
|
||||||
|
from ssd1306 import SSD1306_I2C
|
||||||
|
import time
|
||||||
|
|
||||||
|
i2c=I2C(0,sda=Pin(0), scl=Pin(1), freq=400000)
|
||||||
|
oled = SSD1306_I2C(128, 32, i2c)
|
||||||
|
button1 = Pin(19, Pin.IN, Pin.PULL_DOWN) #Up
|
||||||
|
button2 = Pin(20, Pin.IN, Pin.PULL_DOWN) #Right
|
||||||
|
button3 = Pin(18, Pin.IN, Pin.PULL_DOWN) #Down
|
||||||
|
button4 = Pin(21, Pin.IN, Pin.PULL_DOWN) #Left
|
||||||
|
button5 = Pin(27, Pin.IN, Pin.PULL_DOWN) #Menu_1 / enter
|
||||||
|
button6 = Pin(22, Pin.IN, Pin.PULL_DOWN) #Menu_2
|
||||||
|
button7 = Pin(28, Pin.IN, Pin.PULL_DOWN) #Menu_3
|
||||||
|
button8 = Pin(26, Pin.IN, Pin.PULL_DOWN) #Menu_4
|
||||||
|
buzzer = Pin(2, Pin.OUT)
|
||||||
|
|
||||||
|
version = 0.1
|
||||||
|
|
||||||
|
buzzer_value = 0
|
||||||
|
|
||||||
Reference in New Issue
Block a user