Отговори на тема  [ 5 мнения ] 
СЕНЗОР ЗА РАЗПОЗНАВАНЕ НА ЦВЕТОВЕ TCS34725 
Автор Съобщение
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Нед Сеп 15, 2013 1:42 am
Мнения: 9
Мнение СЕНЗОР ЗА РАЗПОЗНАВАНЕ НА ЦВЕТОВЕ TCS34725
Здравейте,

Направих един уред за измерване на цветна температура на светлината със цифров сензор за цвят TCS34725 и Arduino UNO. Купих си платката на ADAFRUIT и допълнително само сензора TCS34725.
Схемата е следната:
Изображение

Не използвам готовият софтуер на ADAFRUIT понеже те са ползвали като данни алгоритъма на AMS за TCS3414CS , а двата сензора имат различни параметри и резултатите са нереални. Направих друг алгоритъм с точните данни за TCS34725 и се получиха много добри резултати както за цветната температура, така и за осветеността в луксове. Резултатите за осветеността са идентични с моя луксмер MASTECH. Резултатите при измерване на цветната температура на светодиод с точно определен а CCT - 4150 К, както и на халогенни лампи също са точни.

Gain:60x Time:614ms (0x0)
Raw R:7739 G:8869 B:10309 C:20503
IR:3207 CRATIO:0.16 Sat:65535 Sat75:65535
CPL:118.84 Max lux:183.82
Compensated R:4532 G:5662 B:7102 C:17296
Illuminance:26Lux CCT:7362K

Това са резултатите от серийния монитор на Ардуиното. Сега мисля да преправя нещата и да направя отделен уред само със процесор ATmega328P на основата на който е изградено Arduino UNO и един двуредов LCD с някакъв Li-ion акумулатор от телефон да речем, USB зарядно със MCP73831T-2ATI/OT и трансфертер със MCP1640 .

Идеята ми е да стане самостоятелен уред без да има нужда от компютър за да работи като на дисплея ще се индицират единствено осветеността в Луксове и цветната температура в Келвини. Ако някой прояви желание ще му пратя софтуера с удоволствие. Въпросът ми е някой занимавал ли се е с тези цифрови сензори за разпознаване на цветове на AMS да обменим опит? :)


Съб Ное 05, 2016 9:47 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 9:14 am
Мнения: 5298
Мнение Re: СЕНЗОР ЗА РАЗПОЗНАВАНЕ НА ЦВЕТОВЕ TCS34725
Аз миналата година интензивно работих известно време с тях. С микромайт цялата работа става за няколко минути и няколко реда. Мога да ти пратя код

_________________
'просто' е технически синоним на 'красиво'


Съб Ное 05, 2016 10:45 pm
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Нед Сеп 15, 2013 1:42 am
Мнения: 9
Мнение Re: СЕНЗОР ЗА РАЗПОЗНАВАНЕ НА ЦВЕТОВЕ TCS34725
Аз не съм запознат с Микромайт и току що го разглеждам и изглежда доста интересно. Нямам PICKIT 3 програматор за да мога да записвам 32 серия. Ползвам други програматори за Пикове, но те не поддържат 32 серия. Аз отдавна се каня на PICKIT 3 и сега тъкмо мога да си намеря повод да си купя такъв. Ако ми пратиш код все пак ще извлека някаква полза дори и да не го направя по този начин. При мен се получават различни показания на цветната температура при промяна на осветеността. Варира при едни и същи светодиоди между 4800 и 5300 Келвина с около 10 процента при промяната на положението на сензора спрямо лампата. При теб има ли го този проблем? :)


Съб Ное 05, 2016 11:58 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Яну 25, 2012 9:14 am
Мнения: 5298
Мнение Re: СЕНЗОР ЗА РАЗПОЗНАВАНЕ НА ЦВЕТОВЕ TCS34725
Няма проблем. Ето ти код за него:


    const TCSaddr = &H39 ' TCS3490x or TCS3472x light sensor I2C address

    I2C open 200, 150 ' open the I2C bus (200kbps, 150ms timeout)

    ' initialisation
    I2C write TCSaddr, 0, 2, &H80, &H01 ' set ENABLE_PON
    pause 5
    I2C write TCSaddr, 0, 2, &He7, &Hff ' send "Clear All Interrupt Flags" command
    pause 1
    I2C write TCSaddr, 0, 2, &H80, &H03 ' set ENABLE_PON and ENABLE_AEN
    pause 1
    I2C write TCSaddr, 0, 2, &H81, 84 ' set integration time 478.16ms
    pause 1
    I2C write TCSaddr, 0, 2, &H8f, 0 ' set gain 1
    pause 5

    dim integer t, d(8)
    do
    I2C write TCSaddr, 1, 1, &H94 ' send command "Read Clear Channel Data"
    pause 0.25
    I2C read TCSaddr, 0, 8, d() ' read all colour registers
    for t=0 to 7
    print hex$(d(t),2);
    next
    print
    pause 1000 ' should be no less than the sensor integration time
    loop


Нормално е да ти се променя изхода при промяна на положението. Не си спомням в момента, но самия сензор имаше някакъв малък ъгъл на реакция и реално погледнато реагира на точка а не на обкръжаваща светлина. Така че като го мърдаш той всъщност "вижда" различни точки които са с различна осветеност и цвят. В идеалния случай сензорът трябва да бъде на 90 градуса ъгъл спрямо каквото мериш и да го вижда през тръбичка. Така ще изолираш смущенията.

_________________
'просто' е технически синоним на 'красиво'


Нед Ное 06, 2016 11:01 am
Профил
Ранг: Минаващ
Ранг: Минаващ
Аватар

Регистриран на: Нед Сеп 15, 2013 1:42 am
Мнения: 9
Мнение Re: СЕНЗОР ЗА РАЗПОЗНАВАНЕ НА ЦВЕТОВЕ TCS34725
:)
Благодаря за кода. Ще го разгледам за да видя с какво може да ми помогне.

Супер много съм доволен дето ми подсказа за ъгълът на реакция на сензора, защото аз си мислех, че проблемът е софтуерен. Сега вече ще се насоча към оптиката.

Характеристиката на сензора е следната:
Изображение

Явно заради това на платката на GROVE със TCS3414, който има същата ъглова характеристика като TCS34725 са решили този проблем с основата на оптика от малка охранителна камерка.

Изображение

Имам някъде една неработеща камера и ако успея да я намеря ще пробвам този вариант.
:)


Нед Ное 06, 2016 2:00 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 5 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни