User Tools

Site Tools


projekte:sekwai:prepare

Vorbereitung Pi

Pakete

  • Allgemeines Update & Tools
    • sudo apt update && sudo apt upgrade -y && sudo apt install -y git git-lfs silversearcher-ag wavemon hexedit sudoku tcpdump iptraf mc htop dcfldd nano usbutils openvpn ranger tldr ncdu can-utils multitail fd-find lsof x11vnc terminator minicom cutecom joystick jstest-gtk i2c-tools speedtest-cli iotop fio ir-keytable curl inxi && mkdir -p ~/.local/share && tldr -u
  • Devtools installieren
    • sudo apt install -y thonny cutecom sqlitebrowser build-essential pkg-config libusb-1.0-0-dev cmake make gcc python3-dev libhidapi-dev python3-virtualenv python3-tk lm-sensors mariadb-server mariadb-client libopenblas-dev linux-perf
  • Unnützen Kram deinstallieren
    • sudo apt autoremove -y modem* cups* pulse* avahi* triggerhappy*
  • Bluetooth
    • sudo apt-get install blueman pi-bluetooth minicom bluez bluez-tools
  • Python Tools nachinstallieren
    • sudo apt update && sudo apt install -y build-essential zlib1g-dev libexpat1-dev libxml2-dev libxslt1-dev libpq-dev libjpeg-dev libpng-dev libfreetype6-dev pkg-config checkinstall python3-dev libssl-dev libbz2-dev libffi-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev liblzma-dev libgdbm-dev libdb5.3-dev uuid-dev tk-dev
  • One 4 All
    • sudo apt update && sudo apt upgrade -y && sudo apt install -y git git-lfs silversearcher-ag wavemon hexedit sudoku tcpdump iptraf mc htop dcfldd nano usbutils openvpn ranger tldr ncdu can-utils multitail fd-find lsof x11vnc terminator minicom cutecom joystick jstest-gtk i2c-tools speedtest-cli iotop fio ir-keytable curl inxi thonny sqlitebrowser build-essential pkg-config libusb-1.0-0-dev cmake make gcc python3-dev libhidapi-dev python3-virtualenv python3-tk lm-sensors mariadb-server mariadb-client libopenblas-dev linux-perf blueman pi-bluetooth bluez bluez-tools zlib1g-dev libexpat1-dev libxml2-dev libxslt1-dev libpq-dev libjpeg-dev libpng-dev libfreetype6-dev checkinstall libssl-dev libbz2-dev libffi-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev liblzma-dev libgdbm-dev libdb5.3-dev uuid-dev tk-dev && sudo apt autoremove -y modem* cups* pulse* avahi* triggerhappy* && mkdir -p ~/.local/share && tldr -u

config.txt

  • sudo nano /boot/firmware/config.txt
  • Pi Zero MCC Activity LED
    • dtparam=act_led_trigger=mmc0
    • dtparam=act_led_activelow=on
  • Disable Audio
    • #dtparam=audio=on

SWAP erhöhen

  • stop the swap
    sudo dphys-swapfile swapoff
  • Modify the size of the swap. As root , edit the file /etc/dphys-swapfile and modify the variable CONF_SWAPSIZE : CONF_SWAPSIZE=1024
    sudo nano /etc/dphys-swapfile
  • Start the swap
    sudo dphys-swapfile swapon
  • Restart
    sudo reboot

Bluetooth

Bluetooth wird für zwei Dinge verwendet:

  • Status prüfen:
    sudo systemctl status bluetooth

aktivieren

SPP Profil

Ziel ist es auf dem Raspberry Pi eine serielle Schnittstelle zu haben auf die man sich von einem anderen Rechner aus verbinden kann

  • Open Bluetooth service configuration file
    sudo nano /etc/systemd/system/dbus-org.bluez.service
  • Look for a line starts with “ExecStart” and add compatibility flag ‘-C’ at the end of the line
    ExecStart=/usr/lib/bluetooth/bluetoothd -C
  • Add a line below immediately after “ExecStart” line, then save and close the file
    ExecStartPost=/usr/bin/sdptool add SP
  • sudo systemctl daemon-reload
  • sudo systemctl restart bluetooth.service
  • Status prüfen:
    sudo systemctl status bluetooth
    Liefert jetzt eine extra Zeile mit
    Jun 27 04:05:43 Make-seKwaI sdptool[16038]: Serial Port service registered
  • Grundsätzlich muss man pairen.
  • Dann muss rfcomm auch laufen, weil der erstellt den seriellen Port!
  • Und mit minicom -b 9600 -o -D /dev/rfcomm0 kann man dann interagieren :-)

Pairing

  • bluetoothctl
  • discoverable on
  • On the phone, scan for Raspberry Pi and pair. You should be able to see something like below.
    [CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
  • Press Ctrl+D to quit.
  • Es muss ggf. auf dem Rechner und dem Pi das Pairing zugestimmt werden
  • Unter Windows sollten jetzt auch 2 serielle POrts angelegt worden sein. Die findet man unter “Weitere Bluetooth Optionen”
    • Eingehender COM-Port : Wird typischerweise verwendet, wenn das Bluetooth-Gerät (z. B. ein Sensor oder ein anderes Peripheriegerät) aktiv eine Verbindung herstellt und Daten an den Computer sendet.
    • Ausgehender COM-Port : Wird genutzt, wenn der Computer aktiv eine serielle Verbindung zu einem Bluetooth-Gerät herstellt, z. B. für Konfigurationszwecke oder Steuerung.

rfcomm0

Damit wir eine Verbindung vom Windows zum Pi aufbauen können muss der Pi auf eine eingehende SPP Verbindung horchen. Das geht manuell mittels
sudo rfcomm watch hci0
Das Device /dev/rfcomm0 wird dann erstellt wenn eine Verbindung von Windows aufgebaut wird. Damit das aber autoamtisch geht muss man einen extra Dienst einrichten:

  • sudo nano /etc/bluetooth/rfcomm.conf
    rfcomm0 {
        bind yes;
        channel 1;
        comment "Serial Port for Windows Connection";
  • sudo nano /etc/systemd/system/rfcomm.service
    [Unit]
    Description=RFCOMM Service
    After=bluetooth.service
    Requires=bluetooth.service
    
    [Service]
    ExecStart=/usr/bin/rfcomm watch hci0 1
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
  • sudo systemctl enable rfcomm.service
  • sudo systemctl start rfcomm.service
  • Status prüfen : sudo systemctl status rfcomm.service

Test

Hinweis:
Scheinbar gibt es Probleme mit .Net Anwendungen. Die Verbindung wird aufgebaut, aber sofort wieder geschlossen. Mit MobaXTerm, Putty oder auch Python passiert das nicht.

* minicom -b 9600 -o -D /dev/rfcomm0 auf dem Pi starten

  • Ende mittels STRG + A + Z und dann Shift + X
  • Python Test Script
    testser.py
    import serial
    import time
    from datetime import datetime
     
    def send_serial_messages(port):
        try:
            # Serielle Verbindung öffnen
            ser = serial.Serial(
                port=port,
                baudrate=9600,  # Standard-Baudrate, anpassen falls nötig
                timeout=1
            )
     
            # Kurze Pause, um die Verbindung zu stabilisieren
            time.sleep(2)
     
            print(f"Connected to {port}. Sending time and 'Hallo' every 2 seconds...")
     
            while True:
                # Aktuelle Zeit holen
                current_time = datetime.now().strftime("%H:%M:%S")
     
                # Zeit und "Hallo" als Nachricht zusammenstellen
                message = f"{current_time} Hallo\n"
     
                # Nachricht senden
                ser.write(message.encode('utf-8'))
                print(f"Sent: {message.strip()}")
     
                # 2 Sekunden warten
                time.sleep(2)
     
        except serial.SerialException as e:
            print(f"Error: Could not open port {port}: {e}")
        except KeyboardInterrupt:
            print("\nStopped by user.")
            ser.close()
            print("Serial connection closed.")
        except Exception as e:
            print(f"An error occurred: {e}")
            if 'ser' in locals():
                ser.close()
     
    if __name__ == "__main__":
        # Port definieren
        port = "COM16"
     
        # Funktion aufrufen
        send_serial_messages(port)

SPI

aktivieren

BNO085

Python

Pakete installieren

  • sudo apt update && sudo apt install -y build-essential zlib1g-dev libexpat1-dev libxml2-dev libxslt1-dev libpq-dev libjpeg-dev libpng-dev libfreetype6-dev pkg-config checkinstall python3-dev libssl-dev libbz2-dev libffi-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev liblzma-dev libgdbm-dev libdb5.3-dev uuid-dev tk-dev

pre Compile

  • configure: WARNING: no system libmpdecimal found; falling back to bundled libmpdecimal (deprecated and scheduled for removal in Python 3.15)
  • sudo apt install -y libmpdec-dev
    • Geht nicht unter Bookworm
  • tar -xzf mpdecimal-4.0.1.tar.gz && cd mpdecimal-4.0.1
  • Build and install
    ./configure && make -j3 && sudo make install && sudo ldconfig

Compilieren

venv

  • cd ~ && mkdor sekwai && cd sekwai
  • python -m venv _envR
  • source _envR/bin/activate
  • pip install rpi-lgpio spidev

Links

projekte/sekwai/prepare.txt · Last modified: by dominik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki