Skocz do zawartości

Minisumo Haker- worklog


Pomocna odpowiedź

Nie jestem pewien czy o to chodziło ale przy takim ustawieniu działa tylko dioda zielona :

$regfile "M8def.dat"
$regfile = 8000000


Config Portd.2 = Output                                    ' konfiguracja portów
Config Portd.3 = Output


Config Adc = Single , Prescaler = Auto , Reference = Aref  'konfiguracja ADC

Start Adc

Dim W As Word




 Const Granica = 300

Portd.2 = 0

Portd.3 = 0


   Do




   W = Getadc(5)                                           'odczytywanie ADC



If W < Granica Then                                        'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona

Gosub Led1                                                 'idż do led1 (dioda zielona zapalona


Elseif W > Granica Then                                    'jeśli 'w' jest większe od granicy dioda czerwona zapalona


Gosub Led2                                                 'idż do led2  (dioda czerwona zapalona)






End If
Loop
End

 Led1:

Portd.2 = 1                                                 ' zapal diodę zieloną
Portd.3 = 0                                                 'a zgaś czerwoną
Return                                                      'powróć do pętli

Led2:
Portd.3 = 1                                                'Zapal Diodę Czerwoną
Portd.2 = 0                                                 'a zgaś zieloną
Return                                                      'powróć do pętli
Link do komentarza
Share on other sites

Za $Regfile nie masz znaku "=" 😉 Miałeś $Regfile tam gdzie miało być $crystal.

Program zapisz sobie tak:

$regfile = "M8def.dat"
$crystal = 8000000

'/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/'
Config Portd.2 = Output
Config Portd.3 = Output
Portd.2 = 0
Portd.3 = 0

'/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/'
Config Adc = Single , Prescaler = Auto , Reference = Aref   'konfiguracja ADC

'/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/'
Dim W As Word

'/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/'
Const Granica = 300


Start Adc

'/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/'
Do                                                          'poczatek programu
W = Getadc(5)                                               'odczytywanie ADC
If W < Granica Then                                         'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona
  Gosub Led1                                               'idż do led1 (dioda zielona zapalona
Elseif W > Granica Then                                     'jeśli 'w' jest większe od granicy dioda czerwona zapalona
  Gosub Led2                                               'idż do led2  (dioda czerwona zapalona)
End If
Loop
End
'/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/'

Led1:
Portd.2 = 1                                                 ' zapal diodę zieloną
Portd.3 = 0                                                 'a zgaś czerwoną
Return                                                      'powróć do pętli

Led2:
Portd.3 = 1                                                 'Zapal Diodę Czerwoną
Portd.2 = 0                                                 'a zgaś zieloną
Return                                                      'powróć do pętli
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

Dobra, działa prawie tak jak powinien - na początku świecą się dwie diody po przyłożeniu czujnika do białej powierzchni i naciśnięciu przycisku resetu zielona dioda gaśnie gdy drugi raz przycisnę przycisk resetu gdy czujnik jest na białej powierzchni świecą się dwie diody i tak w kółko ( co zrobić żebym nie musiał ciskać resetu ? Dodałem tylko stop ADC

 $regfile = "M8def.dat"
   $crystal = 8000000

   '/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/'
   Config Portd.2 = Output
   Config Portd.3 = Output
   Portd.2 = 0
   Portd.3 = 0

   '/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/'
   Config Adc = Single , Prescaler = Auto , Reference = Aref   'konfiguracja ADC

   '/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/'
   Dim W As Word

   '/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/'
   Const Granica = 500


   Start Adc

   '/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/'
   Do                                                          'poczatek programu
   W = Getadc(5)
   Stop Adc                                              'odczytywanie ADC
   If W < Granica Then                                         'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona
      Gosub Led1                                               'idż do led1 (dioda zielona zapalona
  If W > Granica Then                                      'jeśli 'w' jest większe od granicy dioda czerwona zapalona
      Gosub Led2                                                                      'idż do led2  (dioda czerwona zapalona)

   End If
   End If
   Loop

   '/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/'

   Led1:
   Portd.2 = 1                                                 ' zapal diodę zieloną
   Portd.3 = 0                                                 'a zgaś czerwoną
   Return                                                      'powróć do pętli

   Led2:
   Portd.3 = 1                                                 'Zapal Diodę Czerwoną
   Portd.2 = 0                                                 'a zgaś zieloną
   Return                                                      'powróć do pętli

Link do komentarza
Share on other sites

End If powinien być po każdym warunku, a nie skumulowane kilka pod koniec programu 😉

$regfile = "M8def.dat"
$crystal = 8000000

'/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/'
Config Portd.2 = Output
Config Portd.3 = Output
Portd.2 = 0
Portd.3 = 0

'/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/'
Config Adc = Single , Prescaler = Auto , Reference = Aref   'konfiguracja ADC

'/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/'
Dim W As Word

'/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/'
Const Granica = 500


Start Adc

'/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/'
Do                                                          'poczatek programu
W = Getadc(5)
Stop Adc                                                    'odczytywanie ADC
If W < Granica Then                                         'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona
  Gosub Led1                                               'idż do led1 (dioda zielona zapalona
End If

If W > Granica Then                                         'jeśli 'w' jest większe od granicy dioda czerwona zapalona
  Gosub Led2                                               'idż do led2  (dioda czerwona zapalona)
End If
Loop
'/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/'

Led1:
Portd.2 = 1                                                 ' zapal diodę zieloną
Portd.3 = 0                                                 'a zgaś czerwoną
Return                                                      'powróć do pętli

Led2:
Portd.3 = 1                                                 'Zapal Diodę Czerwoną
Portd.2 = 0                                                 'a zgaś zieloną
Return                                                      'powróć do pętli

Staraj się zawsze usuwać niepotrzebne wcięcia, bo wprowadzają nieraz w błąd. Poza tym to lepiej się czyta jak wszystkie wcięcia są tam gdzie być powinny 😉

  • Pomogłeś! 1
Link do komentarza
Share on other sites

[quote="piotreks-89"]Do                                                          'poczatek programu
W = Getadc(5)
Stop Adc                                                    'odczytywanie ADC
If W < Granica Then                                         'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona
  Gosub Led1                                               'idż do led1 (dioda zielona zapalona
End If

If W > Granica Then                                         'jeśli 'w' jest większe od granicy dioda czerwona zapalona
  Gosub Led2                                               'idż do led2  (dioda czerwona zapalona)
End If
Loop [/quote]

A gdzie włączasz ADC? Nie wiem po co je wyłączasz po pomiarze, ale później go nie wyłączasz, wiec ADC wykonuje tylko pierwszy pomiar.

[ Dodano: 27-01-2012, 19:16 ]

W Bascomie przy odczycie stanu pinu daje się PinX.n (gdzie X to port, a n to pin). Ty powinieneś dawać polecenie PortX.n 😉

Hah, kurde, ale gafa że tego nie zauważyłem. 😋

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki za wszystko program działa jak należy : 😉

           $regfile = "M8def.dat"
$crystal = 8000000

'/'/'/'/'/'/'/'Konfiguracja portow'/'/'/'/'/'/'/'
Config Portd.2 = Output
Config Portd.3 = Output
Portd.2 = 0
Portd.3 = 0

'/'/'/'/'/'/'/'Konfiguracja ADC'/'/'/'/'/'/'/'
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'konfiguracja ADC

'/'/'/'/'/'/'/'Deklaracje zmiennych'/'/'/'/'/'/'/'
Dim W As Word

'/'/'/'/'/'/'/'Granica reagowania na biala linie'/'/'/'/'/'/'/'
Const Granica = 300


Start Adc

'/'/'/'/'/'/'/'Petla nieskonczona'/'/'/'/'/'/'/'
Do
                                                         'poczatek programu

W = Getadc(5)

                                               'odczytywanie ADC
If W < Granica Then                                         'jeśli 'w' jest mniejsze od granicy dioda zielona zapalona
  Gosub Led1                                               'idż do led1 (dioda zielona zapalona
End If


If W > Granica Then                                         'jeśli 'w' jest większe od granicy dioda czerwona zapalona
  Gosub Led2
End If
                                        'idż do led2  (dioda czerwona zapalona)
Loop
End




'/'/'/'/'/'/'/'Koniec petli nieskoczonej'/'/'/'/'/'/'/'

Led1:
Portd.3 = 0                                                ' zapal diodę zieloną
Portd.2 = 1                                                 'a zgaś czerwoną
Return                                                      'powróć do pętli

Led2:

Portd.2 = 0
Portd.3 = 1                                                 'Zapal Diodę Czerwoną
Return

                                                     'a zgaś zieloną

                                                     'powróć do pętli
Link do komentarza
Share on other sites

Mam zaszczyt ogłosić że Haker działa jak należy 😉 i niedługo pojawi się filmik z jego udziałem ( po tym jak doczepię mu jeszcze dwa czujniki linii i zrobię porządne dohyo a nie takie z dwóch, czarnych kartek a4 😃 ) mam zamiar pojawić się z nim na Robomaticon

Link do komentarza
Share on other sites

Filmik z walk Hakera z nieruchomym przeciwnikiem:

(z ok 0,7 kilogramową paczką blaszek)

Dohyo zrobione z brystolu (niestety) ale o dziwo sprawuje się bardzo dobrze 😉

Czujniki może pochylę bardziej do dołu by widziały niższych przeciwników.

Robot będzie miał prawdopodobnie osłonę na te okropne kable i będze pomalowany na czarno

Zamiast baterii będzie również pakiet lipo

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

Robot wyszedł ci jak na razie bardzo fajny jednak mógłbyś zmienić ogumienie na jakieś z większym współczynnikiem tarcia ponieważ po filmiku można zobaczyć że aktualne jest za słabe aby w 100% spożytkować posiadany przez niego moment obrotowy.

P.S. Szkoda że nie uchwyciłeś na filmie momentu w którym opadają klapki.

Link do komentarza
Share on other sites

Oczywiście uszczelki będą zmienione Haker ma je od ok 2-3 miesięcy więc już się zużyły ale cały czas szukam czegoś lepszego 😉

Klapki nie opadają podczas jazdy ponieważ Haker jeździ jeszcze na bateriach które nie mieszczą się w robocie a lipol wraz zładpwarką już jedzie do mnie ( chyba z hong Kongu 😉 ) i nie jestem pewien czy dojdzie przed zawodami bo kupiłem to na hobby Kingu a tam dochodzi po 10-30 dniach.

Link do komentarza
Share on other sites

Filmiki z opuszczaniem klinów:

Niestety Haker nie doczeka się li pola - będzie jeżdził na bateriach 😕 ponieważ hobby king nie ma chyba zamiaru przysłać mojej paczki czekam już na potwierdzenie zapłaty od 7 dni i nikt się nie odezwał. Mógłby mi ktoś powiedzieć czy słyszał o podobnych przypadkach lub sam ich doświadczył?

Wczoraj Haker zyskał włochate koła by był trudniej wykrywalny (wiem że mało to pomoże ale zawsze to coś ), oraz 'flagi' które mają mylić przeciwnika ale nie jestem pewien czy jest to zgodne z regulaminem więc da się je łatwo zdemontować 😉

Oponki są tymczasowe przed zawodami przykleję nowe i prześlę zdjęcia.

Link do komentarza
Share on other sites

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

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.