Skocz do zawartości

Minisumo problem z programem


EscapeMaster

Pomocna odpowiedź

Witam,
postanowiłem zacząć przygodę z minisumo. Kupiłem ten zestaw: http://botland.com.pl/zbuduj-robota/1226-minisumo-kit.html. Program wygląda tak: http://wklej.to/sGX81. Niestety robot zachowuje się nie tak jak oczekiwałem. Otóż kiedy stoi na czarnej powierzchni cofa się a gdy wykryje przeciwnika zaczyna się obracać. Problemy z elektroniką wykluczyłem więc zostaje program.

Z góry dziękuję pozdrawiam

Link do komentarza
Share on other sites

Witaj

Wydaje mi się, że wystarczy pozamieniać przewody od silników miejscami. Jeśli robot jedzie do tyłu zamiast do przodu to oba silniki masz odwrotnie podłączone, natomiast jeśli się kręci zamiast jechać prosto to trzeba zamienić miejscami kable z jednego silnika.

Można, też zmienić to w programie, ale nie otwiera mi się podany link.

Link do komentarza
Share on other sites

Jak jest mowa o programie, to nie musisz wklejać go na jakiś inny serwer (zewnętrzny), ponieważ możesz to tutaj zrobić używając znaczników "[ Code ][ /Code ]".

  • Lubię! 1
Link do komentarza
Share on other sites

Dzięki za radę co do wklejania kodu 😉 znajduje się on poniżej. Jak już wyżej napisałem wady konstrukcyjne wykluczyłem.

$regfile = "m8def.dat"
$crystal = 1000000                                          'taktowanie 16MHz - trzeba koniecznie wlaczyc odpowiednie fusebity!

Config Portd = &B10111111 : Portd = &B00000000              'konfiguracja portow
Config Portb = &B11111111 : Portb = &B00000000
Config Portc = &B00000000 : Portc = &B00000000

Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up       'konfiguracja timera - PWM
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'konfiguracja ADC



Dioda Alias Portd.2                                         'przypisanie nazw do portow - dla ulatwienia
Przycisk Alias Pind.6
Mset1a Alias Portd.1
Mset1b Alias Portd.0
Mset2a Alias Portb.0
Mset2b Alias Portd.7

Reset Dioda
Set Mset1a : Reset Mset1b                                   'silnik prawy (patrzac na tyl robota) - robot jedzie naprzod
Set Mset2a : Reset Mset2b                                   'silnik lewy (patrzac na tyl robota) - robot jedzie naprzod

Dim Linia1 As Word                                          'prawy czujnik linii (patrzac na tyl robota)
Dim Linia2 As Word                                          'lewy czujnik linii (patrzac na tyl robota)
Dim Sharp1 As Word
Dim I As Integer
Dim Lewo As Byte

Set Lewo

Const Granicalinii = 900                                    'te wartosc zmieniamy tak, zeby czujniki wykrywaly linie
Const Granicasharpa = 100
Const Makspredkosc = 180                                    'maksymalna wartosc PWM z zakresu 0-255 (silniki Pololu ruszaja od ok. 140)
Const Minpredkosc = 140                                     'minimalna wartosc PWM przy ktorej ruszaja silniki

Pwm1a = 0                                                   'silnik prawy (patrząc na tyl robota) - wypelnienie PWM
Pwm1b = 0                                                   'silnik lewy (patrzac na tyl robota) - wypelnienie PWM

  Do
     While Przycisk > 0                                    'czekaj na wcisniecie przycisku
        Waitms 100
     Wend

     For I = 1 To 4 Step 1                                 'odliczanie 5 sekund (4 zapalenia diody krotkie, 1 dlugie)
        Set Dioda
        Waitms 100
        Reset Dioda
        Waitms 900
     Next
        Set Dioda
        Waitms 1000
        Reset Dioda



     While Przycisk > 0                                    'wykonuje petle programu dopoki znow nie wcisniemy przycisku

        Gosub Odczytadc

        If Linia1 > Granicalinii Then                      'jesli prawy czujnik wykryje linie
           Gosub Jazdaprzod
           Waitms 500
           Gosub Obrotlewo
           Waitms 500
           Set Lewo
        Elseif Linia2 > Granicalinii Then
           Gosub Jazdaprzod
           Waitms 500
           Gosub Obrotprawo
           Waitms 500
           Reset Lewo
        Else
           If Sharp1 < Granicasharpa Then
              Gosub Jazdaprzod
              Reset Dioda
           Else
              Set Dioda
              If Lewo = 1 Then
                 Gosub Obrotlewo
              Else
                 Gosub Obrotprawo
              End If
           End If
        End If

        Waitms 50

     Wend

     Set Dioda                                             'sygnalizacja konca pracy
     Pwm1a = 0
     Pwm1b = 0
     Set Mset1a : Reset Mset1b                             'silnik prawy (patrzac na tyl robota) - robot jedzie naprzod
     Set Mset2a : Reset Mset2b
     Waitms 2000
     Reset Dioda

  Loop

End



Odczytadc:
  Start Adc

  Linia1 = Getadc(0)
  Linia2 = Getadc(1)
  Sharp1 = Getadc(2)

  Stop Adc
Return


Jazdaprzod:
  Set Mset1a : Reset Mset1b
  Set Mset2a : Reset Mset2b
  Pwm1a = Makspredkosc
  Pwm1b = Makspredkosc
Return

Jazdatyl:
  Reset Mset1a : Set Mset1b
  Reset Mset2a : Set Mset2b
  Pwm1a = Makspredkosc
  Pwm1b = Makspredkosc
Return

Obrotlewo:
  Set Mset1a : Reset Mset1b
  Reset Mset2a : Set Mset2b
  Pwm1a = Makspredkosc
  Pwm1b = Makspredkosc - 10
Return

Obrotprawo:
  Reset Mset1a : Set Mset1b
  Set Mset2a : Reset Mset2b
  Pwm1a = Makspredkosc - 10
  Pwm1b = Makspredkosc
Return

Luklewo:
  Set Mset1a : Reset Mset1b
  Reset Mset2a : Set Mset2b
  Pwm1a = Makspredkosc - 10
  Pwm1b = 0
Return

Lukprawo:
  Reset Mset1a : Set Mset1b
  Set Mset2a : Reset Mset2b
  Pwm1a = 0
  Pwm1b = Makspredkosc - 10
Return
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

Jazdaprzod: 
  Set Mset1a : Reset Mset1b 
  Set Mset2a : Reset Mset2b 
  Pwm1a = Makspredkosc 
  Pwm1b = Makspredkosc 
Return 

Zmieniając:

set Mset1a : Reset Mset1b

na :

reset Mset1a : set Mset1b

zmienisz kierunek obrotów jednego silnika. Analogicznie z drugim.

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.