summaryrefslogtreecommitdiff
path: root/bin/source/hardware_driver.py
diff options
context:
space:
mode:
authornasrlol <nsrddyn@gmail.com>2024-11-24 16:13:37 +0100
committernasrlol <nsrddyn@gmail.com>2024-11-24 16:13:37 +0100
commit16d54ef337f510e2dce2158d5cb95e26b29c9c57 (patch)
tree497ad37fdcf3f5ee10ee2346f7a59605ebbb5910 /bin/source/hardware_driver.py
parentf32ea4fbb4467e9c7d14e785698224ec0f8d073f (diff)
fixed the bulk of the code so everyhting is running fine for now but i realised that the libraries i was using arent really all comatibnle with the rpi pico so features like speech transcription wont be working i think unless i can find a work around, because usb microphones arent an option i could maybe get some audio to get outputted using some DAC module or something still dont know, besied that there is still an issue with the pomodoro time display, still figuring out to setup a time count down that counts minutes and seconds
Diffstat (limited to 'bin/source/hardware_driver.py')
-rw-r--r--bin/source/hardware_driver.py25
1 files changed, 14 insertions, 11 deletions
diff --git a/bin/source/hardware_driver.py b/bin/source/hardware_driver.py
index 1afb219..7d48e69 100644
--- a/bin/source/hardware_driver.py
+++ b/bin/source/hardware_driver.py
@@ -1,15 +1,21 @@
-from smbus2 import SMBus
+from smbus import SMBus
from time import sleep
-ALIGN_FUNC = {"left": "ljust", "right": "rjust", "center": "center"}
+ALIGN_FUNC = {
+ 'left': 'ljust',
+ 'right': 'rjust',
+ 'center': 'center'}
CLEAR_DISPLAY = 0x01
ENABLE_BIT = 0b00000100
-LINES = {1: 0x80, 2: 0xC0, 3: 0x94, 4: 0xD4}
+LINES = {
+ 1: 0x80,
+ 2: 0xC0,
+ 3: 0x94,
+ 4: 0xD4}
LCD_BACKLIGHT = 0x08
LCD_NOBACKLIGHT = 0x00
-
class LCD(object):
def __init__(self, address=0x27, bus=1, width=20, rows=4, backlight=True):
@@ -32,7 +38,7 @@ class LCD(object):
self.bus.write_byte(self.address, byte)
self.bus.write_byte(self.address, (byte | ENABLE_BIT))
sleep(self.delay)
- self.bus.write_byte(self.address, (byte & ~ENABLE_BIT))
+ self.bus.write_byte(self.address,(byte & ~ENABLE_BIT))
sleep(self.delay)
def write(self, byte, mode=0):
@@ -40,10 +46,10 @@ class LCD(object):
self._write_byte(mode | (byte & 0xF0) | backlight_mode)
self._write_byte(mode | ((byte << 4) & 0xF0) | backlight_mode)
- def text(self, text, line, align="left"):
+ def text(self, text, line, align='left'):
self.write(LINES.get(line, LINES[1]))
text, other_lines = self.get_text_line(text)
- text = getattr(text, ALIGN_FUNC.get(align, "ljust"))(self.width)
+ text = getattr(text, ALIGN_FUNC.get(align, 'ljust'))(self.width)
for char in text:
self.write(ord(char), mode=1)
if other_lines and line <= self.rows - 1:
@@ -56,13 +62,10 @@ class LCD(object):
def get_text_line(self, text):
line_break = self.width
if len(text) > self.width:
- line_break = text[: self.width + 1].rfind(" ")
+ line_break = text[:self.width + 1].rfind(' ')
if line_break < 0:
line_break = self.width
return text[:line_break], text[line_break:].strip()
def clear(self):
self.write(CLEAR_DISPLAY)
-
- def read(self):
- self._read_i2c_block_data