Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Bascom'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 39 wyników

  1. Witam, zbudowałem układ zgrzewarki, ale dopiero teraz zauważyłem, ze nie mam jak zaprogramować mikrokontroler at89c2051 i chcaiłem go zastąpic mikrokontrolerem ATTiny2313 i tutaj nasuwa się pytanie czy jest jakis program, który zmieni mi kod programowania z atmela na attiny?
  2. Witam. Jestem początkującym użytkownikiem mikrokontrolerów i staram sie ogarnąć programowanie w BASCOM. Napisałem coś takiego bardzo prostego i w sumie spełniałoby to założenie ale mam pytanie czy można w jednym czasie uaktywnić dwa porty w tym przypadku PORTB.3 i PORTB.4. Oba porty musiałyby byś aktywne przez inny okres czasu /np. P3 - 1sek, P4 - 3sek/. Kolejne pytanie to czy można zdefiniować taką funkcje jeżeli na PORTB.0 pojawia sie napięcie to wykonywana jest jakaś funkcja np. podanie prądu na PORTB.3. Byłbym wdzięczny za podpowiedź ewentualnie podanie sposobu rozwiązania. Wiem ze całość napisana jest mało kulturalnie i zajmuje prawie całą pamięć kontrolera ale proszę o wyrozumiałość dopiero zaczynam. Pozdrawiam ' Atmel ATtiny13 $regfile = "attiny13.dat" ' 1 MHz internal clock $crystal = 1200000 ' PortB is Output Config Portb = Output $hwstack = 8 $swstack = 8 $framesize = 8 ' Start motor Do Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 800 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 900 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 10 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 7 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 8 Portb.0 = 0 Waitms 500 Portb.3 = 1 'lights Waitms 9 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 10 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 7 Portb.3 = 0 'lights Waitms 1 Portb.0 = 1 Waitms 9 Portb.0 = 0 Waitms 600 Portb.3 = 1 'lights Waitms 7 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 15 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 5 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 15 Portb.0 = 0 Waitms 500 Portb.3 = 1 'lights Waitms 8 Portb.3 = 0 'lights Waitms 1 Portb.0 = 1 Waitms 20 Portb.0 = 0 Waitms 500 Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 24 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 6 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 30 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 10 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 700 Portb.3 = 1 'lights Waitms 11 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 5 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 11 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 24 Portb.0 = 0 Waitms 400 Portb.3 = 1 'lights Waitms 11 Portb.3 = 0 'lights Waitms 1 Portb.4 = 1 'lights4 Waitms 10 Portb.4 = 0 'lights4 Waitms 1 Portb.0 = 1 Waitms 50 Portb.0 = 0 Waitms 300 Portb.0 = 1 Waitms 90 Portb.0 = 0 Waitms 300 Portb.0 = 1 Waitms 120 Portb.0 = 0 Waitms 200 Portb.0 = 1 Waitms 500 Portb.0 = 0 Waitms 100 Portb.0 = 1 Waitms 400 Portb.0 = 0 Waitms 90 Portb.0 = 1 Waitms 800 Portb.0 = 0 Waitms 60 Portb.0 = 1 Waitms 1000 Portb.0 = 0 Waitms 400 Loop
  3. Witam, cieszę się, że istnieje takie forum dla zapaleńców robotyki i w ogóle automatyzacji. Chciałem Wam przedstawić mój najnowszy projekt pt. Robot z drewna Tak naprawdę tylko ramiona są wykonane z drewna, sterowanie jest oparte o RasPi3, mikrokontrolery atmega8 (na każde serwo jedna atmega, jest pięć serw) i kilka innych elementów elektronicznych. Koła zebate są wykonane z aluminium i starałem się, aby w miarę możliwości co się da, było wykonane z niego. Projekt ten jest rozwojowy, chodzi o opracowywanie z mojej strony algorytmu nauki ruchu ramieniem robotycznym i ogólnie napisaniu aplikacji sterującej wszystkimi procesami robota. Oprogramowanie napisane jest w środowisku Lazarus, jest to odmiana języka Object Pascal. Atmegi oprogramowałem w Bascomie.RasPi komunikuje się z atmegami po protokole i2c, choć przyznaję, że lepszym jest wykorzystanie rs485. Padło na i2c bo dotychczas niewiele miałem z nim do czynienia i zwyciężyła ciekawość. Ramię ma (lub wkrótce będzie miało) możliwość wykonywania zaprogramowanej w trybie online trajektorii przemieszczenia efektora końcowego, czyli przemieszczaniu jednego serwa lub kilku na raz. Tworzenie tej trajektorii polega na zapamiętywaniu pozycji enkoderów i w ten sposób tworzenia punkt po punkcie ścieżki. Pozdr, Marcin
  4. Witam ! Jakiś czas temu ukończyłem budowe mojego drugiego (po robocie z "przepisu") line followera konstrukcja jak to zwykle bywa z robotami mojej konstrukcji jest niezmiernie prosta i pozbawiona wodotrysków. A więc robot powstał w sumie w niecały miesiąc jak tylko sobie uświadomiłem, mój budżet nie pozwoli mi na ukończenie pierwszej wersji robota do której zresztą miałem już płytki. Wygrzebałem więc z szuflady dwa silniczki HL149 20:1 i zacząłem działać. Przy budowie wykorzystałem pomysł kolegi Mirka który podsunął mi pomysł wykorzystania multipleksera i tak oto do ATmega8 udało mi się podłączyć... 16 czujników to całkiem nieźle biorąc pod uwagę że zużyłem tylko 5 nóżek uC. To rozwiązania sprawia również ,że robot to chyba jedyna taka konstrukcja na forbocie! Na początek może krótka specyfikacja: Jako że jestem leniwy to nie chciało mi się robić nowej płytki więc płyta główna pochodzi ze Zniszczyciela II link Reszta elementów to : Zasilanie: Li-po 1000mAh 3S Czujniki 16 x KTIR0711S Multiplexer : HEF4067 Napęd 2x Hl149 Prędkość według obliczeń 0,4 m/s (za duże przełożenie silników) No dobrze ale na czym polega ten bajer z multiplekserem ? Otóż podstawowym problemem ograniczającym liczbę czujników w LF jest niewystarczająca liczba pinów zwłaszcza pinów ADC multiplexer pozwala nam obsłużyć nawet 16 czujników na jednym kanale ADC ! Jak on to robi ? Dosyć prosto to działa trochę tak jak przełącznik 16 pozycyjny za przełączanie go odpowiadają nóżki adresowe układu w przypadku 4067 jest ich 4 (4^2=16) więc jak widać pojawienie się na nich jakieś kombinacji bitów np. 0100 "zwiera" wejście układu do kanału adc ustawiając po kolei wszystkie kobinacje na nóżkach adresowych możemy w łatwy sposób sprawdzić 16 czujników podłączonych do wejść multiplexera. To chyba tyle z opisu schematu nie ma bo nigdy nie powstał druga płytka zawiera tylko multiplexer i złącze czujników. To teraz trochę zdjęć : I filmik : Program sterujący: Ponieważ rozwiązanie układowe jest nietypowe to również program wygląda trochę inaczej niż zwykle opiszę więc kawałek kodu. A3 = 0 : A2 = 1 : A1 = 0 : A0 = 1 'ustawiamy bity adresowy multipleksera Gosub Wczytaj_stany_przetwornikow 'pomiar ADC If W > Granica Then 'sprawdzmy czy jesteśmy na linii X = 4 'jeśli tak to wartosc czujnika = 4 D = 0 + X 'liczymy pseudo P Z = Kp * D Pwm1b = Tp + Z Pwm1a = Tp - Z End If Delay 'czekamy na przeladowanie bramki Czyli działa to tak wybieramy czujniki (piewsza linijka) sprawdzamy czy jest na linii jeśli tak to liczymy PWM jeśli nie to sprawdzmy kolejny. I tyle Oczywiście program to na razie wersja beta więc nie ma jeszcze uśredniania wyników i tak dalej.
  5. Witam wszystkich!! Chciałbym zaprezentować moją pierwszą i poważną konstrukcje mobilnego robota wielozadaniowego o nazwie eF11. Prace nad nim zacząłem jakieś 3/4 miesiące temu (lub nawet więcej). Wszystko testowałem na płytkach stykowych aż w końcu zacząłem projektować płytkę w programie CAD Eagle, jak i konstrukcję mechaniczną w programie Google SketchUp. Elektronika: Na płytce stykowej używałem Attiny2313, ale po jakimś czasie pomyślałem, że wykorzystam do tego robota Atmege8, ponieważ mogłem sobie pozwolić na więcej rzeczy, takich jak diody LED, czujniki podłoża (użycie ADC). Tak więc mózgiem robota jest Atmega8 o taktowaniu wewnętrznym 1MHz. Dwa czujniki przeszkody to Attiny13, tsop, dioda IR, rezystory i kondensatory. Do wykrywania linii służy płytka z pięcioma KTIR'ami, które będą podłączane do ADC. Jest też możliwość oświetlania drogi przez cztery białe diody LED 5mm. Sterownik silników to L298N na dwa silniki. Robot pracuje w dwóch trybach: 1. Sterowanie za pomocą pilota Rc5. 2. Omijanie przeszkód. Bot jest zasilany z pakietu Li-pol 2S 7,4V 300mAh. Wszyskie płytki zostały wykonane przeze mnie. Mechanika: Podstawą konstrukcji jest płyka alumiowa 2mm, do której są przykręcone śrubami M3 kątowniki aluminiowe 2mm. Gąsienice robota są napędzane silnikami N20 150:1 200 obr/min. Program: Program napisałem w Bascom'ie. Podsumowanie: Ogólnie jestem bardzo zadowolony. Zawarłem w tym projekcie wszystko co chciałem. Co najważniejsze nabrałem przy tym dużo doświadczenia, które posłuży mi przy następnych konstrukcjach Galeria: Filmik: Chciałbym podziękować użytkownikowi Sen za udostępnienie na forum płytki sterownika silników L298N. Jak i użytkownikom KD93 i klonyyy za projekt czujnika odbiciowego i innym!
  6. Przedstawiam Wam robota „Rush” klasy minisumo. Prace nad nim rozpocząłem w listopadzie w 2012r. i po ok. 5 miesiącach konstrukcja była gotowa. Pierwszym turniejem robota miał być Robomaticon, lecz z powodu awarii silnika nie mogłem wystartować. A teraz kilka słów o nim... Elektronika Całość elektroniki znajduje się na jednej płytce, która stanowi jednocześnie podstawę konstrukcji. Mózgiem robota jest procesor Atmega32 o taktowaniu zewnętrznym 16MHz. Jako czujnik przeciwnika wykorzystane zostały czujniki cyfrowe Sharp o zasięgu 40cm, ułożone w półokręgu, jeden patrzący w przód, dwa pod kątem 45° i 2 patrzące na boki. Do wykrywania linii służą cztery KTIRy, dwa z przodu i dwa z tyłu, podłączone do procesora przez komparator. Do zatrzymywania robota służy odbiornik TSOP. Sterowaniem silników zajmują się dwa mostki TB6612, po jednym na silnik. Robot zasilany jest z pakietu Li-pol 2S 700mAh. Płytka została wykonana w firmie Satland Prototype. Mechanika Podstawą konstrukcji jest płytka z elektroniką o grubości 1,5mm, do której przymocowane są silniki i metalowa obudowa. Robot napędzany jest dwoma silnikami Pololu HP 30:1. Koła składają się z felg wykonanych metodą druku 3D oraz opon odlanych z silikonu. Robot waży 470g. Program Program napisany został w bascomie. Robotem steruje regulator P. Osiągnięcia 3. miejsce – ROBO~motion 2013 Rzeszów Podsumowanie Ogólnie jestem zadowolony z konstrukcji, choć zawiera ona kilka niedociągnięć. Założenia zostały spełnione, nabrałem nowego doświadczenia, które na pewno przyda się przy budowie kolejnego robota. Zapraszam do zadawania pytań. Zdjęcia Filmiki (po więcej filmików zapraszam na kanał)
  7. Witam, Opisałem mojego pierwszego robota z mikrokontrolerem. Program napisałem w Bascomie. Bardzo krótki zresztą. Dla tego robota pierwszy raz sam zrobiłem schemat i wytrawiłem pierwszą PCB. Jego zadaniem jest jedynie omijanie przeszkód. Zastosowałem w nim: - 2x czujnik Sharp 10CM GP2Y0D810Z0F - Atmega8A - Stabilizator 5V 7805 - Silniki kątowe pololu - Koła pololu - Turnigy nano-tech 460mah 2S Przewidziałem goldpiny na 2 czujniki CNY70 i wyświetlacz LCD, ale jeszcze ich nie podpiąłem. Dodaję kilka fotek i schemat. Filmik może zrobię, ale za jakiś czas.
  8. Witam. Chciałbym przedstawić inną niż dotychczas konstrukcję linefollowera. Jest on wynikiem zabawy drukarką 3d. Zrobiony został dla satysfakcji oraz w celach pokazowych dla dzieci i młodzieży i nie jest to konstrukcja zawodnicza co zresztą widać. Ale do rzeczy: MECHANIKA: - napęd przekładnia tamiya 70168 - body z ABS wydrukowane na reprapie - koła również wydrukowane - opony z 4 pasków do magnetofonu Przekładnia walała mi się od dłuższego czasu. Miała pójść kiedyś do robota balansującego ale za duże luzy. Leżała, leżała aż wpadłem na pomysł zrobienia właśnie małego LF'a. Body z racji ograniczeń Reprapa wydrukowane w 2 etapach i potem sklejone. Niestety w trakcie zepsuł mi się termistor i przekłamywał i powierzchnia górnej części czyli m.in.całego przodu jest brzydka i matowa. Kółka narysowane na szybko w ramach pokazu i równie szybko pokazowo wydrukowane. Myślę że wyglądają ok. Przyczepność taka sobie . jak to guma. Kilka fotek: ELEKTRONIKA: - procesor Atmega328 z bootloaderem megaload - 5 czujników linii KTIR0711S podłączonych pod ADC - zasilanie silników z 1 lipola 1000mAh - zasilanie procesora i czujników z przetwornicy MCP1640 - wyprowadzony port szeregowy do którego podłączam moduł BlueTooth w celu programowania Na przetwornicę step-up zdecydowałem się ze względu na czujniki podpięte pod ADC oraz samo ich zasilanie. Bałem się że na pływającym zasilaniu utrudnione zostanie rozpoznawanie linii. Rozwiązanie jest dobre i do ostatnich mAh w akumulatorze LF jeździ prawidłowo. Jako drivery silników dałem pół-mostki. Silniki kręcą się tylko w przód. SOFTWARE: - program w bascomie demo - możliwe 5 programów jazdy wybieranych 2 switchami up i down. - pętla główna ok 300Hz - zaimplementowany regulator PD Jako że LF powstał w celach pokazowych zdecydowałem się od razu na kilka możliwości wyboru programu. Programów jest 5 i na obecną chwilę znajdują się tam ustawienia dla 5 różnych prędkości od wolnej do najszybszej. Najszybsza prędkość na chwilę obecną to sterowanie PWM'em max 40%. Przy większych prędkościach na tej krętej trasie nie wyrabia. Może pokuszę się o zmajstrowanie większej i mniej krętej trasy i podrasuję parametry. Filmik pokaże zabaweczkę w pracy przy mocy ok 35% mocy. Przy ok 40% jedzie ale wpada w poślizgi i wygląda jak jakiś niedorobiony drift. Wnioski: - silniki pozwalają na znacznie większą prędkość ale przy tej konstrukcji to ciężko to już wykorzystać - silniki biorą dość dużo prądu - same przekładnie hałasują i mają kupę luzów, do tego nei ma tam łożysk i wszystko o wszystko trze - koła mają małą przyczepność - 5 czujników to stanowczo za mało Dzięki za przeczytanie opisu. Pozdro Sławek
  9. Witam. Chciałbym przedstawić mojego kolejnego robota zbudowanego w celach edukacyjnych. Jest to pierwszy robot , który zbudowałem na uC. Celem robota jest ominięcie przeszkody po ówczesnym jej wykryciu, czyli zastąpienie micro przełączników cyfrowym sharp'em (poprzedni robot bazował na micro przełącznikach). Można mu również zaprogramować trasę przejazdu. Mechanika: Cała konstrukcja jest zbudowana z polutowanego laminatu, dość tanie rozwiązanie ale estetyka nie powala. Użyte gąsienice to Pololu 22T napędzane dwoma przerobionymi micro serwomechanizmami TowerPro, które są przymocowane za pomocą opasek samozaciskowych. Nie ma się tutaj co dużo rozpisywać, zdjęcia mam nadzieje wyjaśnią wszystko Elektronika: Sercem układy jest Atmega8A, której wszystkie porty zostały doszczętnie wykorzystane ;-)mostek H - L293D Trochę LED'ów , buzzer z generatorem, 3x micro switch, no i wtyk programatora. Jest to dwustronna płytka(pierwszy raz takową wykonywałem), część elementów jest polutowana w SMD. Program został napisany w języku BASCOM. Płytka zaprojektowana w PCB Express Program Napisany byle robot zadziałał, niedługo go dopieszczę i poukładam tak aby był bardziej czytelny, wtedy wstawię do tematu Poniżej taka namiastka $regfile = "m8adef.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Portc = Output 'konfiguracja portów Config Portc.5 = Input Config Portd.0 = Output Config Portb.0 = Output Config Portd.2 = Output Config Portd.1 = Output Config Portd.4 = Output Config Portd.6 = Input Config Portd.5 = Input Config Pinb.1 = Output Config Pinb.2 = Output '############## Portd.4 = 0 Waitms 80 Portd.4 = 1 ' da krótkie sygnały buzzera Waitms 80 Portd.4 = 0 Waitms 80 Portd.4 = 1 '############### Set Portc.5 Set Portd.5 ' LEDy Set Portd.6 Set Portd.4 Reset Portd.0 Reset Portb.0 Set Portd.2 Reset Portd.1 Wait 3 '$ POCZATEK PROGRAMU $ Do If Pinc.5 = 1 Then Reset Portc.0 Set Portc.3 Reset Portc.2 Set Portc.1 Debounce Pinc.5 , 0 , Odwroc , Sub ' jeśli wykryje przeszkode to odwróć Loop End ' Poczętak podprogramu do omijania przeszkody - nawracanie Odwroc: '################# Portd.4 = 0 Waitms 80 Portd.4 = 1 ' dwa krótkie sygnały buzzera Waitms 80 Portd.4 = 0 Waitms 80 Portd.4 = 1 '################# Portd.2 = 0 'zapal led czerwona Portd.1 = 1 'zgaś led niebiska Portc.0 = 0 'stop silnik A Portc.3 = 0 Portc.2 = 0 'stop silnik B Portc.1 = 0 'czekaj 0,4 sekundy Waitms 400 'wstecz silnik A Portc.0 = 1 Portc.3 = 0 'wstecz silnik B Portc.2 = 1 Portc.1 = 0 'czekaj 0,3 sekundy Waitms 300 'jedz silnik A Portc.0 = 0 Portc.3 = 1 'wstecz silnik B Portc.2 = 1 'czekaj 0,4 sekundy Portc.1 = 0 Waitms 450 'zgaś led czerwona Portd.2 = 1 Portd.1 = 0 Return 'powrót Zasilanie Zwykle zasilałem swoje roboty za pomocą baterii R6. Obawiałem się rygorystycznych zasad korzystania z lipo :-> Jednak teraz zainwestowałem w ładowarkę E-sky i robota zasilam za pomocą lipo Dualsky 400 mAh. Ogromny komfort i koszty zwracają się po kilku godz. użytkowania Koszty: -elektronika ok. 50 zł - gąsienice wyrwałem nowe ale rozpakowane na allegro za 20 zł - lipo - 20 zł Doliczając laminat, opaski itp. w 100zł się całość zamknie. To jest przybliżona kwota, nigdy nie liczyłem, ponieważ nie kupowałem wszystkiego od razu i część elementów już miałem. :-> Zdjęcia: Na zdjęciach widnieje jeszcze czujnik podczerwieni, jednak nie działał on zadowalająco i został zamieniony na cyfrowego sharp'a 10 cm. Filmik: Czekam na jakieś opinie Dzięki za przeczytanie mojego tematu Pozdrawiam :->
  10. Witam. Przedstawiam kolejną konstrukcję. Jak to u mnie bywa zrobiony został dla zabawy, satysfakcji oraz w celach pokazowych dla dzieci i młodzieży. Stąd też walory estetyczne biorą górę nad właściwościami MECHANIKA: Buda wydrukowana na RepRapie, koła również, opony z 5 pasków 2mm od magnetowidu. Napęd stanowią wyciągnięte z poprzedniego minisumo 2 serwa tp5010. Z przodu pług wyfrezowany z czarnego laminatu z wygrawerowaną nazwą. ELEKTRONIKA: 2 czujniki sharp GP2Y0D340K. Mają one strasznie wąski kąt widzenia. Myślałem że 2 wystarczą ale się myliłem. Umieszczone są pod katem ok 10stopni na zewnątrz. 2 czujniki KTIR0711S. Użyty został procesor Atmega8 w granym bootloaderem megaload, komunikacja i programowanie przez uart. Serwa zasilane są poprzez tranzystor aby w spoczynku nie pracowały. Całą płyta pochylona jest w dół pod kątek ok 4stopnie by wykrywać niższych przeciwników oraz żeby pług był trochę niższy. SOFTWARE: Dopiero się zabieram za to. Dla potrzeb filmiku na szybko coś skleciłem. Oczywiście w Bascomie Oto Kilka fotek, schemat i film. Miłego oglądania Sławek
  11. Witam! Po około 6 miesiącach walki z mikrokontrolerami nadszedł czas na budowę pierwszego robota w pełni programowalnego i z dobrym prockiem Jako, że z elektroniką mam 2 letnie doświadczenie to z tym nie miałem żadnych problemów, tak samo z PCB i zaprogramowaniem procesorka. Nazwa Janusz wzięła się od imienia mojego nauczyciela IT oraz elektromechaniki, od którego dostałem dwie 6 na koniec roku Płyta główna Procesorem sterującym jest Atmega8, jako mostek H został użyty L293D. Ów moduł został wyposażony także w 4 diody sygnalizujące stan pracy odpowiadającym im czujnikom. Każde wyprowadzenie procesora mające na celu zasilać (np. przetwornik ADC) jest filtrowane przez kondensator 100nF, więc tętnień raczej nie ma. To samo z mostkiem H - po 220µF na piny zasilania. Dodatkowym "bajerem" płyty głównej jest odbiornik kodu RC5, lecz jego "magia" zostanie wykorzystana dopiero wkrótce. Może wydawać się to wam dziwne ale ta dioda prostownicza obniża napięcie dla mikrokontrolera i logiki L293D. Kilka fotek: Moduł czujników Jako czujniki odbiciowe wykorzystałem 4x CNY70. Rezystory podciągające kolektory tranzystorów mają wartości 10kΩ, a rezystory ograniczające prąd diod mają wartości 220Ω. Niestety jeden z czujników nie działa i nie wiem dlaczego. Będę musiał go wymienić w najbliższym czasie. Kilka fotek: Podwozie Funkcję podwozia pełni zielony laminat szklano-eposydowy. Silniki to przerobione serwa HXT-900. Zasilanie to 4x bateria AA. Koło obrotowe kupione zostało w Obi, ale średnicy nie pamiętam. Funkcję kół pełnią nakrętki od słoików obklejone uszczelką do okien Fotka: Schemat Program ''''''''''''''''''''''''Konfiguracja'''''''''''''''''''''''' $regfile = "m8def.dat" $crystal = 12000000 'Konfiguracja przetwornika analog-cyfra (ADC) Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Konfiguracja sterowania sprzętowym PWM Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja portów Config Portd = Output Config Portb = Output 'Granica reagowania na linię Const Granica = 400 'Deklaracja nazw Led2 Alias Portd.7 Led3 Alias Portd.6 Led4 Alias Portd.5 Led5 Alias Portd.4 Silnik_lewy_a Alias Portd.3 Silnik_lewy_b Alias Portd.2 Silnik_prawy_b Alias Portd.0 Silnik_prawy_a Alias Portd.1 'Deklaracje zmiennych Dim Czujnik_lewy As Word Dim Czujnik_srodkowy_lewy As Word Dim Czujnik_srodkowy_prawy As Word Dim Czujnik_prawy As Word Start Adc Set Silnik_lewy_a Reset Silnik_lewy_b Set Silnik_prawy_a Reset Silnik_prawy_b 'Silniki włączone Pwm1a = 255 Pwm1b = 255 ''''''''''''''''''''''''Pętla główna'''''''''''''''''''''''' Do 'Każdowazowa konfiguracja czujników Czujnik_lewy = Getadc(2) Czujnik_srodkowy_lewy = Getadc(3) Czujnik_srodkowy_prawy = Getadc(4) Czujnik_prawy = Getadc(5) If Czujnik_srodkowy_lewy > Granica Then Pwm1a = 255 Pwm1b = 255 Led3 = 1 If Czujnik_srodkowy_prawy > Granica Then Pwm1a = 255 Pwm1b = 255 Led4 = 1 Elseif Czujnik_lewy > Granica Then Pwm1a = 0 Pwm1b = 255 Led2 = 1 Elseif Czujnik_prawy > Granica Then Pwm1a = 255 Pwm1b = 0 Led5 = 1 Else Pwm1a = 255 Pwm1b = 255 Led2 = 0 Led3 = 0 Led4 = 0 Led5 = 0 End If End If Loop End Jazda testowa Podziękowania Szczególne podziękowania za pomoc w budowie robota kieruję do użytkowników: RaV Nawyk Kosztorys (według cennika firmy LISPOL) Atmega8 - 8zł L293D - koło 4.50zł odbiornik RC5 - koło 3zł reszta elektroniki - koło 5zł laminat - 9zł koło obrotowe - koło 3zł 4x CNY70 - koło 12zł 2x Serwo HXT-900 - koło 30zł własna praca - bezcenne Mówiąc szczerze to po ukończeniu robota i jego zaprogramowanie przez kilka dni miałem z nim problemy, lecz dzisiaj się udało i zadziałał jak trzeba (oprócz prawego czujnika) . Po dniach roboty nie ma to jak satysfakcja . Tym bardziej, że mam dopiero 14 lat
  12. Nadszedł czas na opis IzyboT'a - robota, którego koncept został stworzony w 2009 roku. Podstawą do zbudowania tego robota było podwozie jeżdżącego robota, zakupionego przez Zespół Szkół Mechanicznych w Opolu. Płytka PCB w całości została przeze mnie zaprojektowana i wykonana metodą termotransferu. Celem stworzenia robota był start w pierwszej edycji zawodów Follow The Line w Rybniku w 2009r. Robot świetnie się spisywał na trasie testowej. Niestety w czasie pierwszego przejazdu robot zamiast skręcić pojechał prosto. Jak się niedawno okazało, przyczyną takiego zachowania były kiepskie luty. Robot niedawno został reaktywowany, czego wynikiem był start w zawodach Robotic Tournament w Rybniku. Przez trzy lata IzyboT stał na półce i czekając na start w zawodach. Jak widać doczekał się! Zamieszczam wszystkie informacje dotyczące tego robota, aby pomóc początkującym w stworzeniu swojej pierwszej konstrukcji. Koncept: 2009 Elektronika Procesor: ATmega16 Kwarc: 16MHz Motor driver: L293D Wyświetlacz: LCD 2*16 Ilość czujników: 6 (CNY70) Zasilanie: 10 akumulatorków NiMH (na zawodach Robotic Tournament 2012 był pakiet Li-Po 800mAh) Inne:Przełącznik prędkości, wyłącznik zbędnego obciążenia, trzy LED, dwustronna PCB Mechanika Silniki: 20GA2025-08530-25 12V 230RPM Konstrukcja: Zielone plexi + metalowe dystanse + kółko od krzesła obrotowego Program Język programowania: BASCOM Poniżej znajduje się kompletny program, który sterował robotem na zawodach Robotic Tournament 2012. '------------------------------------------------------------------------------- 'Author: Piotr Śnieżek 'Nick: ProeXtreme 'E-mail: ProeXtreme@o2.pl 'Date: 23-03-2012 '------------------------------------------------------------------------------- $regfile = "m16def.dat" 'Mikrokontroler to ATmega16 $crystal = 16000000 'Kwarc 16MHz '------------------------------------------------------------------------------- 'Konfiguracja typu i pinów wyświatlacz LCD '------------------------------------------------------------------------------- Config Lcd = 16 * 2 'Wykorzystywany wyświetlacz jest organizacji 16 *2 Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5 'Konfiguracja pinów wyświetlacza '------------------------------------------------------------------------------- 'Konfiguracja PWM '------------------------------------------------------------------------------- Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 '------------------------------------------------------------------------------- 'Konfiguracja pinów '------------------------------------------------------------------------------- Config Pina.6 = Input 'Przełącznik prędkości (1) Config Pina.7 = Input 'Przełącznik prędkości (2) Config Pinb.2 = Input 'Przełącznik prędkości (3) Config Pinb.3 = Input 'Przycisk START Config Pinb.4 = Input 'Przycisk STOP Config Portd.0 = Output 'Dioda gotowość (zielona) Config Portd.1 = Output 'Dioda ustawienia (żółta) 'Czujniki Config Pinb.1 = Input 'Czujnik 1 Config Pinb.0 = Input 'Czujnik 2 Config Pinc.7 = Input 'Czujnik 3 Config Pinc.6 = Input 'Czujnik 4 Config Pinc.1 = Input 'Czujnik 5 Config Pinc.0 = Input 'Czujnik 6 'Motor driver Config Portd.6 = Output ' 1A Config Portd.7 = Output ' 2A Config Portd.3 = Output ' 3A Config Portd.2 = Output ' 4A '------------------------------------------------------------------------------- 'Aliasy '------------------------------------------------------------------------------- Speed_button_1 Alias Pina.6 Speed_button_1_port Alias Porta.6 Speed_button_2 Alias Pina.7 Speed_button_2_port Alias Porta.7 Speed_button_3 Alias Pinb.2 Speed_button_3_port Alias Portb.2 Start_button Alias Pinb.3 'Przycisk START Start_button_port Alias Portb.3 Stop_button Alias Pinb.4 'Przycisk STOP Stop_button_port Alias Portb.4 Set Speed_button_1_port Set Speed_button_2_port Set Speed_button_3_port Led_ready Alias Portd.0 'Dioda gotowość (zielona) Led_settings Alias Portd.1 'Dioda ustawienia (żółta) Set Start_button_port Set Stop_button_port Left_motor_przod Alias Portd.6 Left_motor_tyl Alias Portd.7 Right_motor_przod Alias Portd.2 Right_motor_tyl Alias Portd.3 'Czujniki Cz1 Alias Pinb.1 'Czujnik 1 Cz2 Alias Pinb.0 'Czujnik 2 Cz3 Alias Pinc.7 'Czujnik 3 Cz4 Alias Pinc.6 'Czujnik 4 Cz5 Alias Pinc.1 'Czujnik 5 Cz6 Alias Pinc.0 'Czujnik 6 '------------------------------------------------------------------------------- 'Konfiguracja zmiennych '------------------------------------------------------------------------------- Dim Name_of_software As String * 17 'Nazwa wgranego programu Dim Version_of_software As String * 5 'Wersja wgranego programu Dim Linia As Bit Dim Tlo As Bit Dim Wcisniety As Bit Dim Puszczony As Bit Dim Max_speed As Byte 'Maksymalne wypełnienie silników PWM Dim Jedzie As Bit Dim Stoi As Bit Dim Zakret As Byte Dim Ostry_zakret As Byte Dim Przodskret As Byte Dim Licznik_czasu As Byte Dim Lewy_ostatni As Bit Dim Prawy_ostatni As Bit Dim Lewy_ostry_ostatni As Bit Dim Prawy_ostry_ostatni As Bit Dim Skret_p(6) As Byte Dim Skret_l(6) As Byte '------------------------------------------------------------------------------- 'Ustawienia wstępne '------------------------------------------------------------------------------- Name_of_software = "IzyboT 2012" Version_of_software = "v1.09" Cursor Off 'Wyłącza kursor Led_ready = 1 '0-wygaszenie diody, 1-zaświecenie diody Led_settings = 1 Linia = 1 Tlo = 0 Wcisniety = 0 Puszczony = 1 Jedzie = 1 Stoi = 0 Left_motor_przod = Stoi Left_motor_tyl = Stoi Right_motor_przod = Stoi Right_motor_tyl = Stoi Licznik_czasu = 0 '------------------------------------------------------------------------------- 'Program główny '------------------------------------------------------------------------------- Cls 'Czyści ekran Locate 1 , 3 Lcd Name_of_software Locate 2 , 7 Lcd Version_of_software Wait 1 Cls Gosub Sensors_settings Cls Do Gosub Speed_settings Do Left_motor_przod = Jedzie 'Przy rozpoczęciu jazdy robot będzie jeździł do przodu Right_motor_przod = Jedzie If Cz1 = Linia Then 'Przygotowanie do ostrego skretu w lewo Lewy_ostry_ostatni = 1 End If If Cz6 = Linia Then 'Przygotowanie do ostrego skretu w prawo Prawy_ostry_ostatni = 1 End If '............................................................................... 'Jazda na wprost '............................................................................... If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Prosto '4,5 '............................................................................... 'Skręt w prawo '............................................................................... If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '5 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Tlo And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '3,5 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '4,5 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Linia And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '3,4,5 If Cz1 = Linia And Cz2 = Linia And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_prawo '1,2 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Linia Then Gosub Ostro_w_prawo '6 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Linia Then Gosub Zawracanie_w_prawo '4,6 '............................................................................... 'Skręt w lewo '............................................................................... If Cz1 = Tlo And Cz2 = Linia And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2 If Cz1 = Tlo And Cz2 = Linia And Cz3 = Linia And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2,3 If Cz1 = Tlo And Cz2 = Linia And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2,4 If Cz1 = Tlo And Cz2 = Linia And Cz3 = Linia And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2,3,4 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Linia And Cz6 = Linia Then Gosub Lekko_w_lewo '5,6 If Cz1 = Linia And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Ostro_w_lewo '1 If Cz1 = Linia And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Zawracanie_w_lewo '1,4 '............................................................................... 'Skrzyżowanie '............................................................................... If Cz2 = Linia And Cz3 = Linia And Cz5 = Linia Then Gosub Prosto '2,3,5 '............................................................................... 'Kierunek jazdy nie określony '............................................................................... If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then If Prawy_ostatni = 1 Or Prawy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If If Lewy_ostatni = 1 Or Lewy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If End If 'Powrót na linię po wyjechaniu za nią If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then If Prawy_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Zakret End If If Prawy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If If Lewy_ostatni = 1 Then Pwm1a = Zakret Pwm1b = Max_speed End If If Lewy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If End If '............................................................................... 'Przyciski ustawień prędkości '............................................................................... If Start_button = Wcisniety Then Cls Lcd "Zakret PWM: " Do Loop Until Start_button = Puszczony Do Locate 1 , 13 Lcd Zakret ; " " If Cz5 = Linia Then Pwm1a = Max_speed Pwm1b = Zakret End If If Cz2 = Linia Then Pwm1a = Zakret Pwm1b = Max_speed End If Licznik_czasu = 0 Led_settings = 0 While Start_button = Wcisniety Do Waitms 10 Incr Licznik_czasu If Licznik_czasu = 100 Then Led_settings = 1 Loop Until Start_button = Puszczony If Led_settings = 1 Then Exit Do If Licznik_czasu >= 3 Then Zakret = Zakret + 5 Wend Licznik_czasu = 0 Led_settings = 0 While Stop_button = Wcisniety Do Waitms 10 Incr Licznik_czasu Loop Until Stop_button = Puszczony If Licznik_czasu >= 3 Then Zakret = Zakret - 5 Wend Loop 'Until Start_button = Puszczony End If If Stop_button = Wcisniety Then Cls Lcd "OstryZ PWM: " Do Loop Until Start_button = Puszczony Do Locate 1 , 13 Lcd Ostry_zakret ; " " If Cz5 = Linia Then Pwm1a = Max_speed Pwm1b = Ostry_zakret End If If Cz2 = Linia Then Pwm1a = Ostry_zakret Pwm1b = Max_speed End If Licznik_czasu = 0 Led_settings = 0 While Start_button = Wcisniety Do Waitms 10 Incr Licznik_czasu Loop Until Start_button = Puszczony If Licznik_czasu >= 3 Then Ostry_zakret = Ostry_zakret + 5 Wend Licznik_czasu = 0 Led_settings = 0 While Stop_button = Wcisniety Do Waitms 10 Incr Licznik_czasu If Licznik_czasu = 100 Then Led_settings = 1 Loop Until Stop_button = Puszczony If Led_settings = 1 Then Exit Do If Licznik_czasu >= 3 Then Ostry_zakret = Ostry_zakret - 5 Wend Loop 'Until Stop_button = Puszczony End If '............................................................................... 'Wyświetlanie wartości PWM '............................................................................... Home Lcd "PWM1a: " ; Pwm1a ; " " Lowerline Lcd "PWM1b: " ; Pwm1b ; " " Loop 'Until Stop_button = Wcisniety Pwm1a = 0 Pwm1b = 0 Left_motor_przod = Stoi Right_motor_przod = Stoi Do If Start_button = Wcisniety Then Waitms 25 If Start_button = Wcisniety Then Exit Do End If Loop Loop End 'End program Sensors_settings: 'Ustawienia czujników Cls Do If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Home If Linia = 1 Then Lcd "Linia biala " Else Lcd "Linia czarna " End If Lowerline If Tlo = 1 Then Lcd "Tlo biale " Else Lcd "Tlo czarne " End If Waitms 500 Exit Do Else Toggle Linia Toggle Tlo Gosub Ustaw_robota_na_linii End If Loop Home 'Kursor na pozycji 1, 1 Lcd " C2: C3: C5: " Lowerline Lcd " C1: C4: C6: " Do If Cz2 = Linia Then Locate 1 , 5 Lcd "1" Else Locate 1 , 5 Lcd "0" End If If Cz3 = Linia Then Locate 1 , 10 Lcd "1" Else Locate 1 , 10 Lcd "0" End If If Cz5 = Linia Then Locate 1 , 15 Lcd "1" Else Locate 1 , 15 Lcd "0" End If If Cz1 = Linia Then Locate 2 , 5 Lcd "1" Else Locate 2 , 5 Lcd "0" End If If Cz4 = Linia Then Locate 2 , 10 Lcd "1" Else Locate 2 , 10 Lcd "0" End If If Cz6 = Linia Then Locate 2 , 15 Lcd "1" Else Locate 2 , 15 Lcd "0" End If If Start_button = Wcisniety Then Waitms 25 If Start_button = Wcisniety Then Exit Do End If Loop Do Loop Until Start_button = Puszczony Return Ustaw_robota_na_linii: Lcd " Ustaw robota " Lowerline Lcd " na linii " Return Speed_settings: Cls Lcd "Maks. predkosc: " Do 'Wszystkie ON If Speed_button_1 = Wcisniety And Speed_button_2 = Wcisniety And Speed_button_3 = Wcisniety Then Max_speed = 255 'Dwa ON If Speed_button_1 = Wcisniety And Speed_button_2 = Wcisniety And Speed_button_3 = Puszczony Then Max_speed = 200 If Speed_button_1 = Wcisniety And Speed_button_2 = Puszczony And Speed_button_3 = Wcisniety Then Max_speed = 200 If Speed_button_1 = Puszczony And Speed_button_2 = Wcisniety And Speed_button_3 = Wcisniety Then Max_speed = 200 'Jeden ON If Speed_button_1 = Wcisniety And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 150 If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Wcisniety Then Max_speed = 150 If Speed_button_1 = Puszczony And Speed_button_2 = Wcisniety And Speed_button_3 = Puszczony Then Max_speed = 150 'Wszystkie OFF If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 100 If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 100 If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 100 Locate 2 , 8 If Max_speed = 255 Then Lcd "100%" If Max_speed = 200 Then Lcd "80% " If Max_speed = 150 Then Lcd "60% " If Max_speed = 100 Then Lcd "40% " Pwm1a = Max_speed Pwm1b = Max_speed Zakret = 177 Ostry_zakret = 0 If Start_button = Wcisniety Then Waitms 25 If Start_button = Wcisniety Then Exit Do End If Loop Do Loop Until Start_button = Puszczony Gosub Eliminacja_drgan Return Eliminacja_drgan: Waitms 20 Return Czas_cofania: Waitms 150 Return Prosto: Pwm1a = Max_speed Pwm1b = Max_speed Return Lekko_w_prawo: If Cz1 = Linia Then Skret_p(1) = 1 Else Skret_p(1) = 0 If Cz2 = Linia Then Skret_p(2) = 1 Else Skret_p(2) = 0 If Cz3 = Linia Then Skret_p(3) = 1 Else Skret_p(3) = 0 If Cz4 = Linia Then Skret_p(4) = 1 Else Skret_p(4) = 0 If Cz5 = Linia Then Skret_p(5) = 1 Else Skret_p(5) = 0 If Cz6 = Linia Then Skret_p(6) = 1 Else Skret_p(6) = 0 Pwm1a = Max_speed Pwm1b = Zakret Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 Prawy_ostatni = 1 Lewy_ostatni = 0 Return Lekko_w_lewo: If Cz1 = Linia Then Skret_l(1) = 1 Else Skret_l(1) = 0 If Cz2 = Linia Then Skret_l(2) = 1 Else Skret_l(2) = 0 If Cz3 = Linia Then Skret_l(3) = 1 Else Skret_l(3) = 0 If Cz4 = Linia Then Skret_l(4) = 1 Else Skret_l(4) = 0 If Cz5 = Linia Then Skret_l(5) = 1 Else Skret_l(5) = 0 If Cz6 = Linia Then Skret_l(6) = 1 Else Skret_l(6) = 0 Pwm1a = Zakret Pwm1b = Max_speed Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 Prawy_ostatni = 0 Lewy_ostatni = 1 Return Ostro_w_prawo: Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz5 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 1 Lewy_ostry_ostatni = 0 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Ostro_w_lewo: Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 1 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Zawracanie_w_prawo: Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz5 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 1 Lewy_ostry_ostatni = 0 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Zawracanie_w_lewo: Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 1 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Program był pisany 3 dni. Przejazdy robota na zawodach to maksimum jego możliwości. Przy większej prędkości robot wylatuje z trasy ze względu na jego ogromną masę. Jeśli coś pominąłem/czegoś brakuje to proszę o info na PW. Chętnie odpowiem na wszelkie pytania. __________ Komentarz dodany przez: Treker Publikacja dopiero po dodaniu zdjęcia jako załącznik. Przydałby się również większy wstęp, który będzie widoczny na portalu oraz w katalogu follow the line.sch czujnikrobot v2.0.brd IzyboT.brd
  13. Witam, chciałbym przedstawić mojego robota -Hakera. Jest to moja pierwsza konstrukcja typu minisumo i jestem z niej bardzo zadowolony. Podziękowania należą się użytkownikom forum a najbardziej Piotreks'owi89. Napęd stanowią 2 przerobione serwa tower pro SG5010. Było to dobre rozwiązanie pod względem mocy, ale prędkość jest niezadowalająca. By osiągnąć większą prędkość musiałem dać ogromne koła co również nie było najlepszym rozwiązaniem. Elektronika: -mostek H L298 - dobrze się spisywał (tylko te ogromne diody zajmują dużo miejsca) -procesor atmega8 - 4 czujniki linii -2 czujniki przeciwnika (i tu podziękowania dla piotreks'a89)-czujniki spisały się znakomicie jedynie za wysoko je umieściłem przez co nie wykryłby bardzo niskiego przeciwnika. Czujniki : Jak pisałem wyżej czujników jest 6 - 4x tcrt5000 rozmieszczonych na brzegach robota i 2x czujniki na tsopach 4836 i dwóch diodach LD271. Czujniki odległości są na oddzielnych płytkach - mają po jednym attiny13, który steruje diodami i odbiera sygnały z tsopów. Zasięg czujnika wynosi (w najlepszym przypadku) ok 56cm (testowane na dłoni ). Zasilanie to niestety baterie- ponieważ paczka z Hobby Kinga nie zdążyła przyjść Następna konstrukcja doczeka się li-pola. Program pisany w Bascomie polega na tym że procek sprawdza czunik linii a potem dwa czujniki przeciwnika i tak na każdy czujnik linii. Program spełnia moje oczekiwania i jestem z niego zadowolony Zawody Z Hakerem byłem na Robomaticonie i spisywał się wspaniale . Co prawda odpadł w ćwierć finałach, ale dla mnie to już jest wielki sukces. Wygrał cztery walki- przegrał również cztery . Na początku były problemy z wagą ale po obcięciu mu po kawałku flagi z każdej strony było równiutko 500g. Poniżej filmiki (będę dodawał po kolei bo są bardzo duże i wolno przesyłają się na you tuba.) Niestety na początku opadła flaga i było kilka falstartów Zdjęcia Hakera: (również będę dodawał cały czas bo muszę ich poszukać) Podsumowanie Robot jak najbardziej spełnił moje oczekiwania, prędkość mogłaby być lepsza, ale nie ma co narzekać bo już powstaje Haker2 w którym napęd będą stanowiły przekładnie, które już testowałem i jestem bardzo zadowolony. Cieszę się że na zawodach przeszedł do ćwierć finałów- myślałem że nie wygra nawet jednej walki
  14. Hej. Przedstawiam swoją kolejną dziwną konstrukcję. Pomysł podpatrzony w jednej z polskich firm oraz na pololu. Zrobiłem go w celach pokazowych. Chciałem mieć pająka, ale taki na 18 serwach to by mnie przerósł i finansowo i intelektualnie więc zrobiłem takiego prostego. Do sterowania wykorzystałem aplikacją w Javie którą od lat mam do takich rzeczy. Wysyła pojedyncze znaki po naciśnięciu lub puszczeniu klawisza lub joysticka. Jako BT użyłem najtańszego chińskiego modułu. W procek mam wgrany BL megaload co umożliwia automatyczne ładowanie nowego softu po naciśnięciu przycisku reset przez BT. - imie - strzeliłem, wszyscy nadają, dziwnie by mój post wyglądał więc i ja nadałem - konstrukcja - elementy wycięte cnc z laminatu 1,5mm - serwa - standard, miałem pod ręką 2szt tp 5010 i 1 conrad ES 030 - nogi - na 12 łożyskach 8x4x3 - zasilanie - 4 x nimh 1400mAh - sterownik - własny projekt małego sterowniczka specjalnie do niego na atmega328 - sterowanie przez port szeregowy (BT) - demo Napisany w Bascomie program steruje serwami w zależności od otrzymanej po uarcie komendy lub załącza demo powodujące długie tuptanie pająka w miejscu. Chciałem dołożyć mu obracany na serwie sonar ultradźwiękowy ale już chyba tego nie zrobię. Prędkość jego poruszania się jest tak niewielka że zanim by doszedł do jakiejś przeszkody żeby ją ominąć minełyby wieki. Więc taki pewnie zostanie. Kilka fotek oraz film Pozdro Sławek
  15. Od początku mojej przygody z robotyką chciałem zrobić niewielkiego linefollowera, który byłby w stanie konkurować pod względem prędkości ze znacznie większymi konstrukcjami. Powstało kilka mniej lub bardziej udanych płytek, ale żadna konstrukcja nie spełniała moich założeń w 100%. Po ukończeniu Stridera2 i poznaniu jego słabych stron wróciłem do pomysłu małego robota, którego ucieleśnieniem jest właśnie Tsubame. Tsubame jest właściwie prototypem, spytacie dlaczego, dlatego, że większość rozwiązań w tym linefollowerze to dla mnie nowość. Począwszy od felg i opon, przez przetwornicę zasilającą silniki, gęstsze ustawienie czujników, a skończywszy na mostku H. Tak dużo zmian w jednym robocie nie dawało mi pewności, że wszystko będzie działać, tak jakbym chciał, ale miało dać mi nowe doświadczenie do budowy nowego linefollowera. Przyznaję szczerze, że jestem zaskoczony, że wszystkie zastosowane przeze mnie nowinki spełniły swoje zadanie i to nawet lepiej niż zakładałem. Opony wykonane z poliuretanu mają niesamowitą przyczepność, gdy łapałem robota na torze wykonanym na brystolu 100x70cm to brystol zaczynał się przesuwać po podłodze. Zastosowana przetwornica obniżająca napięcie do zasilania silników przez mostek H nawet nie jest ciepła po długiej jeździe, mostek H też spisuje się rewelacyjnie. Czujniki ustawione gęściej zmniejszyły znacznie drgania całego przodu, bo zniknęła martwa strefa pomiędzy czujnikami. Tsubame jest młodszym bratem Stridera2, i powstał w dużej mierze na tej konstrukcji. Kilka szczegółów technicznych: - procesor: Atmega328P@20MHz - czujniki: 8 sztuk KTIR0711S - zasilanie: 2 akumulatorki li-pol 350mAh - mostek H: układ TB6612 - robot napędzany jest silnikami z pololu, przekładnia 10:1, 3000obr/min, wersja silnika HP - sterowanie silników: 2 kanały PWM z procesora, plus 4 linie odpowiedzialne za zmianę kierunku obrotu - na płytce jest miejsce na odbiornik podczerwieni TSOP348 (w tej płytce odbiornik nie został jeszcze użyty) - wymiary: rozstaw osi 70mm, szerokość przodu 55,6mm, szerokość tyłu 58,4mm (sama płytka), długość 90mm (bez wystających kulek) - z przodu zamontowane są 2 kulki ceramiczne - masa robota gotowego do jazdy - 71,4g - kod w całości napisany w Bascomie Czas na część przyjemniejszą dla oka: Zdjęcia przedstawiają proces odlewania opon z poliuretanu. Pomiędzy formy a felgi wstrzyknąłem strzykawką przez dość grubą igłę jeszcze płynny poliuretan. Drugie zdjęcie przedstawia koła wyciągnięte z formy. Chciałbym podziękować Bobby'emu, to dzięki niemu powstały formy i felgi . Schemat oraz widok płytki: Płytka przed lutowaniem i pierwsze przymiarki: Prawie skończony robot, jeszcze bez kulek z przodu: W pełni gotowy robot, wraz z akumulatorkami: Na koniec krótki filmik przedstawiający jedną z pierwszych jazd testowych: Przejazd z prędkością powyżej 1m/s: Przejazd z prędkością i ustawieniami jak film wyżej, za to ten nagrany w 240fps (frame per second - klatek na sekundę) odtwarzany z prędkością 30 fps, więc film pokazuje ruch 8 razy wolniej, widać każdy szczegół, każdy błąd:
  16. Witam. Jest to mój pierwszy robot prezentowany tutaj. Docelowo ma on się składać z trzech modułów ( light follower, line follower i omijacz przeszkód), jednak dotychczas udało mi się uruchomić dwa z nich ( patrz: nazwa tematu). Po ukończeniu projektu należy przenieść temat do projektów początkujących . Muszę uprzedzić, że mam bardzo slaby słaby aparat, dlatego też pozwoliłem sobie umieścić tylko 1 filmik i 0 zdjęć. Oto video prezentujące praće w trybie omijacza przeszkód: https://www.youtube.com/watch?v=ALiS9xg94t0 Na filmie widać pod koniec jakiś niepożądany ruch ( robot cofa się i zamiast skręcić znów jedzie prosto- nie wiem z czego to wynika) Samo rozwiązanie problemu wykrycia przeszkody wzorowane na robocie Wall-i użytkownika Le_Cheque, aczkolwiek rozwiązanie elektroniczne jest zupełnie inne. Pierwszą wadą, o której warto wspomnieć jest zbyt mała płytka główna ( płytka uniwersalna). Umieściłem na niej mostek H l293dne, atmege8, złącze isp, stabilizator i goldpiny. Kolejnym problemem były w/w goldpiny - otóż dopiero po ukończeniu elektroniki dowiedziałem się, że zamiast tych o odstępie 2,54 użyłem bodajże 2,50 ( niby pasują, ale te większe są lepsze i złącza bls tak łatwo się od nich nie odczepiają). Warto też wspomnieć o stabilizatorze. Jako zasilanie służą mi 4 baterie AA (razem 6v), a stabilizatorem początkowo był znany 7805. Gdy napiecie spadło chociażby do 5.5V to na elektronice było już mniej, niż 4V i wszystko przestawało pracować prawidłowo. Rozwiązania były dwa: zwiększenie napięcia przed stabilizatorem albo stabilizator low drop ( o niskim spadku napięcia). Pierwszy pomysł niestety nie mógł być wykorzystany ze względu na to, że silniki ( przerobione mikroserwa) zasilałem napięciem niestabilizowanym i w rezultacie musiałem dokupić dużo droższy stabilizator low drop ( 7zł, a 7805 jest wart 0.50zł. Tyle o elektronice:) Całość wykonana na płytce z laminatu i śrubkach M3. Do przedłużenia krańcówek i przymocowania mikroserw innym sposobem, niz hot-glue użyłem części ze starej ruskiej zabawki ''mały konstruktor''. Moduł do line followera zawiera 3 czujniki CNY70 (całość jest już gotowa i zamontowana do robota, mimo iż nie widac tego na filmiku). Co do estetyki to na pewno rzuca się w oczy ta plątanina kabli nad płytką ( o ile coś na tym filmie widzićie ). Wynika to z tego, że wszystko chciałem mieć umieszczone na goldpinach - chociaż teraz średnio jestem z tego zadowolony. Koła pochodzą z jakiegoś plastikowego traktora i są przymocowane do orczyków przy pomocy kropelki. Program napisany w bascom - jestem poczatkujący, więc składa się on tylko z poleceń warunkowych if then else. Nie udało mi się też narazie zmieniać trybu pracy przy pomocy przekładania zworki, dlatego też narazie muszę przeprogramować robota by zmienić tego funkcje. To chyba na tyle. Co polecacie na nastepna konstrukcje ? Opcji jest kilka: kolejny wielozadaniowy ( Ale to jakoś mnie nie kręci.... ktoś tu kiedyś napisał, że jak robot jest od wszystkiego to jest do niczego) platforma zdalnie sterowana/na gąsienicach ( nie mam w tym żadnego doświadczenia) manipulator/na gąsienicach line follower ( chociaż narazie jakoś nie kręci mnie ta dyscyplina ) minisumo ( chociaż pewnie może być troche za trudne na razie) robot kroczący ( chyba zdecydowanie za trudne ) Aha - no i jeszcze kod xD Zamieszcze ten od omijacza przeszkód: $regfile = "m8def.dat" $crystal = 1000000 Defint Z Config Portd.0 = Output Config Portd.1 = Output Config Portd.2 = Input Config Portd.3 = Input Config Portd.4 = Input Config Portd.5 = Output Config Portd.6 = Output Config Portd.7 = Output Config Portb = Output Config Portc.0 = Input Config Portc.1 = Input Config Portc.2 = Input Config Portc.3 = Input Config Portc.4 = Input Config Portc.5 = Output Config Portc.6 = Input S1 Alias Portd.5 S2 Alias Portd.6 S3 Alias Portd.7 S4 Alias Portb.0 Czujnik1 Alias Pind.2 Czujnik2 Alias Pind.3 Czujnik3 Alias Pind.4 Dioda1 Alias Portd.0 Dioda2 Alias Portd.1 Dzwignia1 Alias Pinc.3 Dzwignia2 Alias Pinc.4 Dioda3 Alias Portc.5 Foto1 Alias Pinc.1 Foto2 Alias Pinc.0 Przycisk Alias Pinb.1 Portb = &B00000000 Portd = &B00000000 Portc = &B1111111 Do Dioda1 = 0 Dioda2 = 1 Dioda3 = 1 S1 = 1 S2 = 0 S3 = 1 S4 = 0 Waitms 100 Dioda3 = 0 Dioda1 = 1 Dioda2 = 0 If Dzwignia1 = 1 And Dzwignia2 = 1 Then Zmienna1 = 3 Elseif Dzwignia1 = 1 Then Zmienna1 = 1 Elseif Dzwignia2 = 1 Then Zmienna1 = 2 End If If Zmienna1 = 1 Then S1 = 0 S2 = 1 S3 = 0 S4 = 1 Dioda1 = 0 Dioda2 = 0 Dioda3 = 1 Waitms 1500 S1 = 1 S2 = 0 S3 = 0 S4 = 0 Dioda1 = 0 Dioda2 = 1 Dioda3 = 1 Waitms 950 S1 = 1 S2 = 0 S3 = 1 S4 = 0 Zmienna1 = 0 End If If Zmienna1 = 2 Then S1 = 0 S2 = 1 S3 = 0 S4 = 1 Dioda1 = 0 Dioda2 = 0 Dioda3 = 1 Waitms 1500 S1 = 0 S2 = 0 S3 = 1 S4 = 0 Dioda1 = 0 Dioda2 = 1 Dioda3 = 1 Waitms 950 S1 = 1 S2 = 0 S3 = 1 S4 = 0 Zmienna1 = 0 End If If Zmienna1 = 3 Then S1 = 0 S2 = 1 S3 = 0 S4 = 1 Dioda1 = 0 Dioda2 = 0 Dioda3 = 1 Waitms 1500 S1 = 0 S2 = 0 S3 = 1 S4 = 0 Dioda1 = 0 Dioda2 = 1 Dioda3 = 1 Waitms 1770 S1 = 1 S2 = 0 S3 = 1 S4 = 0 Zmienna1 = 0 End If Waitms 100 Loop UPDATE: Powstał kod do line followera ( wersja alfa - wykorzystująca 2 z trzech czujników - ale działa) Oto filmik: https://www.youtube.com/watch?v=oovTW3w7dR8 Widać na nim ogromne problemy z przczepnością.... opony są z plastiku. Skrętność robota jest ograniczona przez stałe kółko obrotowe ( bez możliwości obrotu) Myślę, że można go powoli przenieść do konstrukcji ukończonych (początkujących na przykład). Dalej niestety wymaga przeprogramowania do zmiennej pracy. 2 zdjęcia, które udało mi się zrobić kiepskim aparatem - jedno w załączniku - wedle polecenia regulaminu : No i 2 inne zdjęcia już kiepskiej jakości :/ Zamierzam teraz przystąpić do budowy platformy na gąsienicach z tematu https://www.forbot.pl/forum/topics20/materialy-wykorzystanie-spienionego-pcv-vt1148.htm Kupiłem już na allegro gąsienice za 15zł+ przesyłka i czekam na paczkę : http://allegro.pl/gasienice-czolgi-1-18-model-2171-2172-i1760471549.html nazwa aukcji: Gąsienice czołgi 1:18 model 2171 / 2172 sprzedający: ram2spj Jeśli mi się uda, to wpakuje do niej zdalne sterowanie, ale chcę też uczynić go[robota] autonomicznym, stąd też może macie jakieś ciekawe i w miare proste w wykonaniu pomysły. Myślałem też o podnoszonym pługu ( takim jak wywrotka z Boba Budowniczego ).
  17. Witam, przedstawiam Wam mojego drugiego robota typu line follower, który został zbudowany, w celu wystartowania na TTR oraz Roboxy2011. Konstrukcję uważam za w miarę udaną, był to na pewno krok w przód względem poprzedniej wersji, jednak nie osiągnąłem też tego na co liczyłem. Mechanika oraz napęd. Sama konstrukcja mechaniczna powstała już dość dawno, cały ten proces można było śledzić na mini worklog'u. Jednak z powodu braku czasu (matury ) ukończona została dopiero na kilka tygodni przed zawodami. Cała mechanika opiera się o laminat i masę tulejek dystansowych - co było błędem, ponieważ masa części byłą kompletnie zbędną i robiła tylko za zbędny balast. Napęd to oczywiście silniki Pololu 30:1 HP + koła 32mm. Napęd ten z powodu niskiego zasilania dostarczanego do silników okazał się słabym punktem konstrukcji. Dodatkowo, przy maksymalnych prędkościach na zakrętach konstrukcja wpadała w poślizgi. Projekt konstrukcji. Około 150g w takiej formie. Koszyk na akumulator. Elektronika. Za pracę całej konstrukcji odpowiedzialne są dwie płytki - jedna z procesorem oraz druga z czujnikami. Główna płytka posiada procesor ATmega16, złącze dla czujników oraz programatora i RS232, złącza dodatkowe np.: dla SHARP'a analogowego. Cała konstrukcja zasilana jest z pakietu Li-po 2S, elektronika dostaje 5V przez stabilizator LDO, a silniki zasilane były przez przetwornicę ST1S10PHR, która sprawdzała się bardzo dobrze, do momentów, w których się paliła Mam jakiś błąd na schemacie lub użyłem złych kondensatorów dlatego nie polecam kopiować mojego schematu - dodatkowo, ten załączony ma błąd (nie połączone dwa piny), dlatego najlepiej wzorować się notą katalogową. Monitor stanu baterii też ma błąd, brakuje jednego rezystora Dodatkowo na płytce znajduje się sporo led'ów, buzzer, TSOP oraz przełączniki. Silnikami steruje gotowy moduł z TB6612FNG, jednak nie było to potrzebne, ponieważ nie udało mi się zepsuć mostka - więc można go uznać za mocną bestie Schemat płytki z uC Warstwa TOP i BOTTOM płytki wykonanej w firmie Satland Prototype Płytka z czujnikami, to 8szt. KTIR0711S i ballcaster z Pololu. Program Cały program napisany został w Bascomie, robotem steruje PID, a właściwie częściej używałem samego PD. Czujniki odczytywane były przez ADC, jednak nie wykorzystywałem tego znacząco, po kalibracji traktowałem już odczyty z czujników cyfrowo. Niestety nie ma żadnych filmów z przejazdów na zawodach, dlatego przedstawiam tylko filmik z początkowych testów: Na koniec dorobiłem do całej konstrukcji program napisany w Delphi, który przekazywał różne dane przez dodatkowy moduł do PC: Konstrukcja zajęła 4 miejsce na zawodach TTR 2011. Teraz trwają prace nad 3 wersją robota Jutro polutowana będzie nowa płytka z czujnikami. Przy okazji zachęcam wszystkich do publikowania opisów swoich konstrukcji (trwa konkurs) oraz do zaglądania do naszego największego w Polsce katalogu robotów amatorskich! Czekam na pytania Pozdrawiam, Damian
  18. Witam. rok temu powstał pomysł sklecenia czegoś balansującego po tym jak jeździłem Segway'em. I ostatnio się trochę do roboty wziąłem. Wstępne efekty na filmie. Projekt miał na celu poznanie zasad stabilizacji i poziomowania takiej platformy. Trochę danych: - procesor Mega328 na płytce arduino Nano z USB - konstrukcja z lego, siniki lego - żyro ITG3200 - acc LIS3LV02 - driver 293d - sterowanie RC 2 kanały Soft: - w bascomie - Filtr kalmana - PID do równowagi - P do obrotu - silniki bez sprzężenia więc sterowanie dalekie od ideału. Główny problem to dopracowac KF bo wydaje mi sie ze coś nie tak działa. Np po wywróceniu się platformy poziom wraca dopiero po ok 10s. Tak samo jak jedzie i puści się drążek to widać ze dąży do utrzymanai pozycji która odbiega od pionu. Jakby kąt był źle obliczany i po jakimś czasie się kalibrował. Drugi problem to jak domiksować sygnały z silników (nie mam enkoderów i w tej konstrukcji miał już nie będę) tak żeby przy puszczeniu drążków faktycznie platforma stałą a nie dryfowała sobie przód tył (czasami stoi nawet z 5min ale to jak nie steruję jej) Filmik. Jakiś syfek chyba na obiektywie siadł bo środek niewyraźny ale da się oglądnąć. Zapraszam do dyskusji osoby które mogłyby mi to pomóc lepiej wystabilizować bo mam z tym jeszcze kilka problemów. Pozdrawiam Sławek __________ Komentarz dodany przez: Treker Proszę zapoznać się z regulaminem działu. Bark zdjęcia w załączniku. Początek opisu zbyt krótki (będzie on widoczny w katalogu robotów). Proszę wybrać odpowiedni TAG dla tematu.
  19. Przedstawiam wam moją konstrukcję linefollowera, oraz płytkę, która powstała jako uniwersalna płytka do różnych robotów. Zacznijmy od początku, płytka oparta jest na mikrokontrolerze z rodziny ATmega48/88/168/328, w moim przypadku są to dwa układy ATmega168/328P. Schemat nie różni się bardzo od schematu Psotka3, zmiany jakie widać na pierwszy rzut oka to złącze 10-cio pinowe służące do podłączenia do 8 czujników, gotowe źródło prądowe oparte na LM317 do zasilania diod IR w płytce czujników (połączenie szeregowe diod), trzy przyciski kątowe typu mikroswitch (wykorzystywane przy wprowadzaniu zmian prędkości i konfiguracji ustawień wzmocnień współczynników algorytmu PID poprzez złożone menu). Płytka została zaprojektowana pod kątem mieszczenia się w całości pod wyświetlaczem LCD 2x8 zgodnym z HD44780, niestety podczas projektowania powiększyłem płytkę o 2,5mm czego następstwem są nie pasujące piny od podświetlania wyświetlacza: Tak jak w Psotku3, tak i w tej płytce, złącze służące do programowania, jest jednocześnie złączem dla LCD w trybie 4-ro bitowego przesyłania danych (oczywiście poza pinem Reset). Doprowadzenie płytki do takiej postacie zajęło mi bardzo dużo czasu, z przerwami spędziłem nad nią ponad miesiąc, nie licząc małej wpadki z pinami od podświetlania, myślę, że nie był to stracony czas. Płytka została wykorzystana w pierwszej wersji Strider'a, okazało się jednak, że silniki z Psotka2 po założeniu kół o średnicy 66mm, są zbyt słabe do napędzania robota, dlatego też powstał Strider2: Szczegóły techniczne: procesor: Atmega328P@20MHz czujniki: 8 sztuk KTIR0711S, ustawione w kształt, który miał poprawiać wykrywanie kątów prostych: zasilanie: 2 akumulatorki li-pol 450mAh, 5V dla logiki pochodzi z układu LP2950 mostek H: 2 układy SI9986CY (dwa pełne mostki H) robot napędzany jest silnikami z pololu, przekładnia 30:1, 1000obr/min, wersja silnika HP sterowanie silników: 4 kanały PWM z procesora kod w całości napisany w Bascomie, łącznie z obsługą PID oraz 4 kanałów PWM robot zawiera wyświetlacz LCD 2x8, na którym są wyświetlane różne parametry, na płytce jest miejsce na odbiornik podczerwieni TSOP348 (w tej płytce odbiornik nie został użyty), 3 mikro switche kątowe używane do konfiguracji prędkości poprzez zaawansowane menu wymiary: rozstaw osi 124mm, szerokość przodu 90mm, długość 110mm z przodu zamontowane są 2 kulki teflonowe, wykonane własnoręcznie na wiertarce z pomocą scyzoryka, papieru ściernego, i ponad dwóch godzin pracy na kulkę wymiary płytki 60,3x30,3 [mmxmm] masa robota wraz z akumulatorkami - 120g Ponieważ najprostsze rozwiązania są najlepsze, nie umieszczałem nigdzie włącznika, ani żadnych uchwytów na akumulatorki (doskonale w tej roli sprawdza się zwykła gumka recepturka). Oto kilka zdjęć samej płytki, oraz fazy projektowania: Strider2 jest moim pierwszym linefollowerem, który przekroczył prędkość 1m/s podążając za linią. Niestety okazuje się, że zastosowane mostki są za słabe do tych silników, daje się również we znaki brak kondensatorów równolegle do silników oraz kondensatorów na zasilaniu mostków. Po przekroczeniu pewnej wartości PWM/prędkości restartuje się mikrokontroler, co kończy się zatrzymaniem na torze. Poniżej najszybszy przejazd Stridera2 podczas zawodów Robo3DVision w Gdańsku. Czas przejazdu 7,23s, który dał mi szóste miejsce w eliminacjach, niestety mój linefollower nie jechał jeszcze wtedy z pełnią swoich możliwości.
  20. ZDALNIE STEROWANY SAMOBIEŻNY MANIPULATOR OPERACYJNY DO ZADAŃ SPECJALNYCH Chciałbym zaprezentować mój kolejny duży projekt, będący zarazem moją pracą inżynierską. Praca jest dość złożona, wymagała dużego nakładu pracy, wykorzystania narzędzi do projektowania i obejmowała głównie trzy nurty - mechanikę, elektronikę i informatykę. Zostałem poproszony o przedstawienie go również na forum PRA które wyjątkowo pasuje do tego projektu. WSTĘP W grudniu ubiegłego roku skończyłem i opublikowałem mój poprzedni projekt zaawansowanego systemu oświetlenia, dostępny na forum elektroda.pl. Pomimo tego, że był on pracochłonny a termin obrony się zbliżał postanowiłem jednak to co zacząłem najpierw dokończyć zanim zabiorę się za prace dyplomową. Z tego wynika, że projektowanie i budowa manipulatora trwała około 4 miesiące od stycznia do kwietnia, czas gonił jednak dobre rozplanowanie pracy to gwarancja sukcesu. Długo zastanawiałem się w jakiej formie umieścić post na forum, szczerze spisałem się już dość w samej pracy i doszedłem do wniosku że nie będzie długiego opisu i wielu zdjęć jak zwykle, było by wręcz za dużo materiału. Przedstawię tylko garstkę najważniejszych informacji w tym to co może zainteresować forumowiczów, potem natomiast zachęcam do pobrania elektronicznej wersji pracy, gdzie bardzo szczegółowo na 123 stronach opisano proces projektowania, wszystkie elementy składowe oraz sam etap tworzenia manipulatora i wykonane testy. Zamieszczam też zdjęcia w większej rozdzielczości z wszystkich etapów powstawania konstrukcji a także do wglądu program sterujący w wersji v1.1, w nim znajduje się opis funkcji i sposobu sterowania, dla dociekliwych. Przygotowałem też dwa filmiki, jeden pokazujący działającą aplikacje i obraz z kamery a drugi pokazujący manipulator. Chciałbym z góry zaznaczyć, że nie udostępniam projektów elementów konstrukcji manipulatora, plików schematów i płytek obwodów elektronicznych oraz źródeł programów. W pracy zamieszczono za to dokładne rysunki manipulatora, są też rysunki schematów i płytek oraz fragmenty listingów z rozwojowych i testowych wersji programów. Nie musze dodawać chyba że praca inżynierska jak każda inna chroniona jest prawami autorskimi. GŁÓWNE ZAŁOŻENIA Mniej więcej rok temu gdy należało zadeklarować wybrany temat pracy, postanowiłem zbudować coś niebanalnego. Do głowy przyszło mi coś podobnego do używanych przez służby policyjne/saperskie robotów do przenoszenia niebezpiecznych przedmiotów. Przedstawiłem wówczas promotorowi wstępny temat pracy i jej założenia wraz z krótkim opisem: “Tematem pracy dyplomowej ma być manipulator o kilku stopniach swobody oparty o konstrukcje aluminiową i serwomechanizmy modelarskie, co pozwoli na chwytanie i przenoszenie przedmiotów, zbudowany na podwoziu gąsienicowym z napędem elektrycznym dzięki czemu umożliwi to poruszanie się w różnym terenie, z własnym zasilaniem akumulatorem żelowym 6V, sterowany przy wykorzystaniu szeregowego portu komunikacyjnego komputera PC z zainstalowanym programem pozwalającym kontrolować pracę serwomechanizmów za pomocą danych wprowadzanych z klawiatury lub dołączonego sterownika(joystick/joypad). Transmisja sygnału będzie odbywać się za pomocą toru radiowego przy wykorzystaniu modułów pracujących na częstotliwości 433MHz lub innej, W opcji urządzenie może być wyposażone w kamerę i oświetlacz podczerwieni, przy czym obraz będzie przesyłany również drogą radiową do odbiornika, którym będzie mogła być stacja robocza typu laptop z wejściem AV.” Konstrukcja taka chodziła mi po głowie od pewnego czasu przy czym warto zaznaczyć, że moim jedynym doświadczeniem z robotyką był tylko kit AVT821, który okazał się mechanicznie wysoce nieprzemyślaną przez twórcę konstrukcją, ponadto doszedł problem z jego sterowaniem w systemie XP. Pomogła zmiana sterownika na sterownik serwomechanizmów z zestawu NE041, choć jego program jest nie za bardzo funkcjonalny, kilka dni temu z nudów napisałem własny. Gdyby ktoś kto używa go w swojej konstrukcji zestawu NE041 był zainteresowany zmienionym programem mogę udostępnić go wraz ze źródłami lub zmodyfikować wg potrzeb. KONSTRUKCJA MECHANICZNA Projekt elementów składowych, powstawał w środowisku Autocad Inventor 9. Zaczęło się od podwozia które dostosowałem do zakupionych gąsienic z modelu czołgu i kół współpracujących z gąsienicami. Później powstały pozostałe elementy, stopniowo płyta górna, obrotnica na której powoli zaczęło powstawać ramię. Na tym etapie przydała się bardzo suwmiarka elektroniczna, powstały szczegółowe rysunki serwomechanizmów, które planowałem użyć następnie jak klocki lego łączono w programie za pomocą kolejnych elementów ramienia. Program umożliwia symulacje ruchów i wykrywanie kolizji co bardzo się przydało i pozwoliło zaobserwować prace poszczególnych stopni swobody już na monitorze komputera, na przykład można nałożyć wiązania ruchowe i zaobserwować pracę chwytaka i zębatych elementów go napędzających. Do posiadanej wersji Inventora nie miałem bibliotek, wszelkie elementy nawet śrubki, podkładki czy nakrętki M3 rysowałem sam. Praca w Inventorze jest bardzo intuicyjna, wciągająca i przyjemna(o ile się go lubi oczywiście) i osoby mające z nim kontakt pewnie stwierdzą podobnie. Detale można dopracować do perfekcji jak chociażby stworzony model serwa S03T któremu brakuje jedynie przewodu, poza tym jest dopracowane w najmniejszych szczegółach, powstał nawet dedykowany mu orczyk który scala wał serwa i płytki ramion ze sobą. Potem wszystko było dopracowywane pod kątem ergonomii, tak by najlepiej współpracowało z resztą. Z wielu możliwości wykonania samego chwytaka zdecydowałem się na właśnie taką wersje jaka jest obecnie. Jako budulca zamiast aluminium zdecydowałem się jednak na użycie laminatu, głównie ze względu na to iż przy stawianych mu w projekcie wymaganiach jego właściwości nie są gorsze od aluminium, za to łatwiejsza jest obróbka jak i łączenie. Zdobycie laminatu okazało się też łatwiejsze a i obróbka jest tańsza. Pierwotnie bowiem zaprojektowane elementy miały być wyeksportowane do formatu DXF i wycięte w jednej z firm zajmującej się produkcją obwodów elektronicznych za pomocą frezarki CNC. Jednak gdy po wycenie dowiedziałem się że kosztowało by to 150zł(materiał+wykonanie) plus koszty przygotowania dokumentacji 500zł(klikanie w klawisze), zamówiłem w innej firmie jedynie wstępnie docięty laminat i wszystkie pojedyncze elementy, zaokrąglenia czy otwory wykonałem ręcznie przy użyciu podróbki dremelka, jak widać nie takiej złej jakości, skoro w poprzednim projekcie wywierciłem nim przy użyciu jednego zresztą wiertła widiowego 0,7mm ponad 1500 otworków pod rząd, a teraz za pomocą kilku tarczek korundowych udało się wyciąć wszystkie części składowe. Cięcie pozostawiło w moim pokoju ślady które usuwałem jeszcze długo po nim, mianowicie cały ten wszechobecny pył. Pomimo okularów ochronnych miałem go nawet na rzęsach. Potem za pomocą małego frezu pozostało wyrównać wszystkie cięte krawędzie. Jedynie większe otwory wykonane były dużą wiertarką. Następnie elementy przymierzono i po stwierdzeniu że wszystko pasuje, płytki przeszlifowałem aby usunąć zadziory i nierówności, umyłem i odtłuściłem. Po wstępnym montażu podwozia, gdzie przewidziano połączenia lutowane całość okazała się bardzo solidna i sztywna. Po tym laminat został polakierowany, czarny mat wyszedł rewelacyjnie, można było pomyśleć że to jakieś gotowe odlewy z fabryki, a miejsca lutowania nabrały wyglądu spawów wykonanych automatem. Potem po wykonaniu szablonu malarskiego powstał ostrzegawczy żółto-czarny wzór. Wszystko malowane było lakierami w sprayu. Polecam czarny mat. Szczegółowy opis w pracy, kilka danych technicznych: Waga – około 5kg (zależy od stanu naładowania akumulatora ) Długość całkowita – 37,5cm Szerokość – 23cm Szerokość gąsienicy – 45mm Prześwit – 23mm Wysokość ramienia w najwyższym punkcie – około 40cm Max. średnica chwytanych przedmiotów – 65mm Max. waga przenoszonych przedmiotów – około 0,5kg SERWOMECHANIZMY Elementy nadające ruch to w sumie aż 10 serwomechanizmów różnych typów i producentów. Szczegółowy ich opis znajduje się w pracy, a na uwagę zasługuje tu przeróbka serw napędowych tak by usunąć blokadę obrotu. Do wszelkich modyfikacji najlepiej nadają się serwomechanizmy GWS S03X, zarówno usunięcie blokady obrotu oraz wykonanie osi po drugiej stronie(tak by możliwe było zamocowanie ramienia z drugiej strony wału napędowego) są bardzo proste i możliwe do wykonania, zupełnie jakby producent przewidział taką potrzebę. Problem pojawił się gdy we wszystkich sklepach w Polsce znalazłem w sumie tylko trzy wersje S03T 2BBMG czyli najlepsze z serii standard z metalowymi przekładniami i łożyskami tocznymi i momentem prawie 9kg/cm, podczas gdy potrzebowałem pięciu(w tym dwa do napędu gąsienic). Te dwa więc musiałem zastąpić innymi o jak najlepszych parametrach(szybkość i moment) i możliwości ich modyfikacji. Najlepszym z dostępnych na tamtą chwile rozwiązań okazał się model Hitec 325HB o wzmocnionych przekładniach i dwóch łożyskach a przede wszystkim można je łatwo zmodyfikować. A apropo samej modyfikacji, gdziekolwiek bym nie słyszał o czymś takim, wszędzie po usunięciu blokady usuwa się potem elektronikę i zasila silnik bezpośrednio. Owszem dobre jak ktoś chce i może sterować takim silnikiem potem za pomocą PWM czy mostka H. Ja natomiast chociażby ze względu na ograniczoną ilość pinów a także na uproszczenie sterowania zdecydowałem się pozostawić elektronikę i sterować serwem zupełnie tak jak wcześniej. Usunięta została blokada i sprzężenie wału z potencjometrem, który ustawiłem w pozycji środkowej i zablokowałem. Impulsy równy 1,5ms powoduje zatrzymanie serwa, większe od neutralnego 1,5ms powodują płynne zwiększanie obrotów w jedną stronę i vice versa. Proste prawda?? ELEKTRONIKA Elektronika manipulatora składa się z części nadawczej dołączonej do komputera sterującego oraz odbiorczej umieszczonej w manipulatorze. Nadajnik używa portu komunikacyjnego RS-232C z którego dane po zmianie poziomów logicznych przepuszczane są przez mikrokontroler i wpuszczane na moduł nadawczy RTFQ2 firmy Telecontrolli. Modułów radiowych oczywiście nie było w bibliotekach Eagla, w którym oczywiście powstała całość, więc narysowałem je sam. Na dobrą sprawę jak może niektórzy zauważą mikrokontroler w nadajniku można by pominąć, zwłaszcza że ATmega8 trochę marnuje się w tym miejscu, ale zdecydowałem się rozszerzyć funkcjonalność i ułatwić przygotowanie transmisji, zwłaszcza zostawiając sobie możliwość wprowadzenia modyfikacji w przyszłości. Nadajnik jest w zasadzie nazywany urządzeniem nadawczo-odbiorczym, gdyż zawiera w górnej części wbudowany odbiornik kamery bezprzewodowej dołączany do portu USB. Aby stacja sterująca była uniezależniona od zasilania zewnętrznego z portu USB pobierane jest również zasilanie dla nadajnika. W przypadku użycia laptopa ze sprawnym akumulatorem nie trzeba się martwić o dostęp do gniazdka i sterować manipulatorem możemy wszędzie. Ostatecznie również udało się rozwiązać problem transmisji danych szeregowych za pomocą dostępnych gotowych modułów radiowych. Często czytałem na elektrodzie o powodzeniach lub porażkach(częściej tym drugim) przy próbach przesłania czegoś przez RS-232C bezprzewodowo. Jak wiadomo choć wiele osób tego nie doczytuje nadajniki i odbiorniki radiowe wymagają zakodowanego sygnału do przesłania, najlepiej typu Manchester. Okazało się że para moduł radiowy plus układ MC14502X(koder/dekoder Manchester) przynajmniej w moim przypadku nie nadawała się do transmisji danych szeregowych. Owszem wszystko działało tak że można by zbudować prostego pilota ale przy próbie przesłania danych nic z tego, być może należało by spróbować z innymi wartościami elementów oscylatora w tych układach, co jednak jest kłopotliwe. Inaczej wyglądała sytuacja z wykorzystaniem gotowego polecenia Bascoma sendrc5. W takiej konfiguracji moduły działały świetnie przy bezpośrednim dołączeniu do mikrokontrolera z którego nóżki wejściowej wychodził gotowy zakodowany sygnał. Wadą był natomiast długi czas transmisji oraz sposób lub raczej “pojemność danych” w tym poleceniu, przesłanie całych bajtów nie wchodziło w grę a dzielenie bajtów na dwa i potem ich łączenie znów wydłużało by czas transmisji. Pozostawało przygotowanie własnego protokołu kodowania lub jakaś jeszcze inna opcja. Po wielu kombinacjach i próbach bo nie myślcie że temat był wałkowany tylko przez jeden wieczór, okazało się że jak zwykle najlepszym rozwiązaniem jest to najprostsze i przyszło mi do głowy równie nagle jak skuteczne się okazało, mianowicie wystarczył inverter sygnału na jednym tranzystorze(bramce logicznej), który załatwia sprawę bezpośredniego dołączenia nadajnika/odbiornika do UARTu. Za pomocą dwóch płytek testowych jednej z ATmegą8 a drugiej z Atmegą32 i rozdzielonej płytki stykowej na część z nadajnikiem i odbiornikiem radiowym przeprowadziłem próby przesyłania danych. Z portu szeregowego programem testowym wysyłałem kilka bajtów do jednej ATmegi(lub bezpośrednio do modułu nadawczego) i odbierałem je odbiornikiem radiowym dołączonym do drugiego mikrokontrolera który dane wyświetlał na LCD. Aby potwierdzić poprawność transmisji skorzystałem nawet z oscyloskopu przy czym stwierdziłem że przebieg danych po stronie nadawczej i odbiorczej nie odstają znacząco od siebie. Prędkość transmisji jaką próbowałem to 4800bps i 9600bps, nie wykluczone że poszła by jeszcze większa choć pewnie z błędami ale po co skoro nawet 4800bps jest tu wystarczające. Pozostałe ustawienia transmisji jak parzystość czy bit startu ustawione były domyślnie. Widać zatem że dobrym wyborem był zakup lepszej(i droższej) pary nadajnik odbiornik, świetna sprawa i wystarczające rozwiązanie, zwłaszcza że nadal można dorobić programowe kodowanie. Przekłamania w transmisji zdarzają się czasem, jednak zabezpieczona jest ona algorytmem sumy kontrolnej CRC. W przypadku odebrania błędnej ramki jest ona odrzucana. Dane odbierane są przez moduł RRFQ1 i interpretowane przez mikrokontroler, który zajmuje się wysterowaniem 10 serw(w sumie 9 kanałów) oraz włączaniem oświetlenia kamery. Na płytce odbiornika umieszczono też blok przetwornicy zbudowanej na układzie MAX761 która dostarcza zasilania dla kamery bezprzewodowej, myślałem na początku o MC34063 ale układ firmy MAXIM okazał się prostszy i zatem lepszy jak na stawiane mu wymagania. Ma on wydajność 150mA przy napięciu 12V. Kamera zaś pobiera tylko 70mA. Zasilanie dla manipulatora stanowi umieszczony wewnątrz akumulator żelowy o napięciu 6V(idealne do bezpośredniego zasilania serw) i pojemności 12Ah. Taka pojemność gwarantuje bardzo długą pracę, nie precyzuje jak długą by nie skłamać a trudno określić pobór średni prądu, wystarczy jedynie fakt że akumulator do tej pory musiałem ładować tylko raz, przed obroną. Dla części cyfrowej czyli mikrokontrolera i odbiornika radiowego zasilania dostarcza stabilizator o niskim spadku napięcia. Standardowy 7805 nie spisałby się tu(6V->5V). OPROGRAMOWANIE Specjalnie do obsługi manipulatora powstał program napisany w Delphi Enterprise 7. Miałem bowiem wcześniej z Delphi doświadczenie na uczelni lecz tylko przez jeden semestr. W ciągu kilku długich nocy przy pomocy poradników z internetu, starych pisanych na zaliczenie programów a zwłaszcza forum 4proggramers przypomniałem sobie co i jak i ściągnąłem potrzebne komponenty. Program bazuje na trzech głównych zadaniach, odbiór obrazu z urządzenia video zainstalowanego w systemie(kontrolka dspack), obsłudze urządzenia kontrolera gier(powerdraw) oraz transmisji danych przez port COM(cport). Wczesna wersja oparta była jedynie o wysyłanie danych przez port i obsługę urządzenia video. Wersja 1.0 obrazowała już stan wysterowania poszczególnych serw, natomiast wersja obecna, udoskonalona jest między innymi o graficzną reprezentacje położenia ramion, dzięki czemu obsługujący widzi na bieżąco jak wygląda położenie kolejnych stopni swobody. W programie znajduje się również prosty panel konfiguracji(wybór portu, kamery, joypada) oraz krótka instrukcja obsługi wraz z funkcjami klawiszy. Oprogramowanie dwóch mikrokontrolerów ATmega8 powstało w Bascomie(wiem jaki jest Bascom) ale póki co wywiązał się jeszcze ze stawianych mu wymagań. Najbardziej bałem się sterowania taką ilością serwomechanizmów, zwłaszcza przy obsłudze UARTa oraz kilku innych zadań, chociażby timera odmierzającego czas. Zastosowałem szybki kwarc co jest zalecane przy większej ilości serw. Program realizuje też funkcje samokontroli czyli na bieżąco co około 4 sekundy bada stan napięcia akumulatora oraz siłę sygnału, by nie dopuścić do nadmiernego rozładowania akumulatora(żelowe tego nie lubią) oraz nie stracić zasięgu ze sterowanym pojazdem który pomknął by w wiadomym tylko sobie kierunku KAMERA BEZPRZEWODOWA Jeszcze chciałbym dodać kilka słów na temat użytej kamery bezprzewodowej. Jest to miniaturowa kamera kolorowa z dźwiękiem pracująca na częstotliwości 2,4GHz. Najważniejszą jej zaletą jest to że odbiornik, nie tak jak w przypadku tańszych modeli z wyjściem AV, posiada gniazdo którym podłączany jest bezpośrednio do portu USB!! Na początku myślałem o zwykłej tańszej kamerce bezprzewodowej 1,2GHz z odbiornikiem wyposażonym w złącza AV, jednak musiałbym zastosować do laptopa z którego przewidziałem sterowanie jakąś kartę wideo/tuner na port pcimcia. W sumie wyszło by niewiele taniej a doszedł by problem z zasilaniem odbiornika z USB(znów przetwornica). Dlatego idealnym wręcz wyjściem był zakup modelu z interfejsem USB a dodatkowo 2,4GHz oraz brak strojenia wyszedł zdecydowanie na plus. Jedynym można powiedzieć małym i nieznaczącym w zasadzie minusem a zarazem plusem tej wersji kamery jest odrobinę większa obudowa w porównaniu do modeli z małą czarną kostką, za to dzięki temu że jest nieznacznie większa, umieszczono w jej obudowie diody oświetlające w ilości 6szt. Radość nie trwała zbyt długo gdyż okazało się że są to jedynie 3mm atrapy diod. Nie był to problem gdyż wystarczyło rozebrać obudowę i podmienić atrapy na prawdziwe LEDy. Zastanawiałem się jakich użyć, podczerwonych czy zwykłych białych(wchodziła też w grę wersja mieszana, podczerwone do akcji w nocy i zachowania niewidzialności) jednak jak się okazało, podczerwień nadaje się głównie do kamer czarno białych, a ta jest kolorowa(więc posiada filtr IR). Wybór zatem padł na 6szt bardzo dobrej jakości diod białych 3mm, połączonych równolegle każda z rezystorem i zasilanych z 5V(bezpośrednie zasilanie z akumulatora mogłoby powodować ich denerwujące przygasanie). Gotowa kamera zamocowana została na obrotnicy i porusza się razem z nią a dodatkowo w płaszczyźnie góra dół dzięki małemu modelowi serwa TowerPro. Jeśli ktoś jest zainteresowany mam dostęp do tych kamer w cenie dużo tańszej niż są oferowane na znanym serwisie aukcyjnym. MOŻLIWOŚCI ZMIAN Jak każdy potrafi sobie wyobrazić manipulator może mieć wiele ciekawych zastosowań, jest też możliwa jego rozbudowa o nowe systemy czy możliwości. Z modyfikacji elektroniki, warte uwagi było by dodanie kanału zwrotnego, tak się złożyło że urządzenie póki co go nie posiada. Jego zastosowanie pozwoliło by na przesyłanie do stacji bazowej wszystkich informacji z otoczenia manipulatora, przede wszystkim parametrów życiowych czyli stan akumulatora oraz siły zasięgu, aż po bardziej zaawansowane jak w wersji ekskluzywnej nawet licznik Geigera-Mullera . Nie ma powodów by narzekać, jednak modyfikacji można by poddać konstrukcje mechaniczną a dokładnie tylko napęd w celu zwiększenia mocy i właściwości trakcyjnych, wystarczy wymiana dwóch serw napędzających gąsienice. W grę oczywiście wchodzi dalsze udoskonalanie oprogramowania, przede wszystkim zmiana języka w jakim zostały napisane programy do mikrokontrolerów na taki, który daje większe możliwości, zwłaszcza gdy oprogramowanie mikrokontrolera będzie miało więcej do zrobienia. Także nowe funkcje programu sterującego np. możliwość elastycznego przypisania klawiszy czy to klawiatury czy dołączonych kontrolerów do funkcji urządzenia, bądź dodanie rejestracji obrazu z kamery w postaci pliku wideo zapisywanego na dysk, co jest do wykonania bardzo prosto i przewiduje prace właśnie w tym kierunku. Może ktoś z was ma jakieś pomysły czy sugestie, są one ograniczone w zasadzie tylko wyobraźnią Mogę dodać iż z wprowadzonych już zmian w stosunku do pierwotnie zakładanej wersji w modelu zmieniłem jedno serwo, konkretnie S11 na wersje metalową, gdyż plastikowa uległa uszkodzeniu i to co ciekawe nie przy pracy tylko przy ręcznym poruszaniu obrotnicą(przekładnie nie lubią takich sił), oraz wprowadziłem już kilka poprawek do programu mikrokontrolera części odbiorczej, generalnie szczegółów. Jak na chwile obecną manipulator jest w pełni gotów do zadań specjalnych. KOSZTORYS Lub może lepiej nie... Tym razem mogę przedstawić dokładniejszy kosztorys zwłaszcza głównych elementów konstrukcji gdyż zbierałem wszystkie faktury lub inne dokumenty z ceną gdy nie dało się wystawić faktury. Ceny które podaje zawierają podatek VAT oraz koszty przesyłki, serwomechanizmy i podzespoły elektroniczne były przykładowo zamawiane w kilku partiach. Oprócz kosztów napiszę skąd pochodziły konkretne elementy czy podzespoły, pomoże to zainteresowanym w zakupie. Serwomechanizmy (SOMMERTECH, NASTIK - polecam!!, AIRHOBBY) – 699zł Podzespoły elektroniczne (TME) – 301zł (nie wszystkie wykorzystane) Kamera bezprzewodowa – 293zł Laminat (MERKAR - polecam!!) – 185zł Moduły radiowe Telecontrolli (SOYTER - polecam!!) – 154zł Ładowarka akumulatora (AKBA) – 79zł Akumulator żelowy (AKBA) – 53zł Komplet śrub nakrętek i podkładek M3 – 31zł Powyższy spis i tak wydaje się zbyt mały, owszem nie przedstawiłem w nim cennika części na które nie mam dokumentacji, chociaż też kosztowały swoje, chociażby gąsienice z uszkodzonego modelu czołgu czy materiały potrzebne do wykończenia i inne drobnostki, jednak i bez tego suma jest piorunująca. Każdy zsumował powyższą listę?? Ktoś uważa że przepłaciłem za inżyniera ??? PODZIĘKOWANIA Chciałem podziękować kilku osobom z elektrody za pomoc, gdy była ona potrzebna do rozwiania moich wątpliwości lub wyjaśnienia jakiegoś zagadnienia. Koledze mirekk36 za fachowe wytłumaczenie zasad kodowania sygnałów i próby rozwiązania transmisji bezprzewodowej za pomocą modułów radiowych. Widać że często udziela się w dyskusjach i na jedną z nich na interesujący temat transmisji bezprzewodowej niegdyś trafiłem. Po wielu różnych próbach gdy znalazłem w końcu rozwiązanie bezpośredniego dołączenia modułów radiowych do UARTu oczywiście z odwróceniem sygnału, kolega przetestował je nawet osobiście. Dzięki za pomoc i korespondencję!! Koledze yego666 za informacje na temat jego interfejsu sterownika serwomechanizmów który kiedyś stworzył a przede wszystkim za słowa “nic wiec tam nie ma czego przeciętnie zdolna małpa by nie opanowała” co naprawdę solidnie natchnęło mnie do działania i jak widać powstał bardzo dobry program w Delphi a szczerze jeszcze rok temu myślałem, że właśnie z tym będę miał problem nie do przeskoczenia. Dziękuje za to wsparcie bo przydało się!! Koledze radziow za pomoc w temacie http://www.elektroda.pl/rtvforum/topic981853.html , miałem bowiem pomysł jak to zrobić od strony rysowania ale nie miałem pomysłu na samo wyznaczenie współrzędnych co widać nie było aż takie trudne. Czasem utknie się jednak na najprostszym etapie i trzeba jakiegoś impulsu a mi się musiało myślenie chyba zawiesić, dzięki za pomysł!! DO POBRANIA A teraz czas na obiecany deser – poniżej materiały jakie narazie przygotowałem. Po ściągnięciu pracy zalecam wygodnie rozsiąść się w fotelu, myślę że czytać będzie się miło. W paczce ze zdjęciami znajdują się wersje w lepszej jakości, dodatkowo są też zdjęcia nie zamieszczone w samej pracy, polecam ściągnąć choć dużo tego. Dla dociekliwych program wraz z instrukcją obsługi do wglądu a dzięki filmikom z pracy manipulatora będzie można poczuć się jak operator. Materiały part1 – http://www.speedyshare.com/913539449.html Materiały part2 – http://www.speedyshare.com/507441140.html Ponadto dzięki uprzejmości kolegi manekinen z forum elektroda.pl, całość materiałów można ściągnąć z jego serwera pod adresem poniżej. Dziękuję za udostępnienie miejsca! Materiały całość - www.mm.pl/~kisiel-ket/manipulator.rar Ponadto aby był wgląd w zdjęcia przygotowałem jednak tabele z miniaturami, którą zamieszczam tutaj, po ich powiększeniu da się dość dużo zobaczyć. I oczywiście jeden z filmików, zamieszczam na YouTube tylko jeden gdyż drugi przedstawia działającą aplikacje i żeby było cokolwiek widać warto go ściągnąć. Link - SŁOWEM ZAKOŃCZENIA Znam umiejętności czytania tekstu ze zrozumieniem co niektórych, zapraszam więc do komentowania i do zadawania pytań, tylko proszę nie takich na które odpowiedź można znaleźć w powyższym tekście bądź w samej pracy, naprawdę wszystko jest dość szczegółowo opisane. Mile widziane uwagi oraz nowe pomysły lub sugestie. Gdyby były wątpliwości model nie jest na sprzedaż, jednak jeśli czyta to ktoś z powiedzmy NASA lub służb specjalnych to rozważę wszelkie propozycje dobrej współpracy Dziękuję za poświęcony czas. Pozdrawiam Janek
  21. Witam, chciałbym przedstawić mojego pierwszego robota klasy Line-Follower z którym wystartowałem na Sumo Challenge 2010 zajmując 14 miejsce. Jest on równocześnie moim pierwszym robotem z µC, oraz w ogóle pierwszym zadowalająco działającym robotem. Jest to konstrukcja dość prosta, jednak działa, spełniając jedno z założeń projektu i jestem z niej stosunkowo zadowolony Mechanika "Ciało" Pathfindera stanowią dwa elementy ze spienionego PCV połączone metalowymi dystansownikami i śrubkami M3. Wszystkie PCB są również w ten sposób zamocowane. Jeden element służy jako stelaż dla czujników linii, a drugi spaja wszystkie elementy w całość. Niestety w kilku miejscach został użyty klej na gorąco, co znacząco obniża i tak niedużą estetykę konstrukcji Trzecie koło to metalowa kulka z marketu budowlanego. Napęd i koła pochodzą ze starej zabawki, jednak okazało się, że silniki nie pracują równomiernie, co znacznie utrudnia wydajne śledzenie linii. Koła są plastikowe, także w celu zwiększenia przyczepności zostały oklejone taśmą samowulkanizacyjną i muszę powiedzieć, że jestem pozytywnie zaskoczony przyczepnością takiej opony. Polecam jako prowizoryczne zwiększenie przyczepności opon Ich wadą jest lepkość, w związku z czym bardzo łatwo się brudzą, czyszczą trudniej. Elektronika Głównym elementem układu elektronicznego jest µC AtMega88 taktowana 20MHz. Na płycie głównej znajduje się także złącze programatora, 5 LED wraz z rezystorami, układ resetu, TSOP na 36kHz, brzęczyk piezo oraz złącza do innych modułów. Elektronika jest modułowa, co miało ułatwić ewentualne naprawy, jednak był to błąd powodujący chaos w przewodach i możliwe wadliwe połączenia na stykach. Robot posiada 5 czujników odbiciowych TCRT5000, każdy na osobnej płytce wraz z rezystorami i złączem oraz 2 mostki H TC4424 wraz z diodami i złączami, również na osobnych płytkach. Moduł zasilania składa się ze stabilizatora LM7805 oraz kondensatorów. Wszystkie płytki są zaprojektowane przeze mnie, a wykonane w firmie Unidruk. Z racji, że to są moje pierwsze płytki nie udało się uniknąć błędów, jednak zostały one szybko poprawione za pomocą miniszlifierki i kynara. Układy zasilane są z 6 baterii AA połączonych szeregowo, co daje 9V. Program był pisany w BASCOMie, obecnie powstaje nowa wersja w C. Teraz zdjęcia: Przejazdy na Sumo Challenge 2010. Algorytm jest kiepski, a w połączeniu z wadliwymi silnikami daje widoczny efekt Wiem, że nie jest to konstrukcja na zawody piękności ale pokazała mi ona na co zwrócić uwagę przy następnym projekcie Poza jednym pomysłem dot. programu, Pathfinder nie będzie już rozwijany z racji na kiepskie zasilanie, napęd wygląd oraz elektronikę, która jest OK, ale daje możliwość podłączenia jedynie 5 czujników.
  22. Kolejny już linefolower. Konstrukcja ta nie wnosi zupełnie nic innowacyjnego w tej dziedzinie. Zbudowałem Teofila z myślą o poznaniu zasad funkcjonowania tej klasy urządzeń autonomicznych, nauki obsługi czujników, praktycznego wykorzystania uP. Od początku nie zamierzałem startować nim w zawodach. Można powiedzieć, że stworzyłem go dla własnej satysfakcji. Mechanika: Podwozie wykonane z arkusza laminatu 1,5mm dwustronnego, rozstaw kół 160mm, odległość czujników od osi kół od 115mm do 195mm ze skokiem co 15mm, średnica kół 55mm (koła ze starej pralki Frani oklejone silikonowym paskiem z pończoch samonośnych koleżanki). Klasyczny napęd różnicowy z silnikami o parametrach 6V, 160RPM, 75mNm firmy MicroMotor oraz swobodną kulką meblową umieszczoną w płytce z czujnikami. Całkowite wymiary platformy to 170/230mm (170/245mm z maksymalnie wysuniętymi czujnikami). Całkowita masa to około 450gram. Czujniki: Jedenaście dobrze wszystkim znanych transoptorów TCRT5000 rozstawionych co 7,5mm (na środku jest pojedynczy centralny, kolejne dwa po bokach są oddalone o 10mm, reszta co 7,5mm). Czujniki z rezystorami umieszczone są na płytce, którą można przesuwać względem osi silników co pozwoliło na zbadanie zachowań LFa w różnych konfiguracjach na różnych trasach. Czujniki podłączone bezpośrednio pod porty uP. Elektronika: Atmega8 (z zapasów) taktowana kwarcem 16MHz, mostek H L298N umieszczony z diodami na oddzielnej płytce wyposażonej w listwę goldpinów, stabilizator 7805, 2x przyciski, 1x LED, garść drobnicy, niestandardowo bezpiecznik szklany rurkowy 20mm i w obwodzie dioda spolaryzowana zaporowo co w przypadku błędnego podłączenia zasilania ratuje układ i zasilanie. Uprzedzam pytania o schemat – nie narysowałem go w ogóle, po prostu rysowałem płytki w Eagle zaglądając do not katalogowych, dlatego że większość wyprowadzona jest na goldpinach. Bardzo pomocne okazały się schematy jakie odnalazłem w projektach innych użytkowników Diody. Płytki wykonane termotransferem, cynowane bez prądowo. Muszę się pochwalić, że pierwszy raz robiłem płytki tą metodą i za pierwszym razem wyszły rewelacyjnie. Zasilanie: Modelarski Li-Pol 11,1V 500mAh , starcza na niecałą godzinę zabawy.(Tak, silniki są na 6V, ale zasilam je bezpośrednio z li-pol’a. Elektrycznie nie mam obaw co do możliwości ich spalenia, jednak plastikowe koła zębate w przekładniach prawdopodobnie znacznie szybciej się zużywają). Algorytm: Powstało kilka wersji softu w Bascomie (IF, CASE, PID, mieszane), gównie dlatego, że ucząc się na błędach i zdobywając nowe doświadczenia opracowywałem nowe rozwiązania (modyfikacje). Obecnie Teofil jeździ na algorytmie PID, a właściwie to na PD ( akcja I nie da się wyregulować dla obecnej postaci oprogramowania) z pamięcią strony po której się znajdował w momencie gdy wszystkie czujniki stracą kontakt z czarną taśmą. Algorytm pisałem spoglądając na kod robocika 3Pi Pololu, więc również nie jest to mój autorski pomysł. Dobrze się sprawdza na zakrętach od kątem prostym, dość płynnie pokonuje łuki nawet ostre, jednak ostatnio po zmniejszeniu częstotliwości PWM do 4kHz chwieje się na prostych (przy f=32kHz proste pokonywał idealnie, na łukach lekko ‘kuleje’) Średnia prędkość na trasie wynosi około 0.65m/s więc nie powala, ale i nie miał być to robot walczący o pozycje w ścisłej czołówce. Wnioski: -DOKŁADNIE czytać datasheety . Zasilanie jedenastu nadajników IR pożera mi 200mA (co stanowi 40% całkowitego zużycia energii) i dostarcza sporą ilość ciepła do radiatora na stabilizatorze. (Myśląc, że zwiększę sprawność detekcji zastosowałem rezystory 220 Ohm na każdą diodę, nie sprawdziwszy przedtem w nocie katalogowej iż spadek napięcia na tego typu diodzie to 1,25V, a nie jak w zwykłym ledzie około 3V). Teraz wiem dlaczego bardziej doświadczeni konstruktorzy używają źródeł prądowych na LM317 i łączą diody szeregowo. -Kulka meblowa o ile dobrze się ślizga to jest stosunkowo ciężka, 40gram to około 9% wagi Teofila, umieszczona daleko od osi silników generuje większy moment bezwładności przy skręcaniu – trzeba zastosować coś lżejszego. -Plątanina kabli wygląda mało estetycznie, waży kilka gram, o ile w platformie testowej jest do zaakceptowania to w „ewentualnie” przyszłej konstrukcji wszystko będzie na jednej płytce stanowiącej jednocześnie podwozie, oraz też warto przejść na elementy SMD, co większość z Was już zrobiła, a ja nie, bo mam zapas elementów przewlekanych z dawnych czasów. Koszty: -2x silniki -20zł (allegro), -laminat 1,5mm A4 -5zł (allegro), -11x TCRT5000 -27zł (allegro), -kulka ślizgowa – 6zł (liroy), -mostek H – 10zł (AVT), -Li-Pol 3S 500mAh -27zł (allegro), -Atmega8 - ?zł (własne zapasy), - koła -0zł (demobil i koleżanka , -drobnica – 10zł. Razem wyszło by około 120zł (nie uwzględniłem kosztów transportu) Kilka zdjęć: PD i pamięć strony, f PWM 4kHz. PD i algorytm pokonywania zakrętów prostych oparty o IFa, f PWM 32kHz. Pierwsze testy, zasilanie z zasilacza, algorytm oparty o IF albo CASE. Jeśli macie jakieś pytania, postaram się odpowiedzieć w miarę możliwości. Pozdrawiam.
  23. Witam. Mam na imię Marek z Węgorzewa. Chciałem pochwalić się moim pierwszym robotem. Robot jest w fazie rozbudowy. Na chwilę obecna nie posiada żadnych czujników elektronicznych. Jego "oczami" są dwa wąsy z wykorzystaniem 2 x SWITCH. Całość elektroniki jest oparta o typowy mikro-kontroler ATmega8. W projekcie wykorzystałem gotową płytkę bazową z ww. kontrolerem który można zakupić na stronie AVT. Czemu ten - ponieważ jest to gotowe rozwiązanie z zasilaniem 5V oszczędnym w prądzie. Oczywiście moduł jest do samodzielnego montażu. Resztę podzespołów już jest mojego wykonania i pomysłu. Napęd stanowią dwa serwomotory przerobione typu TG9e sterowane układem L298N przez PWM z kontrolera. Całość zaprojektowałem z myślą o rozbudowie i z stąd tyle goldpinów. Serwa napędzają dwa gąsienicowe układy jezdne wymontowane z zabawki WALL-E. Elementy zamontowane na płytce drukowanej którą zaprojektowałem i wykonałem osobiście. Trawienie metoda termo - transferową: Efekt finalny (jak na pierwszą płytkę chyba nie tak źle ?) Widok po złożeniu: Wycena projektu: 1. moduł z ATmega8 = 16zł 2. serwa = 24zł 3. elektronika + płytka + wytrawiacz + pisak do korekt = 45zł 4. praca własna ok 200 godz = bezcenne doświadczenia i wrażenia. Wiem że nie jest to projekt bez wad. Więc oczekuję szczerych opinii oraz pytań. Film obrazujący zachowanie się robota: https://www.youtube.com/watch?v=if_4jXwUUMc Program ROBO-1: $regfile = "m8def.dat" 'deklaracja pliku z opisem rejestrów procesora $crystal = 1200000 'deklaracja częstotliwości kwarcu Config Portd.0 = Output Config Portd.1 = Output Config Portd.2 = Output Config Portc.4 = Output Config Portc.5 = Output Config Pinc.0 = Input Set Portc.0 Config Pinc.2 = Input Set Portc.2 Config Pind.3 = Input Set Portd.3 'deklaracje aliasów Led_3 Alias Portd.0 Led_2 Alias Portd.1 Led_4 Alias Portd.2 Led_1 Alias Portc.5 Buzzer Alias Portc.4 Zderzak_p Alias Pinc.0 Zderzak_l Alias Pinc.2 S1 Alias Pind.3 Inputh_1 Alias Portd.7 Inputh_2 Alias Portb.0 Inputh_3 Alias Portd.6 Inputh_4 Alias Portd.5 Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Declare Sub Silniki(byval V_prawa As Integer , Byval V_lewa As Integer) 'deklaracja procedura obsługi silników Buzzer = 1 'włączamy, odczekujemy 1 sekundy, a potem wyłączamy brzęczyk Led_3 = 1 Led_4 = 1 Waitms 800 Buzzer = 0 Wait 1 Led_3 = 0 Led_4 = 0 Do Call Silniki(200 , 200) '2 koła Led_1 = 1 Led_2 = 1 If Zderzak_p = 0 Then Call Silniki(0 , 0) 'stop Led_1 = 0 Led_2 = 0 Waitms 200 Call Silniki( -127 , -127) 'wstecz 2 kola Led_3 = 1 Led_4 = 1 Wait 2 Led_3 = 0 Led_4 = 0 Call Silniki( -127 , 0) 'wstecz prawe Led_3 = 1 Wait 2 Led_3 = 0 End If If Zderzak_l = 0 Then Call Silniki(0 , 0) Led_1 = 0 Led_2 = 0 Waitms 200 Call Silniki( -127 , -127) Led_3 = 1 Led_4 = 1 Wait 2 Led_3 = 0 Led_4 = 0 Call Silniki(0 , -127) Led_4 = 1 Wait 2 Led_4 = 0 End If Loop End Sub Silniki(byval V_prawa As Integer , Byval V_lewa As Integer) 'procedura obsługi silników V_prawa = V_prawa + 0 'korygujemy prawy silnik If V_prawa > 0 Then Pwm1a = V_prawa Inputh_1 = 1 Inputh_2 = 0 Else Pwm1a = -1 * V_prawa Inputh_1 = 0 Inputh_2 = 1 End If V_lewa = V_lewa + 0 'korygujemy lewy silnik If V_lewa > 0 Then Pwm1b = V_lewa Inputh_3 = 1 Inputh_4 = 0 Else Pwm1b = -1 * V_lewa Inputh_3 = 0 Inputh_4 = 1 End If End Sub POZDRAWIAM.
  24. Jest to robot podążający za linią, zrobiłem go na zawody w Olsztynie, które odbyły się 4 kwietnia tego roku. Mój "Psotek" zajął 2 miejsce w łącznej klasyfikacji robotów. Schemat mojego "Psotka": Szkielet robota stanowią dwa kawałki laminatu skręcone razem przez tulejki dystansowe. Cała elektronika znajduje się na górze, silniki również są przyklejone do górnej części, spód jest tylko nośnikiem dwóch akumulatorków Li-ion oraz ślizgacza wykonanego z kawałka teflonu. Wymiary: laminat 70 x 85 mm (szerokość x długość) wraz z kołami ma 101 mm szerokości całość wraz z zasilaniem waży 110 gram Do zasilania "Psotka" użyłem dwóch akumulatorków Li-ion pochodzących z jakichś odtwarzaczy mp4, według naklejki mają one 380 mAh każdy: Napęd, co tu dużo pisać, są to dwa silniki firmy ESCAP (PORTECAP) z dołożonymi przekładniami (przekładnie mają konstrukcję kanapkową przypominającą klocki lego z dwoma pinami), każdy silnik o ile się nie mylę ma 3-stopniową przekładnię (2 kanapki): Odpowiem może od razu skąd pochodzą te silniki, otóż z Wolumenu. Jest tam taki pan (tylko w niedziele), który handluje silnikami z różnych maszyn. Po okazyjnej cenie 30zł sztuka zakupiłem te cuda. Miały one więcej stopni przełożenia, ale na moją prośbę ten pan dopasował mi przekładnię do moich potrzeb. Powiem szczerze, że nie wiem z czego silniki pochodzą, wiem natomiast, że nowe są warte znacznie więcej. Mózgiem "Psotka" jest Attiny26 zasilany poprzez stabilizator 5V, silniki z racji pobieranego przez nie małego prądu (około 16mA przy 4,2V) również są zasilane poprzez tranzystory z 5V (obroty silników są sterowane przez sprzętowy PWM ). Czujniki linii to transoptory odbiciowe CNY 70, których diody IR są zasilane poprzez rezystory bezpośrednio z akumulatorków (2 połączone szeregowo). Niestety robot zostanie rozłożony, ponieważ mam tylko 2 takie silniki. W kolejnej wersji zostanie dodany 5 czujnik, według mnie jest to lepsze rozwiązanie od obecnych 4. Już po złożeniu całości zorientowałem się, że czujniki nie są symetrycznie rozmieszczone, okazało się, że przesunąłem o 2,54 mm bliżej prawej strony (patrząc z góry). Powoduje to, że robot inaczej reaguje przy skrętach w prawo a inaczej w lewo. Nie robiłem korekcji tego już w sofcie. Program pisałem w Bascomie AVR i zajęło mi to około 4 dni. Robot powstawał około tygodnia. Proszę o zadawanie pytań, z chęcią na nie odpowiem.
  25. Witam, tak jak obiecywałem przedstawiam opis mojego pierwszego robota klasy linefollower. Feniks, bo tak go nazwałem, z założenia został zbudowany do startu w II Trójmiejskim Turniej Robotów Robo3DVision oraz w Roboxy 2010. Mechanika Cała konstrukcja zbudowana jest z laminatu i metalowych dystansów do płytek. Robot ma 3 koła, dwie rolki napędowe oraz trzecie koło, które stanowi tylko punkt podporu. Całość jest duża i ciężka. Wymiary to około 21cm na 25 cm, szerokość robota była podyktowana przez długość dwóch silników napędowych. Akumulatory schowane są po podwoziem w "pudełeczku" zlutowanym z laminatu. Napęd Konstrukcja porusza się dzięki dwóm silnikom firmy Buchler Motor (1600RPM 24V 0,3A) kupionych na allegro (prawdopodobnie usuniętych z drukarek). Zasilane są one z około 21-22V Koła (rolki z drukarek): Elektronika Cała elektronika składa się z czterech płytek: • płytki odpowiadającej za zasilanie • płytki głównej z procesorem • płytki z mostkiem • płytki z 8 czujnikami linii Pierwsza płytka, czyli odpowiadająca za zasilanie, za pomocą dwóch prostych układów (po dwa tranzystory na każdy) monitoruje napięcia na dwóch pakietach typu li-pol (jeden 2S i jeden 3S), z których zasilany jest Feniks. Dodatkowo stabilizuje ona napięcie dla elektroniki (z pakietu 2S) oraz łączy szeregowo 2S i 3S w celu uzyskania napięcia potrzebnego do pracy silników. Dodatkowo na płytce znalazł się jeszcze microswitch, używany do startu. Drugą i trzecią płytkę opisywałem już w EdW 01/2010, oraz w tym temacie: https://www.forbot.pl/forum/topics45/zbieram-uwagi-na-tematej-mojej-uniwerslanej-plytki-vt1480.htm Jak widać płytka została wykonana już daaawno temu, ale dopiero teraz znalazła zastosowanie. Ostatnia płytka o wymiarach 4x10cm to płytka z 8 czujnikami KTIR, ułożenie czujników przedstawia szkic: Czujniki ustawione są bardzo nisko podłoża: Oprogramowanie: Soft był pisany w Bascomie, powstały dwie wersje kodu na case'ch i z PID'em. Filmiki: Film z testów oprogramowania (nałożenie dwóch filmów na siebie): Inne testy: Filmów z finalną wersją robota nie posiadam, postaram się o coś w weekend. Zdjęcia: • z zawodów (nie mojego autorstwa): • ogólne konstrukcji: Na Roboxy2010 robot zajął 4 miejsce. Wady konstrukcji: ciężar rozmiar słaby soft mógłby być szybszy lekko ślizgał się na płytach, z których wykonana była trasa Zalety: robot dobrze sobie radził na krętych trasach uchwyt do podnoszenia robota akumulatorki wystarczały na długie testy Wzorów płytek, schematów i kodów nie udostępniam, ale chętnie odpowiem na każde pytanie
×
×
  • Utwórz nowe...