ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Uwe
Beiträge: 17
Registriert: 11 Mai 2019, 17:22

ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von Uwe » 12 Apr 2021, 23:48

Hallo liebe ft-Freunde,

da TXT und ftduino gerade verbaut sind und der Nachwuchs den Flipper aus dem electropneumatic Kasten einfordert, habe ich den TxPiHat mit RasPi und TouchLCD als Basis gewählt und versuche damit die Python-Kenntnisse weiter auszubauen :).

Das klappt alles sehr gut nur der Farbsensor bereitet mir Kopfzerbrechen. Bevor ich einfach auf eine dritte Lichtschranke umbaue würde ich gern die Machbarkeit des Einsatzes ausloten. Nach meinem Verständnis haben der RasPi und der TxPiHat nur digitale Eingänge und ich benötige für den Farbsensor einen analogen Eingang.

Folgende Ideen sind mir bisher in den Sinn gekommen:
  • I2c Farbsensor oder I2c digital/analog Wandler mit FT-Farbsensor
  • das Robotics MiniBots Modul so nutzen, das die Analogeingänge das Outputsignal triggern und dieses dann mit den TxPiHat auslesen
  • den ungenutzten Robo-LT-Controller zusätzlich über usb ansteuern um die Sensoren auszulesen
  • in den RasPi Foren findet man auch ein paar Schaltungen die über GND -- Kondensator -- GPIO -- Widerstand -- Spannungs-Pin - eine vereinfachte Analogmessung realisieren - durch Umschalten des GPIO von Output auf Input und Messung der Flanke bis die Kondensatorspannung das Signal triggert - spannende Idee :geek:
Gibt es noch weitere, möglichst einfach realisierbare Ideen? Hat ggf. schon jemand den FT-Farbsensor mit dem TxPiHat zum laufen gebracht?

Danke & LG
Uwe

juh
Beiträge: 899
Registriert: 23 Jan 2012, 13:48

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von juh » 13 Apr 2021, 01:42

Uwe hat geschrieben:
12 Apr 2021, 23:48
  • I2c Farbsensor oder I2c digital/analog Wandler mit FT-Farbsensor
Hallo Uwe,

I2C scheint mir von allen Optionen die einfachste und eleganteste. Und wenn Du eh schon ein Fremdbauteil verwendest, würde ich ja gleich zum echten Farbsensor greifen, anstatt den ft-Helligkeitssensor an den I2C-Bus zu bringen. VEML6040 hat bei mir im Test mit Arduino/ESPs gut funktioniert, als Modul aus den einschlägigen Quellen (das kleine lilane).

vg
Jan

Benutzeravatar
H.A.R.R.Y.
Beiträge: 1083
Registriert: 01 Okt 2012, 08:38
Wohnort: Westpfalz

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von H.A.R.R.Y. » 13 Apr 2021, 07:52

Hallo Uwe,

ein TCS34725 eignet sich genauso für die Farberkennung. Diese TCS34725-Boards haben üblicherweise noch Spannungsregler und Level-Shifter an SCL und SDA (nicht aber am /IRQ !) für den Einsatz an einem 5V-I²C. Der VEML6040 kommt auf den Boards recht nackt daher und ist auf 3,6 V beschränkt. Meine Erfahrung damit: Sehr gute und wiederholbare Farbselektion. Der ft-"Farb"-Sensor 128599 kommt da prinzipbedingt niemals auch nur in die Nähe.

Möglicherweise benötigst Du auch noch Polarisationsfilter um Glanzlichter und deren farbverfälschende Wirkung zu eliminieren.

Was meinst Du mit "dritte Lichtschranke"? Eventuell geht der Farbsensor auch in der Anwendung als banaler Reflexkoppler?

Grüße
H.A.R.R.Y.
[42] SURVIVE - or die trying

juh
Beiträge: 899
Registriert: 23 Jan 2012, 13:48

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von juh » 13 Apr 2021, 12:07

hallo Harry,
RasPi I2C läuft glaube ich mit 3,3V, trotzdem ist das Board mit level shifter natürlich flexibler. Was ich den interessanteren Unterschied finde ist der Interrupt-Pin und v.a. die clever realisierte Steuerbarkeit für die Flash LED. Die ist bei dem kleinen VEML6040 Board nur per (standardmäßig gesetzter) Lötbrücke aktivierbar.

vg
Jan

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von MasterOfGizmo » 13 Apr 2021, 12:31

Au ja, schickes 3D-Druck-Gehäuse für das typische TCS34735-Platinchen wäre ja nett.
juh hat geschrieben:
13 Apr 2021, 12:07
RasPi I2C läuft glaube ich mit 3,3V
Aber wenn man einen TX-Pi-HAT hat, dann hat man dort sowohl 3.3V als auch 5V zur Auswahl. Und wenn man dann noch einen ftDuino hat, dann lohnt es sich ggf. eine 5V-Variante zu bauen. Die kann man dann überall anschließen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Uwe
Beiträge: 17
Registriert: 11 Mai 2019, 17:22

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von Uwe » 13 Apr 2021, 20:15

Danke Euch für Eure Rückmeldungen. Den TCS34725 werde ich mir auf jeden Fall als Farbsensor zulegen. Sonst nehme ich für reine Farberkennung die Pixy2. Die habe ich am WallE auch unter Python im Einsatz. Auch wenn es hier etwas off-topic ist, hat jemand eine Idee wie ich die Beleuchtungs-LEDs der Pixy2 per i2c über python aktivieren kann? Das ist mir bisher noch nicht gelungen.

Zurück zum Flipper-Modell. Hier hätte ich vielleicht noch ein Wort mehr verlieren sollen. Bei dem Aufbau aus dem electro-pneumatic Kasten kommt es an der Stelle weniger auf die Farberkennung an, sondern der Sensor fungiert hier mehr als Näherungsschalter. Je Näher die Kugel dem Sensor kommt, desto stärker die Reflexion bzw. der Sensorausschlag und umso mehr Punkte kann man vergeben 8-) . Alternativ könnte man eine einfache Kugelpassage mit einer weiteren Lichtschranke messen.

Mir ist aber vorhin noch eine Idee gekommen. Ich habe noch so einen netten kleinen VL53L0X ft-Lidar Sensor aus Björns Onlineshop. Der passt bautechnisch perfekt an die Stelle des Farbsensors und kann die Kugel per I2c vermutlich viel besser tracken und auch die Entfernung sicherer bestimmen. Das werde ich mal ausprobieren. Ich muss blos erst mal einen kleinen Pfostenstecker anbringen, da der Extender gerade blockiert ist. Dann hoffe ich das ich das Auslesen über Python hinbekomme. Ich werde berichten :-)

Benutzeravatar
Bjoern
Beiträge: 630
Registriert: 04 Jan 2018, 12:34

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von Bjoern » 13 Apr 2021, 21:43

Hallo Uwe,

ich vermute mit dem Extender meinst du den ft-Extender von mir. Du brauchst einfach einen 2ten :D

Ich habe noch ein paar von den RGB Sensoren. Wollte da eigentlich mal ein Gehäuse erstellen, Kabel dran und fertig wäre der ft-RGB.
Falls du einen schnell brauchen solltest, wäre das evtl. eine schnellere Alternative für dich.

Grüße
Björn
https://gundermann-software.de/shop/
Der Shop für viele Community Projekte

Uwe
Beiträge: 17
Registriert: 11 Mai 2019, 17:22

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von Uwe » 15 Apr 2021, 22:12

Hallo Björn,

ja genau, den ft-Extender meinte ich. Und ja ein Zweiter ist doch schon bestellt :).
Den Sensor würde ich direkt mit auf die Bestellung draufpacken - Details dann per Email.

Den Lidar-Sensor habe mittlerweile im Flipper eingebaut und mit dem Testprogramm auch ein sehr zuverlässiges Tracking auch von schnellen Kugelpassagen feststellen können.
Am Wochenende habe ich dann hoffentlich Zeit das Ganze im Flipper Programm einzubinden. Die Jungs werden langsam ungeduldig :mrgreen: .

LG
Uwe

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von MasterOfGizmo » 16 Apr 2021, 16:29

Du könntest auch einen apds9960 nehmen. Die Maulwürfe bei ft gerüchten, dass ft den im Sommer ins Programm nehmen will. Allerdings ist der bei der Farberkennung nicht ganz so toll.

Vielleicht macht ja auch jemand für den ein Gehäuse und ist dann kompatibel zu allem, was da im Sommer kommt
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
Bjoern
Beiträge: 630
Registriert: 04 Jan 2018, 12:34

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von Bjoern » 18 Apr 2021, 13:37

Hi Till,

der apds9960 müsste dann ja der RGB Gestensensor sein, der im Robotics Smarttech dazu kommt. Den gibt es im Hightech dann auch wieder nicht.
Macht den Smarttech wieder etwas teurer im Vergleich zum Hightech und die Preisempfehlung wieder verwunderlicher.

Der Sensor selber kostet zwar nicht viel, aber Gehäuse drum und etwas Entwicklungszeit schlägt ja dann doch wieder durch.

Björn
https://gundermann-software.de/shop/
Der Shop für viele Community Projekte

Uwe
Beiträge: 17
Registriert: 11 Mai 2019, 17:22

Re: ft-Pinball mit TxPiHat - Farbsenor 128599 ansteuern

Beitrag von Uwe » 19 Apr 2021, 21:33

Bei der Integration des VL53L0X Lidar Sensors im Zusammenspiel mit dem TX-Pi-HAT in mein Pinball Python 3 Programm habe ich mir am Wochenende leider die Zähne ausgebissen. Vermutlich müsste ich das Problem eher in einem Raspiforum posten, versuche aber dennoch hier mein Glück :oops:, Python wird mit dem TXT 4.0 ja noch etwas mehr Bedeutung gewinnen. :mrgreen:

Ohne Displayausgabe funktioniert noch alles ganz hervorragend. Zunächst musste ich folgende API installieren:

Code: Alles auswählen

pip3 install git+https://github.com/pimoroni/VL53L0X-python.git
Ohne Displayausgabe (Waveshare 3,5") klappt alles ohne Fehlermeldung. Ich kann in der Konsole die Distanz auslesen. Sobald ich mit TxtStyle eine GUI einbinde crashed der Code. Die GUI ohne die Sensorabfrage klappt auch Problemlos. Sobald ich "import VL53L0X" zusammen mit der GUI einfüge hakt es.

Anbei der abgespeckte Code aus meinem Testsetup:

Code: Alles auswählen

#! /usr/bin/env python3
# -*- coding: utf-8 -*-
#

import sys
from TxtStyle import *
import VL53L0X

tof = VL53L0X.VL53L0X()         # Create a VL53L0X object
tof.open()                      # Verbindung zum Sensor initiieren
tof.start_ranging(VL53L0X.Vl53l0xAccuracyMode.BETTER) #Distanzabfrage mit guter Genauigkeit starten
print(tof.get_distance())       # Distanz in mm auf ssh Konsole ausgeben
tof.stop_ranging()              # Stoppe Sensor Abfrage (nach Testpase ans Programmende setzen)
tof.close()                     # Verbindung zum Sensor stoppen

class FtcGuiApplication(TxtApplication):
    def __init__(self, args):
        TxtApplication.__init__(self, args)

        self.w = TxtWindow("Test_Pinball")

        self.vbox = QVBoxLayout()
        self.w.centralWidget.setLayout(self.vbox)

        self.w.show() 
        self.exec_()               
        
if __name__ == "__main__":
    FtcGuiApplication(sys.argv)
In der ssh console wird die Entfernung immerhin weiter ausgegeben aber auch folgende Fehler:
"No protocol specified
test.py: cannot connect to X server :0.0"

Vermutlich wird dadurch die eigentliche Fehlermeldung unterdrückt.

Ich bin mit ubuntu per ssh auf dem raspi eingeloggt. Vor dem Ausführen des Programms führe ich einmalig folgende Befehle aus:
export PYTHONPATH=/opt/ftc
export DISPLAY=:0.0

Das Display Server Problem habe ich noch nicht lösen können und dem eigentliche Problem vermutlich im Zusammenspiel von VL53L0X und TxtStyle bin ich noch nicht auf die Schliche gekommen. Vielleicht habt ihr ja noch eine Idee.

Antworten