Na wstępie odpowiadam na pytania:
Orientacyjny koszt całego robota to ~350 - 400zł (pomijam koszt klocków i "robocizny"), a konkretnie:
2x SHARP GP2D12
2x serwo HS-300BB
2x PIC16F877A + 1x PIC16F876A (akurat takie miałem, a AVR nie lubie

)
L293D
reszta drobiazgów jak rezystory, kondensatory... sami wiecie
A schemat?... A zobaczymy
Opisu ciąg dalszy:
MOBOT, bo to ro
bot z
modułów.
Od strony technicznej robot to moduły, które są połaczone ze sobą tylko kilkoma liniami:
1. Zasilanie (GND, +5V)
2. magistrala komunikacyjna (RS232C / RS485)
3. dodatkowe linie sterujące (globalny RESET)
Od strony logicznej robot to zestaw zachowań (konkretnie wykorzystano model subsumption)
Moduły zostały zaprojektowane na wzór klas z obiektowych języków programowania. Każdy ma pewien zbiór metod określających funkcjonalność oraz pól opisujących stan lub konfigurację.
Moim głównym celem było pokazanie jak korzystając z modułów o zestandaryzowanym API można składać roboty o cechach i zachowaniu zależnym od wykorzystanych komponentów.
Moduł BLIR (na wcześniejszych zdjeciach - ten na samym dole)
Z funkcjonalnego punktu widzenia są to dwa niezależne moduły - decyzyjny i sterujący silnikami (napędowy). Ponieważ moduły znajdują się fizycznie na tej samej płytce drukowanej, a od strony programowej są to zestawy funkcji wykonywanych przez ten sam mikrokontroler (PIC16F876A), proces komunikacji pomiędzy nimi ograniczono do zmiany wartości odpowiednich parametrów i wywoływania funkcji.
Sterowanie robotem opiera się na zachowaniach. Hierarchia tych zachowań jest niezwykle prosta i ma na celu głównie pokazanie łatwości, z jaką można modyfikować działanie robota poprzez wymianę modułów. Najprostszy robot składa się tylko z modułu BLIR, w którego części decyzyjnej zaszyte jest zachowanie
jedź do przodu. Inne zachowania są realizowane przez inne moduły, które możemy do robota dodawać. Zadaniem modułu decyzyjnego jest okresowe odczytywanie wartości z aktualnie podłączonego modułu dodatkowego i wyznaczenia kierunku jazdy na podstawie poziomów zachowań tam realizowanych. Jeśli poziom wyzwalania zachowań dodatkowych jest wyższy od założonego, zachowania te mają pierwszeństwo przed zachowaniami realizowanymi w module decyzyjnym BLIR.
Moduł napędowy zamienia wartości wyliczane przez moduł decyzyjny na odpowiednie sygnały sterujące silnikami. Do wysterowania silników wykorzystano układ L293D. Jest to podwójny mostek typu H wraz z niezbędnymi diodami ograniczającymi. Sterowanie silnikami odbywa się za pomocą podwójnego generatora PWM zaszytego w mikrokontrolerze. Wartości dla generatora PWM są wyznaczane na podstawie prędkości obliczanej przez moduł decyzyjny. Sygnały odpowiedzialne za kierunek obrotu silników i podawane na odpowiednie wejścia układu L293D, wyznaczane są na podstawie kierunku jazdy obliczanej przez moduł decyzyjny.
Na rysunku jest model modułu, oraz schemat zachowań.
Opis jest mniej techniczny, niż byście pewnie chcieli
W razie czego, proszę o pytania, ale inteligentne