Moj linefollower nie odroznia sie niczym od innych, procz tym ze posiada opuszczane ramie ktore ma przymocowany wklad od dlugopisu, pozwala to pokazac droge robota.
Ogolnie nigdy nie mailem zamiaru budowac linefollowera, ale byl to projekt na studia.
Wydaje mi sie ze go jeszcze rozwine cos podobnego do elebota.
Pierwsze co zrobie to dodam jeszcze dodatkowy czujnik w sumie wtedy beda 4, zrobie to po to by jeszcze szybciej jezdzil za linia.
ROBOT „ZDZICHU” (linefollower – śledzący linie)
1. Anatomia robota
· Układ zasilania „serce”. Źródłem prądu jest bateria Ni-Cd (5xAA) 6.0V 700mAh.
Układ lm2940-5.0 stabilizuje napięcie na 5V, potrzebne do zasilania procesora (przy większym napięciu układ by się spalił) podobnie z komparatorem.
· Procesor attiny2313 firmy Atmel. On jest „mózgiem” bada stany na wejściu I lub 0 i według tego wykonuje odpowiednią czynność (która wcześniej mu zaprogramujemy) i wystawia I lub 0 na wyjściu. Mikrokontroler działa na oscylatorze 8mHz
· Czujniki CNY70. Jest to dioda nadawcza podczerwieni i fototranzystor reagujący na światło podczerwone
· Komparator LM324. Sprawdza na którym z 2 wejść bramki jest wyższe napięcie i wtedy wystawia I lub 0 na wyjściu bramki. W moim robocie nie możemy podpiąć czujników prosto do procesora, ponieważ mikrokontroler rozpoznaje tylko stan logiczna 1 to jest ok.5V i 0 ok.0V. Moje czujniki maja na wyjściu od 0v do 5v, dlatego zastosowałem komparator.
LM324 składa się z 4 bramek ja użyłem tylko 3 (3 czujniki). Na 1 wejściu bramek dołączony jest czujnik, na 2 potencjometr (którym możemy sterować czułość). Komparator sprawdza gdzie jest wyższe napięcie i daje odpowiedz wystawiając 1 lub 0 na wyjście bramki które idzie do procesora
· Mostek-h (h-bridge) L293D „mięśnie”. Nie możemy podłączyć silniczków prosto do procesora, nie jest on wstanie uciągnąć tak dużego poboru natężenia, dlatego użyłem L293D. Można do niego podłączyć max. 4 silniczki tylko wtedy będziemy nimi mogli sterować tylko w jednym kierunku. Gdy chcemy obsługę w 2 strony możemy max. podłączyć 2 silniczki.
Kompletny schemat:
(jak widać na schemacie dodałem jeszcze przycisk resetu, działanie podobne jak w komputerze czyli powoduje reset procesora i rozpoczęcie od nowa programu. Można to samo osiągnąć włączając i wyłączając zasilanie)
· Dodatki:
Dodałem jeszcze 2 diody, 2 włączniki i odbiornik TSOP1736 za pomocą tego czujnika odbieramy fale podczerwoną 36hz (na takie działają piloty)
2. Zasada działania.
Dioda podczerwona emituje światło podczerwone które odbija się od jasnych powierzchni i wpada do fototranzystora(działa podobnie jak fotorezystor) który odpowiednio się zamyka lub otwiera. Jest on podłączony do masy i jak się otwiera powoduje to mniejsze napięcie które idzie do komparatora.
Komparator porównuje napięcie na czujniki i na potencjometrze. Później wystawia 1 lub 0
Procesor sprawdza stany które przesyła mu komparator i daje odpowiedz wystawiając 1 lub 0 na wyjściach do mostka h.
oto kod
kod do ramienia
Gdyby cos sie nie zgadzalo prosze pisac.
Kod tez musi byc zoptymalizowany
Ogolnie nigdy nie mailem zamiaru budowac linefollowera, ale byl to projekt na studia.
Wydaje mi sie ze go jeszcze rozwine cos podobnego do elebota.
Pierwsze co zrobie to dodam jeszcze dodatkowy czujnik w sumie wtedy beda 4, zrobie to po to by jeszcze szybciej jezdzil za linia.



ROBOT „ZDZICHU” (linefollower – śledzący linie)
1. Anatomia robota
· Układ zasilania „serce”. Źródłem prądu jest bateria Ni-Cd (5xAA) 6.0V 700mAh.
Układ lm2940-5.0 stabilizuje napięcie na 5V, potrzebne do zasilania procesora (przy większym napięciu układ by się spalił) podobnie z komparatorem.

· Procesor attiny2313 firmy Atmel. On jest „mózgiem” bada stany na wejściu I lub 0 i według tego wykonuje odpowiednią czynność (która wcześniej mu zaprogramujemy) i wystawia I lub 0 na wyjściu. Mikrokontroler działa na oscylatorze 8mHz

· Czujniki CNY70. Jest to dioda nadawcza podczerwieni i fototranzystor reagujący na światło podczerwone
· Komparator LM324. Sprawdza na którym z 2 wejść bramki jest wyższe napięcie i wtedy wystawia I lub 0 na wyjściu bramki. W moim robocie nie możemy podpiąć czujników prosto do procesora, ponieważ mikrokontroler rozpoznaje tylko stan logiczna 1 to jest ok.5V i 0 ok.0V. Moje czujniki maja na wyjściu od 0v do 5v, dlatego zastosowałem komparator.
LM324 składa się z 4 bramek ja użyłem tylko 3 (3 czujniki). Na 1 wejściu bramek dołączony jest czujnik, na 2 potencjometr (którym możemy sterować czułość). Komparator sprawdza gdzie jest wyższe napięcie i daje odpowiedz wystawiając 1 lub 0 na wyjście bramki które idzie do procesora

· Mostek-h (h-bridge) L293D „mięśnie”. Nie możemy podłączyć silniczków prosto do procesora, nie jest on wstanie uciągnąć tak dużego poboru natężenia, dlatego użyłem L293D. Można do niego podłączyć max. 4 silniczki tylko wtedy będziemy nimi mogli sterować tylko w jednym kierunku. Gdy chcemy obsługę w 2 strony możemy max. podłączyć 2 silniczki.

Kompletny schemat:
(jak widać na schemacie dodałem jeszcze przycisk resetu, działanie podobne jak w komputerze czyli powoduje reset procesora i rozpoczęcie od nowa programu. Można to samo osiągnąć włączając i wyłączając zasilanie)

· Dodatki:
Dodałem jeszcze 2 diody, 2 włączniki i odbiornik TSOP1736 za pomocą tego czujnika odbieramy fale podczerwoną 36hz (na takie działają piloty)
2. Zasada działania.
Dioda podczerwona emituje światło podczerwone które odbija się od jasnych powierzchni i wpada do fototranzystora(działa podobnie jak fotorezystor) który odpowiednio się zamyka lub otwiera. Jest on podłączony do masy i jak się otwiera powoduje to mniejsze napięcie które idzie do komparatora.
Komparator porównuje napięcie na czujniki i na potencjometrze. Później wystawia 1 lub 0
Procesor sprawdza stany które przesyła mu komparator i daje odpowiedz wystawiając 1 lub 0 na wyjściach do mostka h.

oto kod
Code:
$crystal = 8000000
Config Portd.0 = Output 'lewy do przodu
Config Portd.1 = Output 'lewy do tylu
Config Portd.2 = Output 'prawy do tylu
Config Portd.3 = Output 'prawy do przodu
Config Rc5 = Pind.6 'pinb.5 odbiornik rc5
Config Pinb.0 = Input 'fototranzystor lewy
Config Pinb.1 = Input 'fototranzystor srodkowy
Config Pinb.2 = Input 'fototranzystor prawy
Config Pinb.3 = Input
Set Pinb.3
Do
If Pinb.2 = 1 And Pinb.1 = 0 And Pinb.0 = 1 Then
Do
Portd.0 = 1
Portd.1 = 0
Portd.2 = 0
Portd.3 = 1
Loop Until Pinb.2 = 0 Or Pinb.0 = 0
End If
If Pinb.2 = 0 And Pinb.1 = 1 And Pinb.0 = 1 Then
Do
Portd.0 = 0
Portd.1 = 1
Portd.2 = 0
Portd.3 = 1
Loop Until Pinb.1 = 0
End If
If Pinb.2 = 0 And Pinb.1 = 0 And Pinb.1 = 1 Then
Do
Portd.0 = 0
Portd.1 = 1
Portd.2 = 0
Portd.3 = 1
Loop Until Pinb.1 = 0 Or Pinb.2 = 1
End If
If Pinb.2 = 1 And Pinb.1 = 1 And Pinb.0 = 0 Then
Do
Portd.0 = 1
Portd.1 = 0
Portd.2 = 1
Portd.3 = 0
Loop Until Pinb.1 = 0
End If
If Pinb.2 = 1 And Pinb.1 = 0 And Pinb.0 = 0 Then
Do
Portd.0 = 1
Portd.1 = 0
Portd.2 = 1
Portd.3 = 0
Loop Until Pinb.1 = 0 Or Pinb.0 = 1
End If
If Pinb.2 = 0 And Pinb.1 = 0 And Pinb.0 = 0 Then
Do
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Loop Until Pinb.2 = 1 And Pinb.1 = 1 And Pinb.0 = 1 Or Pinb.3 = 0
End If
If Pinb.2 = 1 And Pinb.1 = 1 And Pinb.0 = 1 Then
Do
Portd.0 = 1
Portd.1 = 1
Portd.2 = 1
Portd.3 = 1
Loop Until Pinb.2 = 1 Or Pinb.1 = 1 Or Pinb.0 = 1 Or Pinb.3 = 0
End If
Loop
End
kod do ramienia
Code:
$regfile = "attiny2313.dat"
Config Portd.0 = Output 'jak 0 do gory
Config Portd.1 = Output 'jak 0 na dol
Config Pind.2 = Input 'czunjik gorny
Config Pind.3 = Input 'czujnik dolny
Config Pind.4 = Input
Set Pind.2
Set Pind.3
Set Pind.4
Do
Portd.0 = 0
Portd.1 = 0
If Pind.4 = 0 Then
Do
Portd.0 = 1
Portd.1 = 0
Loop Until Pind.4 = 1 Or Pind.2 = 0
End If
If Pind.4 = 1 Then
Do
Portd.0 = 0
Portd.1 = 1
Loop Until Pind.4 = 0 Or Pind.3 = 0
End If
If Pind.4 = 1 And Pind.3 = 0 Then
Do
Portd.0 = 0
Portd.1 = 0
Loop Until Pind.4 = 0 Or Pind.3 = 1
End If
If Pind.4 = 0 And Pind.2 = 0 Then
Do
Portd.0 = 0
Portd.1 = 0
Loop Until Pind.4 = 1 Or Pind.2 = 1
End If
Loop
End
Gdyby cos sie nie zgadzalo prosze pisac.
Kod tez musi byc zoptymalizowany
