Autor, zainspirowany podobnym rozwiązaniem wypatrzonym w serwisie instructables.com, postanowił zaprojektować swoją – ulepszoną – wersję czujnika koloru opartego o diodę LED RGB i fotorezystor. Główne cechy, jakie powinien posiadać czujnik, to:
- Jak najmniejsza z możliwych liczba wyprowadzeń.
- Praca jako samodzielne urządzenie, dokonywanie wszystkich wyliczeń w obwodach czujnika.
- Praca w trybie ciągłym bądź z wyzwalaniem.
- Możliwość programowania wszystkich parametrów.
- Dane kalibracyjne przechowywane w pamięci EEPROM.
- Możliwość wgrywania nowego firmware’u.
- Jak najmniejszy rozmiar.
Do budowy czujnika autor wybrał procesor ATTiny85 – ma niewielkie rozmiary, ale posiada odpowiednią ilość pamięci na dokonywanie obliczeń. Ilość wyprowadzeń jest także wystarczająca – w projekcie wykorzystano wszystkie osiem.
Problemem za to był fakt, iż ATTiny nie posiada wgranego bootloadera – dlatego autor wykorzystał bootloader tinyloader, który jest szybki i zajmuje zaledwie 256 bajtów pamięci. Pozwoliło to też na wykonanie czujnika z jedynie 4-ma wyprowadzeniami: VCC, GND, TX oraz RX. Całość została skonstruowana w oparciu o elementy SMD.
Jak działa czujnik? Kolor jest niczym więcej, jak falą światła o określonej długości, odbijaną od powierzchni obiektu. Każdy materiał odbija różne fale światła, stąd różnica w zabarwieniu. Dioda LED umiejscowiona w czujniku wysyła w stronę badanej powierzchni trzy różne fale światła (czerwoną, zieloną i niebieską), a fotorezystor służy do pomiaru, jak silnie dana fala świetlna jest odbijana i zgodnie z tym zmienia swój opór. Fotorezystor połączony jest z rezystorem 10 kΩ, tworząc dzielnik napięcia. Napięcie odpowiadające każdej wysyłanej i odbitej fali mierzone jest przez przetwornik A/D mikroprocesora, a wynikiem pomiarów są 3 bajty wartości, po jednym dla każdego koloru – mogą one posłużyć do rekonstrukcji określanej czujnikiem barwy.
Do budowy czujnika potrzebna jest zaledwie garść elementów: procesor ATTiny85, dioda RGB w obudowie PLCC, fotorezystor (najlepiej zbudowany z siarczku kadmu, jego odpowiedź zbliżona jest do ludzkiego oka), rezystor 10 kΩ i 220 Ω. Poniżej przedstawiono schemat urządzenia i wzór płytki drukowanej.
Kod dla procesora został oparty na wzmiankowanym we wstępie rozwiązaniu. Poniżej można zobaczyć graf z algorytmem działania i kod dla procesora.
Kod: text
Na stronie źródłowej dostępne są projekty płytki w formacie Eagle i szczegóły dot. wgrywania i konfiguracji bootloadera.
Źródło
Fajne? Ranking DIY
