readme and some copilot fixes

This commit is contained in:
yair-mantis 2024-01-09 10:54:22 +02:00
parent cffc0931b7
commit c7b5dedcae
2 changed files with 45 additions and 55 deletions

66
readme
View File

@ -1,43 +1,27 @@
### install
```bash
git clone git@github.com:5shekel/madpeset.git && cd madpeset
git submodule update --init --recursive
python -m venv venv
source venv/bin/activate
pip install pillow brother_ql
```
to get the camera working, you need to install the drivers for the camera. I used the [official guide](https://www.raspberrypi.org/documentation/configuration/camera.md) to install the drivers.
if you use a webcam try
```bash
sudo apt install fswebcam
```
### run
```bash
python txt.py
```
i usually add a tmux session to `~/.bashrc` to run the script on startup
test printer
```py
brother_ql -b pyusb -m QL-550 -p usb://0x04f9:0x2016 print -l 62 pefectFake.jpg --dither
```
```
byobu new-window -n 'printer' 'cd ~/printBash && bash switch.sh'
```
```
sudo systemctl daemon-reload
#to reload the systemd manager configuration.
#Run
sudo systemctl enable switch.service
#to enable the service to start at boot.
#Run
sudo systemctl start switch.service
#to start the service immediately.
```
To command the camera in the terminal I suggest to use the fswebcam package. To install:
`sudo apt install fswebcam`
To take an image with a certain resolution and hide the standard banner:
`fswebcam -r 1280x720 --no-banner /images/image1.jpg`
To find the supported webcam resolutions:
`v4l2-ctl --list-formats-ext`
You could also use ffmpeg to take images and video. To install:
`sudo apt install ffmpeg`
To take an image:
`ffmpeg -f v4l2 -video_size 1280x720 -i /dev/video0 -frames 1 out.jpg`
A more advanced alternative is mjpeg-streamer, which enables you to stream the camera in a browser. You can find a detailed tutorial how to set that up here.
```

34
txt.py
View File

@ -11,11 +11,17 @@ username = os.getlogin()
parser = argparse.ArgumentParser(description="Image Generation and Printing")
args = parser.parse_args()
def camera():
print("cam")
webcam_command = "fswebcam webcam.jpg ; /home/{username}/.local/bin/brother_ql -b pyusb -m QL-550 -p usb://0x04f9:0x2016 print -l 62 --dither webcam.jpg"
webcam_command = (
"fswebcam webcam.jpg ; "
"/home/{username}/.local/bin/brother_ql -b pyusb -m QL-550 "
"-p usb://0x04f9:0x2016 print -l 62 --dither webcam.jpg"
)
subprocess.run(webcam_command, shell=True)
def map_to_keyboard_hebrew(input_text):
keyboard_to_hebrew = {
't': 'א',
@ -55,6 +61,7 @@ def map_to_keyboard_hebrew(input_text):
output_text = ''.join([keyboard_to_hebrew.get(char, char) for char in input_text.lower()])
return output_text
def rtl_text_wrap(text, width):
words = text.split()
lines = []
@ -77,16 +84,13 @@ def rtl_text_wrap(text, width):
return '\n'.join(lines)
while True:
user_input = input("Type something (or press + for camera): ")
if user_input =="+":
if user_input == "+":
camera()
elif user_input != "":
img_width = 696
# Step 1: Map to Hebrew
mapped_text = map_to_keyboard_hebrew(user_input)
print("mapped "+mapped_text)
@ -98,9 +102,9 @@ while True:
num_lines = wrapped_text.count('\n') + 1
font_size = img_width // 6
ttfont="5x5-Tami.ttf"
ttfont="VarelaRound-Regular.ttf"
ttfont="fonts/xbmc-hebrew-fonts/Roboto-Bold-xbmc-il.ttf"
ttfont = "5x5-Tami.ttf"
ttfont = "VarelaRound-Regular.ttf"
ttfont = "fonts/xbmc-hebrew-fonts/Roboto-Bold-xbmc-il.ttf"
font = ImageFont.truetype(ttfont, font_size)
line_height = font_size + 10
img_height = num_lines * line_height + 200
@ -112,10 +116,12 @@ while True:
d.text((x, y), wrapped_text, font=font, fill=(0, 0, 0))
image.save("output.png")
printer_ql550="0x2016"
printer_id1="000M6Z401370"
command = f"/home/{username}/.local/bin/brother_ql -b pyusb --model QL-550 -p usb://0x04f9:{printer_ql550}/{printer_id1} print -l 62 output.png"
# Step 2: Print
printer_ql550 = "0x2016"
printer_id1 = "000M6Z401370"
command = (
f"/home/{username}/.local/bin/brother_ql -b pyusb --model QL-550 "
f"-p usb://0x04f9:{printer_ql550}/{printer_id1} print -l 62 output.png"
)
subprocess.run(command, shell=True)