Python – die neusten Beiträge

Entscheidungsmodell (KI) - Phyton?

Heyy,

Ich arbeite gerade an meiner Maturaarbeit und entwickle dafür ein Entscheidungsmodell bzw. einen Autopiloten, der auf einer Art KI basiert.

Ich will das Ganze zuerst in einer virtuellen Umgebung programmieren, wo man dann auch visuell sehen kann, wie das Fahrzeug auf Hindernisse reagiert, also z. B. ausweicht oder abbremst.

Der Code für die Simulation muss nicht derselbe sein wie derjenige, den ich später vielleicht auf einen physischen Roboter übertrage (z. B. Maqueen oder ähnliches; einfach aus Interesse - werde es vermutlich nicht erwähnen in meiner Arbeit).

Meine Frage an euch:

Kennt ihr gute Programme (mit Phyton), Tools, Webseiten oder Umgebungen, mit denen man so eine einfache virtuelle Simulation mit Hindernissen und Fahrzeugbewegungen machen kann? Ich habe bereits trinket für 2D-Darstellungen verwendet, aber das finale Produkt sollte anspruchsvoller (und hübscher) aussehen.

Und: Gibt es vielleicht Plattformen, anhand jener man den Code später auch auf einen echten kleinen Roboter übertragen kann (z. B. Maqueen)?

Mir geht es ausnahmsweise nicht wirklich um eine gute Note. Ich mag Informatik (als einziges MINT-Fach) nicht, habe das Thema aber gewählt, damit ich etwas Neues lerne, statt immer nur den gemütlichen Weg zu gehen.

Bin dankbar für jeden Tipp.✨

Webseite, Roboter, programmieren, künstliche Intelligenz, Programmiersprache, Python, Simulation, Tool, Autopilot, maturaarbeit

Wie kann ich zwei MFRC522-RFID-Reader gleichzeitig mit einem Raspberry Pi 3 Model B verwenden?

Hallo zusammen,

ich versuche seit über einem Monat, zwei MFRC522-RFID-Reader gleichzeitig mit meinem Raspberry Pi 3 Model B (Version 1.2) zu betreiben, leider ohne Erfolg.

Mein Ziel ist es, dass beide Reader parallel arbeiten und unabhängig voneinander Tags erkennen und auslesen können. Ich verwende Python mit dem

spidev

-Modul und habe jedem Reader eine eigene SPI-Schnittstelle zugewiesen:

  • Reader 1: SPI0 (Bus 0, Device 0), RST auf GPIO25
  • Reader 2: SPI1 (Bus 1, Device 0), RST auf GPIO17

Beide Reader sind korrekt verkabelt. SPI1 ist über Device Tree aktiviert, und ich verwende keine gemeinsamen CS-Pins. Ich habe eine eigene Klasse für MFRC522 geschrieben, um jeweils ein SPI-Device und einen RST-Pin zu verwenden. Hier ist der relevante Python-Code:

python
import spidev
import RPi.GPIO as GPIO
import time


class MFRC522:
    def __init__(self, spi_bus, spi_device, rst_pin):
        self.spi = spidev.SpiDev()
        self.spi.open(spi_bus, spi_device)
        self.spi.max_speed_hz = 1000000
        self.spi.mode = 0
        self.rst = rst_pin


        GPIO.setwarnings(False)
        GPIO.setmode(GPIO.BCM)
        GPIO.setup(self.rst, GPIO.OUT)
        GPIO.output(self.rst, 1)
        self.reset()


    def reset(self):
        GPIO.output(self.rst, 0)
        time.sleep(0.1)
        GPIO.output(self.rst, 1)
        time.sleep(0.1)


    def send(self, addr, val):
        self.spi.xfer2([(addr << 1) & 0x7E, val])


    def read(self, addr):
        val = self.spi.xfer2([((addr << 1) & 0x7E) | 0x80, 0])
        return val[1]


    def scan_for_tag(self):
        self.send(0x01, 0x0C)  # PCD_TRANSCEIVE
        self.send(0x0D, 0x87)  # BitFramingReg


        self.send(0x0C, 0x26)  # Request idle
        time.sleep(0.01)
        return self.read(0x0A) != 0  # FIFOLevelReg


    def get_uid(self):
        self.send(0x0D, 0x87)
        self.spi.xfer2([0x93, 0x20])  # Anticollision
        time.sleep(0.01)
        resp = self.spi.xfer2([0x93, 0x20] + [0]*5)
        uid = resp[2:6]
        return ':'.join([hex(x)[2:].upper().zfill(2) for x in uid])


    def cleanup(self):
        self.spi.close()
        GPIO.cleanup(self.rst)


# Konfiguration der Reader
reader1 = MFRC522(spi_bus=0, spi_device=0, rst_pin=25)  # SPI0
reader2 = MFRC522(spi_bus=1, spi_device=0, rst_pin=17)  # SPI1


try:
    print("Starte RFID-Scanner (STRG+C zum Beenden)")
    while True:
        if reader1.scan_for_tag():
            uid1 = reader1.get_uid()
            print(f"Reader 1 UID: {uid1}")


        if reader2.scan_for_tag():
            uid2 = reader2.get_uid()
            print(f"Reader 2 UID: {uid2}")


        time.sleep(0.5)


except KeyboardInterrupt:
    print("\nBeende...")


finally:
    reader1.cleanup()
    reader2.cleanup()


Das Problem: Keiner der beiden Reader erkennt zuverlässig Tags. Der zweite reagiert manchmal, oft aber gar nicht oder liefert keine UID. Ich habe bereits unterschiedliche Polling-Intervalle, Resets und sogar die Versorgungsspannung überprüft, aber ohne Erfolg.
so habe ich meine MFRC522 Reader angeschlossen:

Hat jemand Erfahrung damit oder Ideen, wie ich beide MFRC522 zuverlässig gleichzeitig betreiben kann? Gibt es vielleicht Timing-Probleme, Konflikte zwischen den SPI-Bussen oder brauche ich spezielle Initialisierung?

Ich bin für jede Hilfe dankbar!

Bild zum Beitrag
Code, Programmiersprache, Python, RFID, RFID-Chip, Raspberry Pi, ChatGPT

Betreff: Desktop-App (Mac/Win) mit Qt & komplexer UI – Python oder C++ für Hobby-Entwickler mit KI-Fokus?

allo zusammen,

ich plane eine persönliche Desktop-Aufgabenverwaltungs-App für Mac & Windows. Langfristig soll sie eine komplexe UI bekommen (Kanban-Board mit Drag & Drop, Kalender mit OS-Integration). Mein Hauptziel ist es, eine Technologie zu wählen, die das packt, um einen späteren kompletten Rewrite der GUI wegen Framework-Limitierungen zu vermeiden.

Nach viel Recherche habe ich mich für Qt als UI-Framework entschieden, da es die nötige Mächtigkeit und den Qt Designer (den ich gut finde) bietet.

Jetzt stehe ich aber vor der großen Frage: Soll ich Qt mit Python (PySide6) oder mit C++ nutzen?

Kurz zu meinem Hintergrund:

  • Ich entwickle als Hobby, nicht beruflich.
  • Ich setze sehr stark auf KI-Unterstützung für die konkrete Code-Erstellung.
  • Meine C++ Erfahrung ist minimal: Bei sehr kleinen Windows-Tools (mit WinAPI, nicht Qt) hat die KI den Code geschrieben, ich habe primär Fehler mit der KI behoben. Ich kann C++ also nicht wirklich.
  • Meine Go Erfahrung ist auch kaum vorhanden (nur mal ein Fyne-Fenster testweise).
  • Ich habe aber einen (von KI geschriebenen) Python-Backend-Dienst für eine andere iOS Swift App. Python ist also schon entfernt in meinem technischen Umfeld, und ich habe auch Interesse an Pentesting (wo Python nützlich ist).
  • Für die Aufgaben-App selbst ist ein Installer/Abhängigkeiten okay. (Der Wunsch nach kleinen, einzelnen 
  • .exe
  • -Dateien betrifft andere, zukünftige, kleine Windows-Tools, für die ich dann wahrscheinlich Go oder C++/WinAPI nehmen würde – das ist also ein getrenntes Thema.)

Meine Zwickmühle mit Python/Qt vs. C++/Qt:

  • Python/Qt (PySide6):
  • Pro: Bietet die volle Qt-Power. Python ist deutlich zugänglicher für mich als C++. Ich habe die genannten Synergien (anderer Dienst, Pentesting). Die KI kann mich bei Python/Qt sicher gut unterstützen, und der Qt Designer hilft beim UI-Bau.
  • Mein großes Problem: Ich habe einen hartnäckigen "faden Beigeschmack" / ein starkes Unbehagen, Python für GUI-Programmierung zu nutzen, auch wenn meine frühere Hauptsorge (Performance) bei Qt-GUIs wohl unbegründet ist.
  • C++/Qt:
  • Pro: Wäre Qt "nativ", und mein Python-GUI-Unbehagen wäre weg.
  • Meine große Sorge: Die extreme Lernkurve von C++ von meinem jetzigen Stand. Ich habe Angst, hier monatelang nur mit der Sprache zu kämpfen (auch mit KI) und nicht bei der App voranzukommen, was für mich "verschwendete Zeit" wäre.

Meine Frage an euch: Ich will jetzt "richtig anfangen" mit Version 0.0.1 meiner App (Fenster, Eingabe, Button, Liste). Was ratet ihr mir in dieser spezifischen Situation für den Start mit Qt? Sollte ich versuchen, meine Python-GUI-Aversion (mit viel KI-Hilfe und Fokus auf den Qt Designer) zu überwinden, um die Vorteile der zugänglicheren Sprache und der Synergien zu nutzen? Oder haltet ihr den Weg mit C++/Qt (trotz des immensen Lernaufwands für mich) für realistischer oder langfristig besser, um Qt ohne Python-GUI-Unbehagen zu nutzen? Mein Hauptziel bleibt, die App mit Kanban & Co. sicher umsetzen zu können, ohne in einer Sackgasse zu landen.

Vielen Dank für eure Einschätzungen!

CPP, künstliche Intelligenz, Programmiersprache, Python, Qt Creator

Python Code testen

Ich habe einen Python code geschrieben und würde mich über ehrliche tester freuen

import os
#os.system('cls' if os.name == 'nt' else 'clear')
liste = []
def addToClipBoard(text):
    with open("temp_clipboard.txt", "w", encoding="utf-8") as f:
        f.write(text)
    os.system("type temp_clipboard.txt | clip")
    os.remove("temp_clipboard.txt")
def hinzufügen():
    produkt = input("Welches Produkt möchten sie hinzufügen ")
    anzahl = int(input(f"Wie oft möchten sie {produkt} kaufen "))
    add = [str(produkt), str(anzahl)]
    liste.append(add)
def anzeigen():
    for i in range(0, len(liste)):
        print(liste[i][0], liste[i][1])
def entfernen():
    print("Welches Produkt möchten sie entfernen ")
    for i in range(0, len(liste)):
        print(f"{i + 1}: ",liste[i][0], liste[i][1])
    auswahl = int(input("")) - 1
    os.system('cls' if os.name == 'nt' else 'clear')
    print("Produkt wurde entfernt!")
    del liste[auswahl]

while True:
    auswahl = int(input("1: Produkt hinzufügen \n2: Produkt entfernen \n3: Liste anzeigen \n4: Liste leeren \n5: Liste kopieren\n"))
    os.system('cls' if os.name == 'nt' else 'clear')

    if auswahl == 1:
        try:
            hinzufügen()
        except ValueError:
            print("Fehler!")
            continue
    elif auswahl == 2:
        try:
            entfernen()
        except IndexError:
            print("Fehler!")
            continue
    elif auswahl == 3:
        anzeigen()
        if liste == []:
            print("Deine Einkaufsliste ist leer")
            continue
    elif auswahl == 4:
        liste = []
        print("Liste wurde geleert!")
    elif auswahl == 5:
        outlist = str(liste)
        outlist = "\n".join([f"{produkt}: {anzahl}" for produkt, anzahl in liste])

        print("Liste wurde in die Zwischenablage kopiert")
        addToClipBoard(str(outlist))

Schreibt gerne eure meinung und startet das Programm im Terminal

Code, Programmiersprache, Python, Pycharm

KI programmieren - Thema?

Hallo.

Ich muss in einigen Tagen meine Idee für eine eigene KI abgeben (Maturaarbeit). Meine Betreuungsperson ist sehr streng und hat alle meine Ideen als zu oberflächlich und simpel abgetan. Nun bin ich wirklich verloren, da ich doch länger daran gearbeitet habe und mir nun kaum mehr Zeit für viel Recherche bleibt.

Er hilft mir übrigens in keiner Weise: Er sagt zwar, wie schlecht die Richtung ist, die ich einschlage, will mir aber nicht in geringster Weise auf die richtige Spur verhelfen. Ich habe keine Ahnung, was er von mir erwartet, weiß allerdings, dass sein anderer Schüler ein eigenes U-Boot baut und das irgendwie noch mit Informatik und Physik verbindet. Die Ansprüche sind also demnach hoch (schließlich haben wir auch bis Ende November Zeit).

Die KI sollte mit Aviatik oder sonstiger Technik zutun haben, damit man am Ende auch diskutieren kann, wer die Schuld trägt, wenn die KI in automatisierten Prozessen Fehler macht und weil er einfach nichts von anderen Themenfeldern hält. Habt ihr Ideen?

Er hat gesagt, ich dürfe einen bestehenden Code kreativ erweitern und solle mich selber herausfordern, da ich bisher nicht sonderlich gut im programmieren bin. Ich bin wirklich für jeden Tipp dankbar, seien es Webseiten mit Tipps, Apps, ein gutes Thema oder sonstige Programme. Am liebsten wäre mir Python, aber im Endeffekt spielt es eigentlich keine Rolle.

Als Randnotiz: Ich wollte meine Arbeit eigentlich im Fachbereich Mathematik schreiben, habe allerdings Informatik gewählt, weil dies das einzige MINT-Fach ist, welches mir bisher kaum Freude bereitet hat. Ich bin nicht zu faul, um selber Ideen zu sammeln, aber mein Wissen ist derzeit einfach zu begrenzt, um etwas Passendes zu finden.

Computer, Technik, programmieren, Aviatik, Informatik, künstliche Intelligenz, Python, maturaarbeit

Wie lernt man Python/Pandas schnell?

Hallo,

ich soll für die Uni Pandas in Python lernen. Nur ist es so, dass von der Uni kein Kurs dafür angeboten wird. Das heißt, ich muss es mir selbst beibringen.

Deshalb hätte ich ein paar Fragen: Ich habe keinerlei Erfahrung in Python. Ich habe zwar durch Java 1 etwas in die Programmierung hineingeschnuppert und Standardsachen wie if-Schleifen, Methoden und sowas gelernt, allerdings kenne ich weder die Syntax in Python noch sonst irgendetwas.

Jetzt das Problem: Am nächsten Donnerstag ist bereits das erste Praktikum, welches ich komischerweise in Mathe 2 habe (also im Kurs Mathe 2 haben wir als Praktikum Pandas, aber darum geht es nicht), sondern, ich soll bis nächste Woche Donnerstag Pandas lernen und auf Moodle steht, dass Sachen drankommen, wie Funktionen, Parameter, Schleifen, IF-Anweisungen, etc.. In Python programmieren kann.

Ich habe mir bereits Visual Studio Code heruntergeladen und eingerichtet, sodass ich an sich loslegen kann, aber ich kann halt keine Python-Syntax. Wie soll ich also Pandas machen?

Hättet ihr Tipps, Empfehlungen, Vorschläge, Videos, wie ich es schnell lernen kann?

Vielleicht gibt es ja unter euch auch Programmierer, die verstehen, was ich meine und mir Videos oder andere hilfreiche Sachen empfehlen können. Also ich brauche alles:

  • Wie fängt man in Python an?
  • Legt man einfach los oder muss man wie bei Java erst sowas machen wie "public static void main", um loszulegen?
  • Wie ist die Syntax?
  • Ist es auch am Ende mit ; oder mit was?
  • Parameter, erklärt, wie, warum, Klammern? Befehle? Am besten einfach wirklich alles dazu.

Meine Idee wäre jetzt einfach: Ich versuche mir durch YouTube, etc. Python-Grundlagen beizubringen und dann schnell Pandas zu testen und zu hoffen, dass es klappt.

Ich hoffe, ihr versteht, was ich meine und könnt mir helfen. Falls ihr Fragen habt, sagt gerne Bescheid. Ich bin über jede Hilfe dankbar.

Code, Programmiersprache, Python, Python 3

Meistgelesene Beiträge zum Thema Python