Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Czujnik rozpoznający kolor i mówiący jego nazwę.

jacekkr54 20 Mar 2018 18:40 1290 21
  • #1 20 Mar 2018 18:40
    jacekkr54
    Poziom 6  

    Witam , chciałbym prosić o pomoc w wykonaniu czujnika który rozpoznawał by kolor tkaniny , materiału i wypowiadał jego nazwę głosem , do nauki używam mikrokontrolera ATMEGA 328P , czy będzie wystarczający do tego celu ? Jestem początkujący .

    0 21
  • Pomocny post
    #3 20 Mar 2018 20:01
    Piotr Piechota
    Poziom 21  

    Poszukaj w googlach "czujnik koloru KPS-5130". Znajdziesz opisany prosty projekt.

    0
  • #4 20 Mar 2018 20:06
    ghost2000
    Poziom 17  

    jacekkr54 napisał:
    materiału i wypowiadał jego nazwę głosem , do nauki używam mikrokontrolera ATMEGA 328P , czy będzie wystarczający do tego celu

    Jeśli nie masz większych wymagań co do jakości głosu tak. Musisz jednak dołożyć zewnętrzną pamięć, np DataFlash na próbki dźwięku. Rozpoznawanie koloru inny temat. Sygnał RGB z czujnika może być analogowy (tu nie ma problemu) lub cyfrowy np SPI. Jedno SPI zużyjesz na obsługę pamięci próbek dźwięku, w roli drugiego (czujnik koloru) użyjesz usarta.
    Da się to zrobić ale wygodniej użyć ARM. Próbki zmieszczą się w uC, dźwięk będzie wyższej jakości, całość pewnie wyjdzie taniej niż AVR+DataFlash. Program napiszesz szybciej, bo nie trzeba kombinować z programem. Używałeś Arduino, CubeMX i HAL, to takie zaawansowane Arduino.

    0
  • Pomocny post
    #5 20 Mar 2018 20:50
    tmf
    Moderator Mikrokontrolery Projektowanie

    ghost2000 napisał:
    Da się to zrobić ale wygodniej użyć ARM. Próbki zmieszczą się w uC, dźwięk będzie wyższej jakości, całość pewnie wyjdzie taniej niż AVR+DataFlash. Program napiszesz szybciej, bo nie trzeba kombinować z programem. Używałeś Arduino, CubeMX i HAL, to takie zaawansowane Arduino.

    To raczej bajki. 1 sekunda dżwięku 8-bit, PCM, 11 kHz próbkowanie, zajmuje 11 kB. Czyli minuta to już 660 kB. Wskaź mi sensownego ARMa, który ma tyle FLASH i wyjdzie taniej niż zakup jakiegokolwiek małego MCU z zewnętrzną pamięcią na próbki? Jakość dźwięku nie zależy też od tego, czy to ARM, czy AVR, czy PIC. To co miałoby wpływ to sposób jego generacji - typowo PWM - tu aby uzyskać wyższą rozdzielczość PWM, należy odpowiednio szybko popędzać timer, rdzeń MCU nie ma nic do rzeczy. Dla mowy 8-bitowa rozdzielczość jest w zupełności wystarczająca i praktycznie każdy MCU sobie z tym radzi. Program również jest praktycznie identyczny niezależnie od rdzenia MCU, bo i sposób generowania dźwięku jest taki sam. Użycie do tego jakiegokolwiek frameworka to nieporozumienie.

    @jacekkr54 Tu masz przykład jak to zrobić na ATTiny:
    http://elm-chan.org/works/sd8p/report.html

    0
  • #6 20 Mar 2018 21:06
    ghost2000
    Poziom 17  

    tmf napisał:
    Czyli minuta to już 660 kB

    Potrzebna aż minuta na próbki? Chyba, ze maja to byc kolory "Wściekły łosoś na tle pastwiska, patrzący na księżyc w południe".

    tmf napisał:
    Jakość dźwięku nie zależy też od tego, czy to ARM, czy AVR, czy PIC. To co miałoby wpływ to sposób jego generacji - typowo PWM

    Nieliczne AVR umożliwiają popędzanie PWM 64MHz. Mega328 daje taka możliwość? Może jednak max to 20MHz? Jaka będzie max częstotliwość odtwarzania dźwięku przy PWM20MHz? Z jaką częstotliwością może działać przetwornik CA w STM32F4?

    0
  • #7 20 Mar 2018 21:19
    tmf
    Moderator Mikrokontrolery Projektowanie

    ghost2000 napisał:
    tmf napisał:
    Czyli minuta to już 660 kB


    Potrzebna aż minuta na próbki? Chyba, ze maja to byc kolory "Wściekły łosoś na tle pastwiska, patrzący na księżyc w południe".


    A ile sekund będzie potrzebne? Nawet jeśli to będzie tylko 30 s, to 330 kB min.
    ghost2000 napisał:
    tmf napisał:
    Jakość dźwięku nie zależy też od tego, czy to ARM, czy AVR, czy PIC. To co miałoby wpływ to sposób jego generacji - typowo PWM


    Nieliczne AVR umożliwiają popędzanie PWM 64MHz. Mega328 daje taka możliwość? Może jednak max to 20MHz? Jaka będzie max częstotliwość odtwarzania dźwięku przy PWM20MHz? Z jaką częstotliwością może działać przetwornik CA w STM32F4?


    To policzmy, dla 20 MHz, 8-bitowa rozdzielczość - mamy PWM 78 kHz, dużo więcej niż potrzeba. Ktoś chce się pobawić w super jakość, to wracamy do początku - czyli konieczności użycia zewnętrznej pamięci. Zresztą w każdym przypadku zewnętrzna pamięć będzie po prostu tańsza niż kupno MCU z odpowiednią ilością FLASH.

    0
  • Pomocny post
    #8 20 Mar 2018 21:24
    2675900
    Użytkownik usunął konto  
  • Pomocny post
    #9 20 Mar 2018 21:54
    ghost2000
    Poziom 17  

    tmf napisał:
    ile sekund będzie potrzebne? Nawet jeśli to będzie tylko 30 s, to 330 kB min.

    Dla PCM a dla ADPCM?

    0
  • Pomocny post
    #10 20 Mar 2018 22:21
    tmf
    Moderator Mikrokontrolery Projektowanie

    Piotrus_999 napisał:
    @Tmf - wskaż mi mały procesor z 1MB zewn pamięcią który będzie tańszy od tego. Do tego będzie miał DAC.


    Proszę bardzo - np. ATTiny817 - masz DAC, koszt ok. 3,77 zł, do tego DataFLASH - 4 MB - ok. 8 zł, łącznie wyjdzie taniej niż podany procek, a masz 4 MB pamięci. Poza tym po co DAC? To samo się osiągnie przy pomocy PWM na timerze.
    ghost2000 napisał:
    tmf napisał:
    ile sekund będzie potrzebne? Nawet jeśli to będzie tylko 30 s, to 330 kB min.
    Dla PCM a dla ADPCM?

    No i sobie jakąś tam małą kompresję zrobisz, i co? Na ARM będziesz miał bardziej skompresowane niż na innym MCU?

    0
  • #11 20 Mar 2018 22:30
    jacekkr54
    Poziom 6  

    Jakość dźwięku , pasmo telefoniczne 0,3-3,4 kHz , a nawet mogłoby być mniej , tak aby można było zrozumieć , kolory RGB i pośrednie , fiolet , pomarańczowy, i inne zbliżone , w miarę możliwości , KPS-5130 czujnik analogowy ,czy będzie działał z tkaniną ? Odtwarzacz audio z linka mógłby być przydatny? O ARM mało wiem , muszę najpierw poczytać o tym.

    0
  • Pomocny post
    #12 20 Mar 2018 22:31
    ghost2000
    Poziom 17  

    tmf napisał:
    No i sobie jakąś tam małą kompresję zrobisz, i co? Na ARM będziesz miał bardziej skompresowane niż na innym MCU?

    ARM dźwignie MP3? Tak. AVR da radę?

    0
  • Pomocny post
    #13 20 Mar 2018 22:49
    tmf
    Moderator Mikrokontrolery Projektowanie

    @ghost2000 Może zamiast zadawać dziwne pytania, sobie sam poszukasz? Owszem, są biblioteki mp3 na AVR, nie wiem po co jeszcze mp3 do tego zaprzęgać, ale też nie rozumiem po co ta dziwna dyskusja.

    jacekkr54 napisał:
    Jakość dźwięku , pasmo telefoniczne 0,3-3,4 kHz , a nawet mogłoby być mniej , tak aby można było zrozumieć , kolory RGB i pośrednie , fiolet , pomarańczowy, i inne zbliżone , w miarę możliwości , KPS-5130 czujnik analogowy ,czy będzie działał z tkaniną ? Odtwarzacz audio z linka mógłby być przydatny? O ARM mało wiem , muszę najpierw poczytać o tym.

    Podałem ci link do gotowca. Autor daje też kody źródłowe, zresztą odtwarzanie PCM z karty SD lub pamięci to parę linii kodu. Dla karty SD masz gotową bibliotekę na podanej stronie. W sumie wykorzystanie karty może być o tyle fajne, że łatwo podmienić dźwięki i ew. dodać nowe.
    Sam czujnik podpinasz pod ADC i gotowe.

    0
  • Pomocny post
    #15 21 Mar 2018 11:00
    arturavs
    Poziom 38  

    A nie prościej mikrokontroler+ kostka z serii ISD z wgranymi nazwami kolorów?

    Dodano po 1 [godziny] 7 [minuty]:

    ghost2000 napisał:
    Nie, więc ja proponuję, dostawić do tego Mega328, PC 8GB ram, 10TB HD, kartę dźwiękową.......... a co tam, 10k zł, przecież autor nie pytał o cenę.


    Nie ironizuj.

    Swoją drogą, dlaczego zawsze "frakcje" różnych procesorów się ze sobą "jedzą"?

    Wszystko jest dobre, jak się wie jak z tego skorzystać.
    W przypadku Autora który dopiero się uczy, lepsze jest rozwiązanie sprzętowe niż programowe.
    To że będzie miał łatwiej sprzętowo, nie znaczy że cenowo. A z czasem nabędzie odpowiedniej wiedzy.

    W przypadku budowy urządzenia dla "siebie" cena zazwyczaj nie gra roli. W produkcji już tak.
    A satysfakcja, i wiedza zdobyta przy konstrukcji..... Bez komentarza.

    0
  • Pomocny post
    #17 21 Mar 2018 11:44
    ghost2000
    Poziom 17  

    arturavs napisał:
    Swoją drogą, dlaczego zawsze "frakcje" różnych procesorów się ze sobą "jedzą"?

    Nie jedzą. Równie często używam AVR co i ARM ale na siłę nie pcham AVR tam gdzie nie ma to sensu. AVR ma pewne zalety, takie jak szeroki zakres napięć zasilających. Jesli nie trzeba mocy obliczeniowej ARM, to na siłę nie będę wciskał ARM z stabilizatorami impulsowymi itp, dam ARM i zasilę bezpośrednio z baterii. Do Ethernetu i skomplikowanych stron, obsługi kart SD, nie będę dawał AVR. Potrzeba dużo ram na bufory np na próbki, nie będę dawał AVR z zewnętrzną SRAM, dam ARM, który będzie 2 razy tańszy i zajmie 3 razy mniej powierzchni.

    arturavs napisał:
    W przypadku Autora który dopiero się uczy, lepsze jest rozwiązanie sprzętowe niż programowe.

    Naturalnie, niech weźmie moduł AWB-PALYER z ATNEL z przetaktowanym uC. Ale czy nie trzeba do niego programu? Chyba tak, trzeba wysłać coś po uart.
    A ISD nie wymaga programu? Aby wybrać kolejny zapis trzeba wysterować GPIO i zareagować na przerwanie. Początkujący pewnie nie chce używać przerwań.

    Wydaje mi się, że kolega, do obsługi Ethernetu, zaproponowałby moduł DigiConnectME za prawie 300zł na wypasionym ARM, czy jakiś TIBO (nie mylić z kawą o podobnej nazwie) bo to prostsze dla początkującego niż ENC28J60 za 15zł + trafo za kolejne 15zł. Co za różnica, 300zł a 30zł? Przecież to początkujący.

    Jak chce prosto i szybko, to na Arduino znajdzie rozwiązanie. A jak jeszcze prościej to może dać ogłoszenie w dziale zlecę. Jak chce się czegoś nauczyć, to wybierze pomiędzy AVR + pamięć albo ARM ale dodawanie ISD, który kosztuje 3 razy więcej niż inne rozwiązania nie jest dobrym pomysłem.

    Dodano po 2 [minuty]:

    tmf napisał:
    ale też nie rozumiem po co ta dziwna dyskusja.
    jacekkr54 napisał:
    Jakość dźwięku , pasmo telefoniczne 0,3-3,4 kHz , a nawet mogłoby być mniej , tak aby można było zrozumieć , kolory RGB i pośrednie , fiolet , pomarańczowy, i inne zbliżone , w miarę możliwości , KPS-5130 czujnik analogowy ,czy będzie działał z tkaniną ? Odtwarzacz audio z linka mógłby być przydatny? O ARM mało wiem , muszę najpierw poczytać o tym.

    Proszę zwrócić uwagę na czas w jakim padła moja wypowiedź i autora. Gdy pisałem odpowiedź nie wiedziałem o czym napisała autor bo robiliśmy to w tym samym czasie.
    Moderowany przez Marek_Skalski:


    <ciach>
    3.1.9. Nie ironizuj i nie bądź złośliwy w stosunku do drugiej strony dyskusji. Uszanuj odmienne zdanie oraz inne opinie na forum.

    0
  • Pomocny post
    #18 21 Mar 2018 14:16
    digger123
    Poziom 16  

    Prosze sobie po-googlowac za czujnikiem TCS34725 sa dwie wersje okrągła i kwadratowa - obie działają na I2C. Super czujnik, łatwe oprogramowanie , problem tylko w tym że rozbieżność pomiędzy czujnikami jest dość spora i dla każdego trzeba ustawić osobna specyfikacje - oczywiscie jesli chcemy użyć tego samego oprogramowania z innym czujnikiem - albo więcej jak jednego czujnika.

    0
  • #19 21 Mar 2018 20:09
    jacekkr54
    Poziom 6  

    Czujnik , jeśli w ogóle uda się go wykonać , ma być przeznaczony dla osoby która ma z tym problem , a jest to dla niej ważne . Zająłem się tym zupełnie bezinteresownie i jednorazowo. Przy okazji czegoś nowego się nauczę .

    Dodano po 5 [godziny] 16 [minuty]:

    Teraz będę chciał zgromadzić części i uruchomić układ ze strony poleconej przez kolegę tmf , czujników koloru jest kilka do wyboru , tylko który najlepiej się sprawdzi dla tkaniny , materiału ? Może ma ktoś z kolegów takie czujniki i mógłby przetestować jak działają z materiałem ?

    0
  • Pomocny post
    #21 22 Mar 2018 15:07
    Mscichu
    Poziom 14  

    I gotowy odtwarzacz MP3 np. DFPlayer. Nie wyjdzie taniej niż odtwarzanie przez procek ale szybciej i łatwiej.

    0