
Zenon Rakoczy napisał:
Ta zabawka, widoczna na zdjęciach poniżej, to zrealizowane moje marzenie sprzed lat, a właściwie z dzieciństwa. Samobieżny samochodzik na gąsienicach. Pierwowzór sterowany był ręcznie, przewodowo, małym manipulatorem. Jeździł w przód, w tył, no i skręcał. Nie był mój, ale wybawiłem się nim co niemiara. Minęło pół wieku. Będąc na emeryturze, wraca się do marzeń. Pora zbudować więc własny egzemplarz, tyle że w nieco innej koncepcji. Zatem samochodzik nadal jest na gąsienicach, ale jest sterowany procesorem AT89C2051. Niepotrzebne jest sterowanie ręczne, bo jeździ sam.





Wprowadzone innowacje polegają na tym, że z przodu i z tyłu ma wbudowane czujniki na podczerwień, które wykrywają przeszkody do ominięcia. Są światła i klakson. Napędzany jest dwoma silniczkami, co pozwala na proste sterowanie realizujące skręt w lewo i prawo. Samochodzik jeździ sobie według programu zaszytego w pamięci procesora – może prosto, może skręcać, może do tyłu. Po napotkaniu przeszkody zatrzymuje się na chwilę. Wtedy "myśli”, co tu zrobić. Według założonego algorytmu wycofuje się i obiera inną trasę. W czasie, kiedy swobodnie jeździ, zbiera rozsypane na podłodze metalowe kulki i turla je w ustalone miejsce. Robi to w momencie, gdy metalowa kulka znajdzie się między widełkami umieszczonymi z przodu. Od tego momentu kieruje się w stronę światła ustawionego w miejscu składowania kulek. Ot, taki marsjański łazik…
No tak, ale co to ma wspólnego z Atari? Zaraz się wyjaśni. By było łatwiej i szybciej zastosować algorytm, według którego samochodzik jeździ i wykonuje zadane czynności, program napisany jest w edytorze Notepad++ i skompilowany. Wszystko to wykonuje się na pececie. Kod wynikowy zostaje przesłany łączem SIO2PC do Atari, a tam w gnieździe kartridża znajduje się programator procesorów jednoukładowych AT89Cx51. Dlaczego tak? Bo “Atari tak chciało”, bo tak to sobie wymyśliłem. Po zaprogramowaniu procesora i przełożeniu go do samochodzika pozostaje włączyć zasilanie i można się bawić. No, czasem nie tak szybko. Jeżeli dopiero opracowujemy algorytm, trzeba usunąć w nim błędy, dopracować szczegóły, przetestować kilka razy i dopiero potem zabawa rozpoczyna się na całego. Dzieciarnia co rusz wymyśla nowy układ przeszkód, którymi są rozstawiane na podłodze drewniane klocki. Nie może się nadziwić, skąd samochodzik wie, że na drodze jest przeszkoda. Mała uwaga. To nie jest tak, że za każdym razem, chcąc się bawić, trzeba na nowo pisać program i programować procesor. Mój algorytm jest już na tyle dopracowany, że wystarczy samochodzik wyjąć z pudełka, ewentualnie doładować akumulatorki i gotowe. Start i jedzie.




W zamyśle było jeszcze, aby Atari przeanalizowało wymyśloną trasę, po której samochodzik będzie się poruszać. W tym celu na ekranie w trybie GR.8 mała, poruszająca się kropeczka miała pozostawiać za sobą ślad symulujący trasę, po której poruszać będzie się samochodzik. Ale jak to bywa, projekt nie został zrealizowany do końca. Samochodzik jeździ? Jeździ. No to jest dzień zwycięstwa i nie ma pilnej potrzeby ulepszania.
Szczegóły techniczne pojazdu są takie: wykonany ze sklejki. Silniki zasilane są napięciem około 6V. Osobne zasilanie elektroniki i silników, by zakłócenia nie burzyły pracy procesora. Sterowanie silnikami poprzez przekaźniki, bo tak najłatwiej. Z przodu i z tyłu po trzy czujniki podczerwieni. Wymiary: długość 250 mm, szerokość 160 mm, wysokość 130 mm. To tyle.
Krótki filmik z poruszania się pojazdu powyżej, a poniżej fragmenty programu:
Informacje:
;Samochód na gąsienicach
;TEST 10.03.2023. Program działający
;TEST 11.03.2023. zoptymalizowany program
;TEST 12.03.2023. procedura wyliczania kierunku
;skrętu po wykryciu przeszkody
;na podstawie programu T3.asm
;15.03.2023. Gotowe, mechanicznie
;PORT P3 steruje silnikami. lewym i prawym
;------------------------------------------------
;PORT P3.0 D0, pin2, bit-0b0h, silnik lewy
;D0=1 silnik lewy stop, D0=0 silnik lewy start
;------------------------------------------------
;PORT P3.1 D1, pin3, bit-0b1h, silnik prawy
;D1=1 silnik prawy stop, D1=0 silnik prawy start
;------------------------------------------------
;PORT P3.2 D2, pin6, bit-0b2h, kierunek jazdy
;D2=1 jazda w przód, D2=0 jazda w tył
;------------------------------------------------
;0FFh silniki stop, równoważne z 0FBh
;0FCh jazda prosto w przód, silniki start
;0FDh skręt w lewo w przód, silnik prawy start
;0FEh skręt w prawo w przód, silnik lewy start
;0FBh silniki stop, równoważne z 0FFh
;0F8h jazda prosto w tył, silniki start
;0F9h skręt w lewo w tył, silnik prawy start
;0FAh skręt w prawo w tył, silnik lewy start
;------------------------------------------------
;PORT P1 steruje funkcjami samochodu
;------------------------------------------------
Fragment kodu głównego:
mov r6,#0FFh
acall xa
mov r2,#009h
mov r6,#0FCh
acall xa
mov a,r4 ;skręt, wyliczanie kierunku
rl a
mov r4,a
anl a,#11111011b
orl a,p3
cjne a,#0F9h,k2
mov r7,#030h
mov dptr,#p1
ljmp k1
k2:
mov r7,#010h
mov dptr,#pp
ljmp k1
Fragment głównej procedury:
;pusta pętla, r2 jako parametr, r3 jako parametr
xa:
mov p3,r6 ;wyłącz silniki
setb 090h ;wyłącz czujniki
cpl 092h ;włącz/wyłącz światła
Tabela danych, wyznacza trasę przejazdu:
t1:
db 0FFh,004h ;stop
db 0F9h,00Ch ;lewo tył
db 0F8h,020h ;prosto tył
db 0F9h,010h ;lewo tył
db 0F8h,020h ;prosto tył
db 0FFh,002h ;stop
db 0FEh,010h ;prawo przód
db 0FCh,030h ;prosto przód
;05
db 0FDh,00Ch ;lewo przód
db 0FCh,030h ;prosto przód
db 0FDh,010h ;lewo przód
db 0FCh,020h ;prosto przód
db 0FDh,010h ;lewo przód
db 0FCh,028h ;prosto przód
db 0FEh,010h ;prawo przód
db 0FCh,020h ;prosto w przód
;06
db 0FFh,002h ;stop
db 0F9h,010h ;lewo tył
db 0F8h,020h ;prosto tył
db 0FAh,00Ch ;prawo tył
db 0F8h,030h ;prosto tył
db 0FFh,002h ;stop
db 0FDh,010h ;lewo przód
db 0FCh,028h ;prosto przód
;07
pp:
db 0FEh,00Ch ;prawo przód
db 0FCh,020h ;prosto przód
db 0FEh,00Ch ;prawo przód
db 0FCh,030h ;prosto przód
db 0FEh,00Ch ;prawo przód
…….
…….
2026-03-04 16:15 by Kaz
komentarzy: 4
![[Atari] AtariOnLine: Atari jako programator pojazdu gąsienicowego](/Photos/www/photo/201611/atari-atarionline-logotyp.gif,134)
![[Atari] AtariOnLine: Rozmowa o demoscenie - Bac z Taquart](Photos/www/photo/201611/atari-atarionline-logotyp.gif,134)

