Skocz do zawartości

Elebot - robot dla początkujących.


Treker

Pomocna odpowiedź

Jeśli połączenia są ok (nie tylko luty) i program podaje prawidłowo sygnały na wejścia mostka, to spróbuj podmienić scalak na nowy.

Link do komentarza
Share on other sites

Mam pytanie odnośnie nowego czujnika odbiciowego. Czy zamiast fotodiody odbiorczej BPW41, która ma w charakterystyce długość fali λ=925nm, mogę zastosować inną np. BPW83(z tym, że tutaj λ=950nm)? Czy może w ten sposób czujnik o wiele zwiększy swoją czułość?

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

Ogółem chodzi o to, żeby odbiornik z nadajnikiem pracowały na zbliżonym paśmie, dodatkowo lepiej jeśli jest to pasmo jak najbliżej podczerwieni (mniej podatne na warunki oświetleniowe otoczenia).

Link do komentarza
Share on other sites

Dzięki Ci za odpowiedź, bardzo mi pomogła.

Mam jeszcze jeden o wiele ważniejszy problem. Otóż chodzi o podawanie sygnałów mikrokontrolera na mostek. Początkowo robot działał jak należy(program został wgrany nie poprzez isp z płytki głównej, tylko przez własny zbudowany adapter). Jednak postawiłem zmienić czas przełączania się między torami nadawczymi w programie do czujnika odbiciowego w związku ze zbyt dużą czułością. Program został tym razem wgrany poprzez złącze isp na płytce głównej. Ku mojemu zdziwieniu, napięcie po wgraniu programu było podawane tylko na jeden silnik. Po wielu godzinach męczarni, wyszukałem w internecie, że b. prawdopodobne są zakłócenia mikrokontrolera: http://mikrokontrolery.blogspot.com/2011/04/zakocenia-w-pracy-mikrokontrolerow.html . W związku z tym dolutowałem dodatkowy kondensator 100nF w pobliżu zasilania mikrokontrolera(jeden ze schematu nie był umieszczony bezpośrednio przy nóżce z zasilaniem) i o dziwo napięcie było już na obydwa silniki! Od tamtej pory nie wgrywałem nowego programu.

Postanowiłem zrobić nowy czujnik odbiciowy i wobec tego wgrałem nowe czasy przełączania(poprzez isp na płytce głównej). Sytuacja się powtarza - tym razem nie ma napięcia na żadnym z silników, uC w ogóle nie podaje sygnałów na mostek. Oczywiście kupiłem nowy ATtiny2313, ale bez rezultatu.

Korzystam z własnoręcznie zrobionego programatora STK200(ten podstawowy, nie betterstk200). Sprawdzałem poprzez program testujący sprawność programatora i wyszło, że jest w porządku. Co zatem może być przyczyną takie zachowania się układu? Może to być wina programatora(np. zakłócenia związane z tym, że schemat programatora jest najprostszy z możliwych)/złącza isp na płytce głównej/zakłócenia związanego np. z pracą silników i uC z tego samego zasilania? Bardzo proszę o pomoc, bo jestem naprawdę już tym trochę zdołowany 😖 , trochę jakaś absurdalna jak dla mnie sytuacja.

Link do komentarza
Share on other sites

Zatem:

1. a)Schemat płytki głównej(wybaczcie, że nie na serwer forum, ale pokazuje mi, że wystąpił problem z wysłaniem pliku na serwer) płytka główna

b)Schemat programatora Stk200

2. Kod programu

'Elebot wersja avr ATTiny2313
'***** konfiguracja portów *****
Config Portb = Output
Portb = &B00001100
Config Portd = Input
Portd = &B11111111

'****** deklaracja zmiennych i podprogramów ******
Dim Czas As Byte
Dim Ruchl As Bit
Dim Ruchp As Bit
Declare Sub Naprzod
Declare Sub Prawo
Declare Sub Lewo
Declare Sub Wstecz
Declare Sub Ddelay


'***** Program glowny *****
Do
'***** program obslugi czujnika odbiciowego *****
If Pind.5 = 1 Then
Czas = 50
Ruchl = 0
Ruchp = 0
Portb.1 = 1
Waitms 1
If Pind.6 = 0 Then Ruchl = 1
Portb.1 = 0
Portb.0 = 1
Waitms 1
If Pind.6 = 0 Then Ruchp = 1
Portb.0 = 0
If Ruchl = 1 And Ruchp = 0 Then Lewo
If Ruchl = 0 And Ruchp = 1 Then Prawo
If Ruchl = 0 And Ruchp = 0 Then Naprzod
If Ruchl = 1 And Ruchp = 1 Then Wstecz
End If

'***** program obslugi czujnika linii wersja LM324 *****
'If Pind.5 = 0 Then
'Czas = 5
'If Pind.4 = 1 And Pind.3 = 0 And Pind.2 = 1 Then Lewo
'If Pind.4 = 0 And Pind.3 = 1 And Pind.2 = 1 Then Prawo
'If Pind.4 = 1 And Pind.3 = 1 And Pind.2 = 0 Then Naprzod
'If Pind.4 = 1 And Pind.3 = 1 And Pind.2 = 1 Then Wstecz
'End If

'***** program obslugi czujnika linii wersja 74HC14 *****
If Pind.5 = 0 Then
Czas = 5
If Pind.4 = 1 And Pind.3 = 1 And Pind.2 = 0 Then Lewo
If Pind.4 = 0 And Pind.3 = 1 And Pind.2 = 1 Then Prawo
If Pind.4 = 1 And Pind.3 = 0 And Pind.2 = 1 Then Naprzod
If Pind.4 = 1 And Pind.3 = 1 And Pind.2 = 1 Then Wstecz
End If

Loop
'***** podprogramy ruchu *****  pamiętać o zamianie P4->P2
Sub Prawo:
Portb.7 = 1 : Portb.6 = 0 : Portb.5 = 0 : Portb.2 = 0
Call Ddelay
End Sub

Sub Lewo
Portb.7 = 0 : Portb.6 = 0 : Portb.5 = 1 : Portb.2 = 0
Call Ddelay
End Sub

Sub Naprzod:
Portb.7 = 1 : Portb.6 = 0 : Portb.5 = 1 : Portb.2 = 0
Call Ddelay
End Sub

Sub Wstecz:
Portb.7 = 0 : Portb.6 = 1 : Portb.5 = 0 : Portb.2 = 1
Call Ddelay
End Sub

'*****podprogram opoznienia *****
Sub Ddelay:
Waitms Czas
End Sub

End

3. Fusebity - nie przestawiałem fusebitów, na razie nie było mi to potrzebne, więc w ogóle się tym nie interesowałem.

4. Problem opisałem post wyżej, oczywiście jak wynika z tego co tam napisałem nie wchodzą w grę żadne niepoprawne luty czy połączenia, gdyż robot już działał.

Link do komentarza
Share on other sites

2. Kod programu

To musi przeglądnąć ktoś inny bo ja z BASCOM nie jestem spokrewniony 🙂

3. Fusebity - nie przestawiałem fusebitów, na razie nie było mi to potrzebne, więc w ogóle się tym nie interesowałem.

Och, wielu (włącznie ze mną) twierdziło, że fusów nie zmieniało, a jednak okazywało się, że w ferworze walki .... i problem gotowy.

4. Problem opisałem post wyżej, oczywiście jak wynika z tego co tam napisałem nie wchodzą w grę żadne niepoprawne luty czy połączenia, gdyż robot już działał.

Oczywiście tak może być, ale jednak częstą przyczyną są zimne luty, lub mikroprzerwy w ścieżkach, itp.

Dodatkowe pytanie: masa programatora i Twojego układu są połączone w trakcie programowania? -ze schematu wynika, że tak, ale wolę zadać to pytanie, bo to także bywa częstym problemem.

Link do komentarza
Share on other sites

Luty i połączenia posprawdzane.

Moje ustawienie fusebitów: ustawienia_fusebitów

Próbowałem też innych ustawień ze względu na zewnętrzny rezonator kwarcowy 4Mhz w układzie na podstawie tej strony(ext. crystal, freq: 3-8Mhz, start-up time: 65ms) - bez oczekiwanego efektu.

Dodatkowe pytanie: masa programatora i Twojego układu są połączone w trakcie programowania? -ze schematu wynika, że tak, ale wolę zadać to pytanie, bo to także bywa częstym problemem.

Zgadza się.

Dodałem też do programu:

$regfile = "attiny2313.dat"
$crystal = 4000000

Nic to nie dało.

Link do komentarza
Share on other sites

Witam !

Mam problem z uruchomieniem modułu czujników odbiciowych i teraz mam pytanie czy mógłby mi ktoś opisać jak sprawdzić ten układ bez mikroprocesora ?

Link do komentarza
Share on other sites

modułu czujników odbiciowych

Masz na myśli czujniki odbiciowe TCRT5000 i związku z tym układ linefollower, czy któryś z układów z diodami nadawczymi i odbiornikiem?

Link do komentarza
Share on other sites

Jeśli chodzi o drugi czujnik odbiciowy to uruchomienie jest w opisie:

Uruchomienie

Zdecydowałem się właśnie na takie rozwiązanie układowe ponieważ układ zmontowany poprawnie działa od razu wymaga tylko 2 ustawień i jest gotowy do pracy, praca układu jest stabilna i nie ma żadnych dziwnych niespodzianek jak z TSOP. Układ proponuje uruchamiać poza systemem korzystając z źródła napięcia 5V, do wyjścia NE 567 ( końcówka 8 ) podłączyć diodę LED z opornikiem 470 druga końcówka do Uc ( zasilanie +5V), odpowiednio na dane wejście ( końcówka 4 NE555 ) podłączyć do Uc.

Uruchamianie należy rozpocząć od generatora z stałymi wartościami rezystorów, podajemy na jego wejście H, przed czujnikiem w odległości ok. 20cm umieszczamy dowolny przedmiot następnie tak ustawiamy potencjometr P1(10k ) aż zapali się diod LED,

Z kolei jeśli chodzi o pierwszy czujnik odbiciowy, to mogę jedynie powiedzieć, że mi działa jedynie z pomocą mikrokontrolera(może coś źle robiłem), czyli naprzemienne podawanie stanu L i H na wejście:

Config Portb = Output

Portb = &B00001100

Config Portd = Input

Portd = &B11111111

Do

Portb.1 = 1

Waitms 1

Portb.1 = 0

Waitms 50

Loop

End

Link do komentarza
Share on other sites

witam dopiero zaczynam przygodę z robotyką zrobilem juz robota swiatłolubnego chciałem zrobic cos więcej zdecydowalem się wiec na elebota i mam problem moze wydac sie wam to smieszne ale wlasnie ze spisem elementow zdecydowałem sie na płytke z atmega 8

tam biemiałem trudnosci z spisaniem elementow poza jednym wyjatkiem

co oznacza L1 ???

wiecej problemow sprawiły mi zdalny ster i czujnik odbiciowy oraz enkodery tam juz nic nie rozuniem mogłby mi ktos spisac liste częsci do tych dodatkowych modułow

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.