Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Odkurzacz TCM jako baza dla robota

jaqbw 08 Dec 2007 22:55 9067 17
Computer Controls
  • #1
    jaqbw
    Level 13  
    Ostatnio na allegro pojawil sie "inteligentny odkurzacz robot" "renomowanej" (a jakże by inaczej :-) firmy TCM lub Tchibo.

    Kosztuje ok 100 PLN wiec kupiłem dla przetestowania. Nie jest to typowy odkurzacz, tylko raczej samobieżna "Kasia" (taka szczotka na kiju z PRL'u). Nawet coś-tam sprząta, ale odbiegam od tematu...

    Owo urządzenie posiada zaskakująco dużo czujników, dwa niezależnie napędzane koła (potrafi skręcać), akumulator - wymarzona platforma dla prostego robota.

    Czy ktoś jeszcze próbował/próbuje/zamierza wykorzystać ten "odkurzacz" jako platformę mobilną ?

    Planuję go wyposażyć w jakiś uP żeby poruszał się trochę inteligentniej lub robił inne/ciekawsze rzeczy niż zwykłe odkurzanie.

    Jeszcze nie dobrałem sie do niego ze śrubokrętem, ale z pobieżnych oględzin zauważyłem:
    - trzy czujniki odbiciowe (IR ?) parzące w dół - prawdopodobnie zabezpieczenie przed upadkiem ze schodów (przód, lewa i prawa strona)
    - czujnik zderzeniowy na "nosie" - nie wiem, czy jeden, czy może potrafi rozróżnić, czy stuknął lewą czy prawą stroną
    - czujnik odbiciowy na "nosie" po prawej stronie - jest zrobiony tak, ze potrafi jechać wzdłuż ściany wykrywając skręty w prawo (skręt w lewo wykrywa stukając w ścianę :-) - widziałem jak jadąc wzdłuż ściany trafił na przejście (otwarte drzwi) to wyjechał z pokoju po obrysie ściany
    - krańcówkę, albo innego cudaka - w każdym razie wie, że się go podniosło z ziemi (koła są na jakichś wahaczach)
    - głośniczek/piezo - gra melodyjkę jak się go włącza
    - diodę LED (zieloną) i trzy przyciski "na grzbiecie"
    - silniki prawdopodobnie zintegrowane z kołami (idą tam więcej niż 2 przewody ciekawe po co)
    - na nosie ma jeszcze jakieś dwa okrągłe otwory przykryte siatką metalową - nie wiem co to może być - może piezo do ultradźwięków, czemu "patrzą" w górę ?

    Do wad można zaliczyć brak "stacji dokującej" dostępnej w droższych modelach. Tu jest "tylko" gniazdo w które trzeba wetknąć wtyczkę zasilacza (15V jest dołączony).

    Chętnych zapraszam do testów i dzielenia sie swoimi osiągnięciami.
  • Computer Controls
  • #2
    gumer
    Level 14  
    Wygląda interesująco. Jak rozbierzesz to porób zdjęcia bebechów. I przydało by rozszyfrować co to za silniki (krokowe?).
  • #4
    radzu
    Level 13  
    Aktualnie na Kole Robotów Mobilnych rozpracowujemy tego Tchibo.

    Jak na razie wstępnie możemy stwierdzić:
    - napęd - 2 koła z normalnymi silnikami DC z przekładniami na których jest osadzony czujnik optyczny (taki jak w myszce), do tego trzecie koło wleczone,
    - oba koła z napędem posiadają optyczne czujniki nacisku, czujniki te działają cyfrowo, tzn. alarmują o podniesieniu, lub gdy jedno z kół spadnie z krawędzi podłoża,
    - 3 podczerwone czujniki krawędzi znajdujące się na krawędzi "zderzaka", służą do zatrzymania w przypadku napotkania krawędzi podłoża (bardzo ciekawie to wygląda gdy się go położy na stole :P )
    - czujnik podczerwieni wykrywający ścianę, pozwala jechać wzdłuż ściany, znajduje się tylko z prawej strony,
    - czujniki zderzenia, znajdują się pod "zderzakiem" z lewej i prawej strony i także działają na zasadzie czujnika podczerwieni,
    - czujnik ultradźwiękowy znajdujący się na środku "zderzaka" skierowany w górę, jak na razie nie rozgryźliśmy jego roli, ale prawdopodobnie służy do detekcji ścian lub wjechania pod stół lub coś podobnego,
    - akumulator 14,4V 2000 mAh wygląda bardzo dobrze i chcąc taki kupić oddzielnie zapłacili byśmy prawdopodobnie więcej niż za cały odkurzacz,
    - silnik DC zamiatający, działający na zasadzie "kasi",
    - silnik DC zamiatający brud w kierunku środka,
    - silnik DC zasysający brud którego nie zbiorom silniki zamiatające,
    - 3 przyciski na górze urządzenia,
    - dioda 2 kolorowa (czerwono-zielona) na górze urządzenia,
    - włącznik zasilający,
    - gniazdo ładowania,
    - płytka czujników (aktualnie jesteśmy w fazie dokładnego rozmalowywania jej schematu),
    - płytka sterownika - uP, pamięć programu, sterowniki silników, itp.

    Na pierwszy rzut oka ten odkurzacz bardzo dobrze zapowiada się jako podstawa robota, niedługo planuję sprawdzić jakie dodatkowe obciążenie nie zakłóci jego poruszania, duży zestaw czujników uzupełnił bym jeszcze o podczerwone czujniki zbliżeniowe które umieścił bym w "zderzaku" gdyż ciągłe uderzanie w przeszkody mogło by zaszkodzić niektórym układom, cała część odkurzająca nadaje się do usunięcia gdyż nie sądzę żeby ktoś tym chciał odkurzać :P a zrobi się dzięki temu dość dużo miejsca w obudowie, no i pozbędziemy się 3 silników zżerających prąd.

    Płytę czujników bym zostawił gdyż po dokładnym przeanalizowaniu będzie można wziąć z niej sygnały z czujników przerobione już na postać cyfrową, płytę sterowania bym wywalił gdyż znajdujący się tam procesor nie nadaje się zbytnio do naszych celów, można z tej płytki wylutować jedynie układy sterowania silnikami, itp.

    Jak na razie to główne rozpracowywanie ma na celu zaprezentowanie go studentom elektroniki od strony konstrukcyjnej lub/oraz pozwolenie na własne pisanie programów sterujących jego pracą.

    Poza tym kumpel też zmierza do zakupu tego odkurzacza jako podstawy do robota, a ja jak na razie zbieram materiały i pomysły gdyż nie mam czasu i pieniędzy na zrealizowanie takiego większego projektu, lecz we wstępnych planach mam zbudowanie na podstawie tego odkurzacza, robota mobilnego posiadającego na pokładzie bezprzewodową kamerę obracaną w pionie (poruszać w poziomie można kołami), jakieś czujniki odległości, możliwe że jakiś chwytak czy platformę do przenoszenia przedmiotów, planuję także zbudować stację dokującą,
    do komunikacji wykorzystał bym interfejs radiowy 433MHz, planuję go w postaci Manipulatora którym można by sterować ręcznie pracą robota z wyświetlaczem LCD który informował by o stanach czujników , oraz dodatkowo interfejs ten można by podłączyć do komputera poprzez port USB i w samym już komputerze poprzez program napisany w C++ była by możliwość sterowania robota, kalibracji czujników i silników krokowych, itp.

    Całość może wydawać się skomplikowana ale większość rzeczy o których wspomniałem już jestem w stanie zrealizować i z pewnością zabiorę się do tego na poważnie gdy tylko minie sesja.

    Filmik z netu prezentujący działanie: http://www.dailymotion.com/relevance/search/B...-reinigungsroboter-bewegung_business?from=rss
  • #5
    pinio6
    Level 15  
    Witam
    Mam takiego robota lecz po podłączeniu ładowarki zapala się czerwona dioda sygnalizująca ładowanie, a po 5 minutach zapala się zielona że naładowany, a tak naprawdę to robot podziała z 15-20 sekund i się wyłącza z powodu braku energii.
    Co może być tego powodem?
  • Computer Controls
  • #6
    Zbychm
    Level 12  
    Witam!
    Zaopatrzyłem się w owe cudo na allegro. Pierwszy egzemplarz zachowywał się identycznie ale sprzedawczyni wymieniła mi na inny egzemplarz. Jest to uszkodzenie w układzie łądowania akumulatora.
  • #7
    Zbychm
    Level 12  
    Witam Wsyzstkich !!!
    Nabyłem TCM-a. A oto garśc informacji. Silniki w zespołach napędowych to zwykłe silniki prądu stałego z przekładnią pasową oraz kółkiem żyroskopowym z czujnikiem na parze elementów: LED i fototranzystor.
    Czujnik opuszczenia koła na mikroswitchu. Słaba amortyzacja. Ogólnie całyzespół napędowy wygląda zachęcająco. Jednak chassis, po wymontowaniu części sprzątającej wraz z silnikami i czujnikami jest bardzo giętka i elastyczna, dlatego ja postanowiłem zastosowac zespoły napędowe do własnego korpusu. Są gotowe praktycznie do użycia zespoły czujników foto ( cztery sztuki ) oraz czujnik akustyczny.
    Poszukałem sobie materiały dot. procka Intela, choc mało popularny i już blisko 20-letni może okazac się dośc interesujący. Poza tym mamy do użycia L298. Pozostałe 3 silniki są również bardzo atrakcyjne. Na koniec trzeba wspomniec o akumulatorze, wydaje się byc bardzo solidny. Podsumowując, za 100 PLN jest to całkiem opłacalna baza części do budowy swojego robota. Gdy tylko uporam się z chassis i zamontuję zespoły napędowe, przeprowadzę testy obciążalności. Zachęcam innych do zabawy z TCM-em. Pozdrawiam Wszystkich!
  • #8
    jaqbw
    Level 13  
    Zbychm wrote:
    Poszukałem sobie materiały dot. procka Intela, choc mało popularny i już blisko 20-letni może okazac się dośc interesujący.

    Czy mi sie tylko wydaje, czy on nie ma EEPROM'a ? Jeżeli nie ma to sie będzie ciężko programować (przyzwyczaiłem się do ISP).

    Ja raczej kombinuje (a raczej dopiero zacznę) z innym prockiem (Cortex, ew. ATMega) wpiętym w to samo miejsce - żeby nie przerabiać całej płytki i maksymalnie wykorzystać to co już jest.
  • #9
    r2d2004
    Level 31  
    Witam!

    Ciekawy temat!

    jaqbw wrote:
    Czy mi sie tylko wydaje, czy on nie ma EEPROM'a ? Jeżeli nie ma to sie będzie ciężko programować (przyzwyczaiłem się do ISP).


    Wygląda na to, że EEPROMa nie ma. To stara (czytaj - tania) generacja procesorów. Z opisów w powyższym linku wynika, że jest to klon z rodziny MCS-96, oznaczony: N80C196KB12 w obudowie PLCC (16-bit mikrokontroler, 12 MHz max), a pamięć programu ma na zewnątrz w postaci EPROMA (32K: 27C256 - DIC28 z okienkiem: kasowanie UV). Więc jeśli ktoś posiada programator "równoległy" do pamięci EPROM, to nie powinno być problemów z oprogramowaniem tego "ustrojstwa".

    Pozdrawiam
    PS Plus takiego rozwiązania to to, że można odczytać i przeanalizować (disassemblacja) taki program zawarty w EPROMIE, jak by się kto uparł, co byłoby niemożliwe, gdyby program siedział wewnątrz procka, zabezpieczony bitami dostępu.

    Procek co prawda nie ma wewnątrz EEPROMa, ale ma 5 x 8-bit port I/O, szybki 6 bit PWM i przetwornik A/D 10-bit na pokładzie, oraz dynamiczną rekonfigurację szyny 8/16 bit. Pozostałe dane dla dociekliwych są np. tutaj:

    http://www.alldatasheet.com/datasheet-pdf/pdf/66173/INTEL/M80C196KB.html?

    Myślę, że warto poeksperymentować z tym co jest w tym systemie- to całkiem dobry procesor (High Performance), po co wymieniać na inny i robić wszystko od zera??
  • #10
    jaqbw
    Level 13  
    W zasadzie to odpowiednik ATmega32/64 (mam w szufladzie 27C512). Moim zdaniem by wystarczył. Największy problem, ze "w zasadzie". "Prawie" obi różnicę.

    ATmega znam, ma programator ISP (a nawet JTAG) i przeportowanego freeRTOS'a - nauczenie sie kolejnego proca (czyli skonfigurowanie gcc) to strasznie dużo zabawy, ale jakby komuś się chciało zacząć (uruchomić chociaż jeden silnik) to było by to chyba najłatwiejsza metoda.

    Jeszcze jestem trochę zajęty, ale w końcu sie wezmę ... :-)
  • #11
    Zbychm
    Level 12  
    Witam wszystkich!
    Mam ycyztanego EPROM+a. Może ktoś dysponuje lub wie, gdzie można poszukać dissassembler do tego procka?
  • #12
    radzu
    Level 13  
    Kupiłem własny odkurzacz.
    Po pewnym czasie zaczął głupieć, kręcił się w kółko.
    Jedno z kółek się blokowało ale nadal coś było nie tak.
    Stwierdziłem że wymienię płytę główną i/lub płytę czujników z robota z laboratorium.
    Wymiana płyt nic nie dała.
    Prawdę mówiąc olałem na razie ten problem gdyż i tak zamierzałem wykonać własną płytę główną.
    Przy przekładaniu płyt głównych coś mi nie pasowało ....

    W MOIM ODKURZACZU JEST ATMEGA8 !!!

    Niestety kostka ma tak ustawione fusebity że nie da się jej zczytać moim programatorem, wykorzystane są zarówno nogi kwarcu jak i linia resetu.
    Mam spisane mniej więcej za co odpowiedzialne są poszczególne piny w złączach płyty głównej.
    Płyty czujników niestety nie miałem czasu jeszcze rozmalować.

    Co do samej budowy to podniosłem wszystkie koła dzięki czemu zyskałem prześwit ok 3cm.
    Wywalenie części sprzątającej rzeczywiście nieco spowodowało "miękkość" konstrukcji ale myślę że da się coś z tym później zrobić.

    Gdy tylko minie kampania wrześniowa i wrócę do akademika będę kontynuował dalsze prace.

    Co do akumulatora to rzeczywiście jest on nieco kiepskiej jakości i ma słabą pojemność więc chyba trzeba będzie go wymienić.

    Jestem już w posiadaniu odkurzacza, 2 serw i małej bezprzewodowej kamery tak więc będę się starał jak najszybciej coś z tego zbudować.
  • #13
    jaqbw
    Level 13  
    radzu wrote:

    (...)
    Przy przekładaniu płyt głównych coś mi nie pasowało ....

    W MOIM ODKURZACZU JEST ATMEGA8 !!!
    (...)

    a masz możliwość jakiegoś porównania. chciałbym do mojego zastosować inny proc i teraz będę debugował piny procka (68, w zasadzie szynę adresową można pominąć, ale to jest i tak ok 40 :-) chodzi mi o to na których pinach są poszczególne czujniki, na których silniki itd.

    ew. jakieś zdjęcie tej płyty, ATmega8 nie ma aż tylu nóg - może będzie łatwiej
  • #15
    piokrza
    Level 27  
    radzu wrote:

    - czujnik ultradźwiękowy znajdujący się na środku "zderzaka" skierowany w górę, jak na razie nie rozgryźliśmy jego roli, ale prawdopodobnie służy do detekcji ścian lub wjechania pod stół lub coś podobnego,


    czujnik ten "pomaga" odkurzaczowi wyjechać spod łóżka gdy znajdzie się tam pod koniec zaprogramowanego czasu sprzątania, tak abyśmy mogli go łatwo znaleźć.
  • #16
    panklimas
    Level 11  
    radzu wrote:
    - napęd - 2 koła z normalnymi silnikami DC z przekładniami na których jest osadzony czujnik optyczny (taki jak w myszce), do tego trzecie koło wleczone,


    Orientuje się ktoś jakie parametry mają silniki napędowe używane przez roboty sprzątające?
    Oraz jakiej wielkości są te kółka?
  • #17
    Pawel2420
    Level 31  
    Są takie odkurzacze Roomba firmy iRobot. W Internecie można znaleźć szczegółowy opis ich konstrukcji i sposoby sterowania (szczególnie tych starszych i tańszych wersji). W tym robocie myjącym koła mają 40mm średnicy a tym odkurzającym są chyba trochę większe.