-
        

Ergebnis 1 bis 9 von 9

Thema: Farbsensor

  1. #1

    Farbsensor

    Anzeige

    huhu

    ich habe garde den Farbsensor TCS230 RGB-Sensorchip zu geschickt bekommen. Datenblatt findet ihr hier : http://www.micromaus.de/tcs230.pdf
    eigentlich wolte ich einen sensor, der volt werte zurück gibt.

    Ich habe einen Flash M1 von der Firma Wickenhäeuser als Microkontoller.

    Meine Frage ist welche Schlatung ich beutzen kann oder muss um die um die Wete des Sensors auszulesen. Oder an welche Art von Port ich den Sensor anschließen muss.

    gruß arnie black

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    31
    Beiträge
    4.255
    der sensor gibt ein rechtecksignal mit einer frequenz aus, die von der farbe abhängt. du musst also die frequenz messen, indem du sie zb auf eine interrupteingang legst dun die periodendauer misst...

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2006
    Beiträge
    23
    Ich steh gerade vor dem selben Problem:

    ATMEGA8 zum auslesen, TCS230 als Farbsensor und 3 LEDs als Lichtquellen.

    Ist das Auswerten (=Periodendauer messen) nur an den Interrupt Eingängen möglich (oder bezog sich das auf den Flash M1)???

    mmg
    Franz

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es hätte gereicht einen der alten tasks zur Farberkennung wiederzubeleben.

    DAs Problem scheint also das auslesen des Farbsensors TCS230 zu sein, der ein Frequenzsignal ausgibt. Die Frequenz kann man entweder durch zählen der Flanken in einer festen Zeit (z.B. 0.1 s) oder durch stoppen der Zeit für eine Feste Zahl von Perioden (z.B. 1 oder 100) bestimmen. Die Frequenzen, die der Sensor ausgibt, sind so das man beim Mode mit den hohen Frequenzen wohl besser das Pulse Zählen wählen sollte, denn ohne extra Hardware wird das zu schnell sein um die Zeiten zu messen. Bei der Niedrigen Frequenz könnte man schon die Zeiten für Flanken indiwiduell messen und daraus die Frequenz bestimmen. Das 2.te verfahren ist aufwendiger, in der Regel sollte man aber damit mehr Auflösung oder ein schnelleres Ergebnis kriegen. Für die Farbmessung sollte das Zählen der Flanken reichen. Wie man das genau macht hängt vom verwendeten Controller ab. Oft gibt es einen Eingang zum Zählen von externen Flanken, der gerade für diese Funktion gedacht ist.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2006
    Beiträge
    23
    Hallo,

    Erstmal sry, war wohl etwas übermotiviert

    Hätte mich urspruenglich für das Messen der Dauer eines Impulses festgelegt (wovon du bei höhern Frequenzen ja ablehnst):
    Dachte an eine Schleife die den Controller mal mit Nichts tun beschäftigt bis er auf eine positive Flanke stößt. Der Timer wird gestartet, es folgt Nichtstun solange High. Bei der negativen Flanke stoppt er den Timer, ermittelt daraus die (Periodendauer) Frequenz.

    Hab natürlich schon bisschen gestoebert, weiß desshalb auch bezüglich Overflow und Prescaler bescheit (oder hoffe zumindest). Ich haben aber dann trotzdem irgendwann den Überblick verloren. Speziell das Einstellen des Timers und die Verwendung des Timers als Counter sind für mich Neugebiet.

    mmg Franz

  6. #6
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Es spricht nichts gegen die Methode mit der Messung der Periodendauer. Man sollte dann aber den Modus mit der Niedrigen Frequenz wählen. Wenn man ein schnelles ergebnis haben will ist das Verfahren definitov das bessere.
    Der Weg mit der kurzen Schleife, die auf die Flanke wartet gibt eine unsicherkeit von einer Schleifenlänge. In Assembler sind das wohl 3 bis 5 zyklen in C wohl etwa mehr. Für die genaue Zeitmessung gibt es sonst noch die "input capture funktion" damit kann man Zeiten auf einen Zyklus genau messen. Da die Zeiten hier relativ kurz sein werden, kommt man auch ohne Überlauf aus. Man kriegt da bei jeder Flanke (der einen Sorte) einen Interrupt und den Zählerstand zu der Zeit. Man berechent einfach die Differenz zur letzten Zeit und hat dann sofort die Perioden dauer.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2006
    Beiträge
    23
    input capture funktion nicht möglich -> kein ICP Eingang frei

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Input capture funktion kann man auch über den komperator nutzen. Damit sollten auch die AD kanäle gehen.
    Wenn die ICP funktion nicht geht, dann ist die Methode mit dem warten auf die Flanken und dem timer zur messung wohl das beste. Eventuelle solle man zwei gleiche Flanken auswählen oder sogar etwas mehr als eine Periode messen. Eventuell sollte man das Warten auf die Flanke in Assembler schreiben, damit die Schleife möglichst kurz wird.

  9. #9

    TCS230 am ATmega8 nutzen

    Hi,
    habe ein Projekt gesehen, das zum Thema paßt:

    http://gruste.npage.de/

    Der hat ein Farberkennungssystem für Blinde damit gebaut.

    ciao
    robocop78

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •