diff options
Diffstat (limited to 'bin/main.py')
| -rw-r--r-- | bin/main.py | 102 |
1 files changed, 89 insertions, 13 deletions
diff --git a/bin/main.py b/bin/main.py index 17b506d..bf556ca 100644 --- a/bin/main.py +++ b/bin/main.py @@ -2,12 +2,13 @@ import time import os import speech_recognition as speech import sounddevice -import i2c as lcd +import bin.hardware_driver as lcd from gpiozero import CPUTemperature ERROR_BAD_REQUEST = "400 Bad Request" ERROR_UNAUTHORIZED = "401 Unauthorized" ERROR_NOT_FOUND = "404 Not Found" +SPEECH_NOT_RECOGNIZED = "404-1 Speech is not recognized" ERROR_TIMEOUT = "408 Request Timeout" lcd_instance = lcd.LCD() @@ -16,7 +17,46 @@ recognizer = speech.Recognizer() microphone = speech.Microphone() -def display_cpu_info(): +# greeting that starts upon the boot of the device: +# shows a hello line; shorter than 16 chars +# and some small information on the second line +def custom_greeting(): + with open('quotes.txt', 'r') as file: + quotes = file.readlines() + + # Strip newline characters and use the quotes + quotes = [quote.strip() for quote in quotes] + + # Print the quotes + for quote in quotes: + print(quote) + first_line = "" + second_line = "" + count = 0 + for i in quote: + if count < 16: + first_line += i + count += 1 + else: + second_line += i + lcd.text(first_line,1) + lcd.text(secon_line,2) +def pomodoro(): + time = input("How long do you want to wait? : ") + print("Okay \nStarting Now...") + while time > 0: + time.sleep(1) + print(time + "Seconds") + lcd.text(time + " Seconds remaining...", 1) + time -= 1 + + +def weather(): + pass + + +# ram usage, internet speed, +def system_readings(): lcd_instance.clear() while True: load = os.getloadavg()[0] @@ -37,6 +77,7 @@ def display_uptime(): def recognize_speech(): + lcd_instance.clear() try: with microphone as source: @@ -46,6 +87,7 @@ def recognize_speech(): text = recognizer.recognize_google(audio) lcd_instance.clear() lcd_instance.text(text, 1) + print("Speech recognized:", text) except speech.UnknownValueError: lcd_instance.text(ERROR_BAD_REQUEST, 1) @@ -54,6 +96,8 @@ def recognize_speech(): lcd_instance.text(ERROR_UNAUTHORIZED, 1) print(ERROR_UNAUTHORIZED) + return text + def save_notes(): print("Type your notes (type 'stop' to exit):") @@ -61,32 +105,64 @@ def save_notes(): while True: line = 1 output = input(":") + output_length = len(output) if output.lower() in ["stop", "break", "quit", "exit"]: break if output == "line=1": line = 1 elif output == "line=2": line = 2 - lcd_instance.text(output, line) - time.sleep(2) + + if output_length < 16: + lcd_instance.text(output, line) + time.sleep(2) + else: + output_list = output.split("") + first_line = "" + second_line = "" + for i in output_list: + count = 0 + if count > 16: + first_line += output_list[i] + count += 1 + else: + second_line += output_list[i] + lcd.text(first_line,1) + lcd.text(secon_line,2) + +def command_center(commands): + # checking if we can reconize commands within the user speech + # requires -> + # converting the commands to human readable text + # no under scars + command = recognize_speech() + list = [] + try: + for i in commands: + if i == command: + print("I think i found what you ment...") + command() + except: + print("ERROR 404 - COMMAND NOT RECOGNIZED") -OPTIONS = { - "CPU_INFO": display_cpu_info, - "UPTIME": display_uptime, - "SPEECH_TRANSCRIBER": recognize_speech, - "NOTES": save_notes, -} +FEATURES = { + "READINGS": system_readings, + "UPTIME": display_uptime, + "SPEECH_TRANSCRIBER": recognize_speech, + "NOTES": save_notes, + "COMMAND CENTER": command_center, + } def main(): lcd_instance.clear() - print("WELCOME TO THE I2C COMMAND LINE CENTER") - print("Options:", ", ".join(OPTIONS.keys())) + os.system("cls" if os.name == "nt" else "clear") + print("FEATURES:", ", ".join(FEATURES.keys())) while True: user_input = input("Enter command: ").upper() - action = OPTIONS.get(user_input) + action = FEATURES.get(user_input) if action: action() |
