Vergleich zweier Ausgaben von einem Farbsensor

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Schlangenmensch
User
Beiträge: 61
Registriert: Freitag 18. Februar 2022, 10:13

Hallo liebe Forummitglieder,

ich habe für meinen Pico ein kleines Programm erstellt mit dem ich anhand eines Farbsenors Farben von Oberflächen erkennen möchte.

Das ganze funktioniert soweit auch ganz gut. Was mich nun aber interessiert, ist die Ausgabe vom Programm bzw. wie diese von Python gelesen wird "(2,2,3,4)".

Wenn ich dem Programm zum Beispiel eine if farb >= (2,2,3,4) Bedingung hinzufüge, würden hier dann die ganze Zahlenreihe verglichen oder ist die Bedingung auch dann erfüllt wenn nur eine der Zahlen grösser ist.

Code: Alles auswählen

from machine import Pin
from machine import SoftI2C
from tcs34725 import TCS34725
from time import sleep

i2c_bus = SoftI2C(scl=Pin(17), sda=Pin(16))
tcs = TCS34725(i2c_bus)

while True:
	
	farb = tcs.read('raw')
	
	print(farb)
	sleep(1)
Ich hoffe ich konnte mein Anliegen einigermassen beschreiben.
__deets__
User
Beiträge: 14544
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ist lexikographisch sortiert. Es wird paarweise von links nach rechts verglichen, und sobald die Bedingung erfuellt ist, war es das.

Es gibt verschiedene Abstandsmasse fuer Farben, die du benutzen kannst. Bei gut uenterscheidbaren Farben zB einfach in HSV wandeln, und bei ausreichenden SV Anteilen den Abstand zu H bestimmen mit einer Vergleichsfarbe.
Schlangenmensch
User
Beiträge: 61
Registriert: Freitag 18. Februar 2022, 10:13

Vielen Dank für die schnelle Antwort.

Zu verstehen wie die Werte vom Programm gelesen werden hilft mir schonmal enorm weiter. Mit dem Umwandeln der Farben muß ich mich dann zuerst noch beschäftigen.

Wünsche noch einen schönen Sonntag.
Antworten