Skocz do zawartości

Intel edison czujnik


Sawa

Pomocna odpowiedź

Cześć wszystkim.

Czy ktoś byłby w stanie udzielić informacji jako oprogramować czujnik (prosta komunikacja odczyt częstotliwości http://botland.com.pl/czujniki-swiatla-i-koloru/1477-modul-z-czujnikiem-koloru-tcs3200d.html ) na Intel Edisonie w C? Z tego co się dowiedziałem ten procesor nie ma wbudowanych timerów dostępnych na pinach GPIO, więc sprzętowe liczenie zdarzeń (tj. zboczy sygnału) odpada a programowe - pod kontrolą linuxa (wywłaszczanie zadań i podział czasu) - przy częstotliwościach rzędu 100kHz jest niemożliwe. Ktoś ma jakiś pomysl jak wyjsc z tej patowej sytuacji???

Link do komentarza
Share on other sites

Najprościej wybrać inny czujnik - ten ma wbudowany konwerter prąd-częstotliwość, który nie najlepiej pasuje do możliwości Edisona (łatwiej byłoby mierzyć prąd).

Inna opcja to dodanie układu wykonującego konwersję częstotliwość-napięcie. Może to być układ scalony, np. LM2917, albo nawet prosty filtr RC. W wyniku otrzymamy wtedy napięcie zalezne od częstotliwości, które można będzie już łatwo zmierzyć wykorzystując przetwornik analogowo-cyfrowy.

[ Dodano: 12-01-2016, 12:22 ]

Można też wykorzystać PLL - np. układ 74HC4046.

  • Lubię! 1
Link do komentarza
Share on other sites

Teraz sobie przypominam, że taki sam problem miał niedawno Artu. Pytał o zliczanie szybkich zdarzeń chyba na Malinie albo innym podobnym wynalazku. Wtedy poradziłem mu zegarek czasu rzeczywistego PCF8593, ale nie wiem czy skorzystał:

http://www.nxp.com/documents/data_sheet/PCF8593.pdf

Jeśli ustawisz ten scalak w tryb licznika zdarzeń (event counter), to zamiast kwarcu 32kHz podłączasz mierzoną częstotliwość (chyba do 1MHz) a główny łańcuch liczników zamiast liczyć sekundy, minuty i godziny pracuje w trybie dziesiętnym 0-999999.

Zegarek, a właściwie teraz licznik dostępny jest przez I2C więc podłączasz dwa druty (SCL i SDA) do odpowiedniego interfejsu w Edisonie i tyle. Sprawdź, czy będziesz mógł obsłużyć I2C przez dostępne biblioteki.

Przed pomiarem ustawiasz odpowiedni kolor na wyjściu czujnika, zerujesz przez I2C łańcuch liczników, czekasz określony czas i odczytujesz - także przez I2C - co się zliczyło. Metoda nie jest najlepsza, bo procesor napędzany Linuxem może mieć problemy z precyzyjnym pomiarem czasu i z wykonywaniem operacji na I2C dokładnie wtedy kiedy chcesz. Musisz spróbować zmierzyć wiele razy to samo i oszacować jakiej wielkości błędy mogą mieć miejsce. Jeśli Edison będzie robił kłopoty, możesz użyć innego scalaka (choćby 555) do wygenerowania precyzyjnego impulsu bramkowania licznika - wtedy będzie na pewno OK.

Edison ma też interfejs I2S - to szeregowy link do kodeków audio. Możesz tam podpiąć jakiś prosty kodek z wejściem sygnału mikrofonowym, wczytać ze znaną częstotliwością próbkowania (np. 44.1kHz) plik audio (np. wav) a potem obrobić go prostym algorytmem tak, by wyszukać liczbę okresów wzdłuż określonej liczby próbek. Kodek w trybie nagrywania to nic innego jak przetwornik A/C samplujący sygnał z zadaną częstotliwością. Gdybyś zrezygnował z tych 100kHz i zmienił tryb czujnika na zakres 10kHz - mógłbyś to przez wejście audio wciągnąć, bo to już mieści się w paśmie akustycznym.

To samo możesz zrobić ze zwykłą kartą muzyczną na USB wyposażoną w wejście mikrofonowe. Myślę, że za <20zł możesz coś takiego kupić. Musi być tylko wykrywana przez system.

Oczywiście dołączenie np. przez UART prostego procesorka (nawet ATtiny za 4zł) załatwia wszelkie problemy, ale trzeba napisać kawałek kodu.

----------------------

EDIT: Gdybyś podłączył mierzoną częstotliwość do wejścia zegara interfejsu SPI a linię MOSI do masy i wcześniej ustawił interfejs w tryb Slave, odbierałbyś zerowe bajty co 8 impulsów. Może wystarczy mierzyć ile bajtów odbierzesz w ciągu np. sekundy? Drivery SPI i procesor powinni poradzić sobie z transferem rzędu 12kbajtów/s.

  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.