Skocz do zawartości

[Dla początkujących] Jak zbudować robota minisumo


Pomocna odpowiedź

A więc tak :

czujniki linii mają trzy kable - jeden +5v jeden gnd i jeden analogowy sygnał. Zasilanie wiadomo jak podłączyć a analogowy sygnał do pinów podanych w kodzie ( w komendzie getadc() w nawiasie masz podany nr pinu adc) Celowo nie podawałałem jak to podłączyć, bo jak dasz inną polaryzację silników a czujniki podłaczysz tak jak ja to robot widząc biała linię pojedzie dalej zamisat się cofnąć. To musisz już dobrać sam, masz porty do których musisz podpiąć czujniki, pozostaje tylko ich kolejność.

A co do czujników przeciwnika to masz też to w kodzie przy deklaracji portów. I do tego masz w kodzie komentarze. On również w swoim kodzie (attiny13) ma podane na który pin wystawia 1 albo 0.

Aha i jest to robot minisumo, a nie sumo 😋

Aha i jeszcze jedno - jak badacie przebieg na tranzystorze to możliwe jest, że nie daliście zworki która idzie pod attiny ( na pcb zaznaczona na żółto, jest to masa). Za to jak badacie bezpośrednio na attiny to już wina kodu.

Aha i jeszcze jedno - jak badacie przebieg na tranzystorze to możliwe jest, że nie daliście zworki która idzie pod attiny ( na pcb zaznaczona na żółto, jest to masa). Za to jak badacie bezpośrednio na attiny to już wina kodu.

Zworki są dwie tak jak narysowano, przebieg był badany na nóżce 5 i 6 procesora Atiny13.

WYNIK:

PIN5 - ocena negatywana

PIN6 - ocena pozytywana

Gdyby nie było mostka MASY pod procesorem, który dochodzi do jego pinu numer 4, to fakt, że emiter tranzystora nie miałby również tego potencjału a co za tym IRED1 nie wysyłałaby impulsów, również procesor nie pracowałby bo nie dostawałby napięcia +5V (brak potencjału masy, podawany przez zworkę do pinu 4). Jednak problemem jest brak impulsów na pinie procesora NR.5.

KOD PROGRAMU: ZAZNACZ CAŁY

$regfile = "attiny13.DAT"

$crystal = 1200000

Czy tak ma teraz wyglądać po wcześniejszej dyskusji konfiguracja częstotliwości z podziałem przez 8. Częstotlowość podstawowa 9,6/8 = 1200000 (w Twoim programie było 12000000 Hz).

Powinno być 1200000Hz.

A co z Atiny13, czy obie diody LD271 na płytce nadajnika odległośći mają emitować częstotliwość 36kHz? Nie udzieliłeś odpowiedzi, temat był poruszany powyżej, chodzi o piny 5 i 6 tego procesora.

Odnośnie schematu Twojego odbiornika podczerwieni to znajduje się błąd w jego opisie, prawidłowy opis wyprowadzeń podano w poniższym linku, żaden z pinów jak widać nie pokrywa się z podanymi przez Ciebie. Oto link.

http://vamond.pl/sklep/elementy/41-miniaturowy-odbiornik-podczerwieni-36khz.html

Dobrze, że pomimo nieprawidłowych opisów TSOP w Twojej dokumentacji, nie trzeba było przerabiać lub wyrzycać wcześniej wytrawionych płytek czujnika odległości.

Może wyjaśnij funkcję tych IRED271 i ewentualnych błędów w programie?.

Za dużo zagmatwanych i nieprawdziwych rzeczy w tych opisach, jak na początkujących to ten materiał powinien być oprcowany perfekcyjnie bo tylko zniechęcisz początkujących do daleszej pracy nad robotyką...

Kolego na schemacie widzisz tylko poglądowy obrazek biblioteki, która nie jest mojego autrostwa. Nie widzę żadnej przeszkody w stosowaniu takiego symbolu jak umiemu dobrze czytać wyprowadzenia. Jak widzisz na płytce nie ma błędu.

Poprawiony kod :

$regfile = "attiny13.dat"                                   'procesor Attiny13

$crystal = 1200000                                          'niższe taktowanie, CKDIV=0
                                                            'przy zmianie CKDIV = 1
                                                            'zmienić wartośc na 9600000

Config Portb.4 = Output                                     'output czujnika

Config Portb.1 = Output                                     'OC0B, wyjście generujące
                                                            'częstotliwość dla diody
Config Portb.0 = Output
Config Portb.2 = Output                                     'wyjście sterujące diodą

Config Pinb.2 = Input                                       'czujnik podczerwieni, SFH


Ocr0b = 16                                                  'obliczyć z działania:
                                                           'taktowanie / (częstotliwość * 2)
                                                           'np. 1200000 / (36000 * 2)

Ocr0a = 16                                                  'j.w.

Tccr0a = &B01010010                                         'rejestry timera, przepisać

Tccr0b = 1                                                  'j.w.


Set Portb.2                                                 'rezystor podciągający
                                                           'wejście czujnika


Do                                                          'pętla


If Pinb.2 = 1 Then Portb.4 = 1                              'warunki na widzenie czujnika
If Pinb.2 = 0 Then Portb.4 = 0

Delay                                                       'opóźnienie zmniejszające
                                                           'zakłócenia


Loop                                                        'koniec pętli

End        
  • 2 lat(a) później...

Super art.

bardzo przyda się początkującym takim jak ja. Dzięki wielkie za dodanie listy z potrzebnymi elementami, mógłbyś policzyć ile za to wszystko się zapłaci, ale raczej wszyscy mają kalkulator.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...