Strona Główna
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy RegulaminRegulamin  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj




Kurs AVR-GCC

Przyszłość jest w naszych rękach...
...bo przyszłość to robotyka.




Znalezionych wyników: 169
Dioda.com.pl Strona Główna
Autor Wiadomość
  Temat: Jak przerobić serwomechanizmy do napędzania robotów?
abxyz

Odpowiedzi: 11
Wyświetleń: 4042

PostForum: Artykuły   Wysłany: 27 Kwi 07 11:55   Temat: Jak przerobić serwomechanizmy do napędzania robotów?
Ach! szkoda niszczyć sprawne serwomechanizmy; do napędu kół robota można wykorzystać silniki wydobyte ze zużytego sprzętu (magnetofony, walkmany, cdromy od PC itp.). Sprzęty te zawierają w swym wnętrzu wraz z silnikiem przekładnie, najczęściej w postaci kółek sprzężonych gumowymi paskami.
  Temat: Robot kroczący 4 nogi
abxyz

Odpowiedzi: 11
Wyświetleń: 2101

PostForum: Nasze sukcesy    Wysłany: 28 Kwi 07 12:19   Temat: Robot kroczący 4 nogi
Fajny robot, zabawny pokaz (trochę jak balet na wodzie, trochę jak bieg kurczaka z obciętą głową ), ale gdy robot kroczy, brakuje mu równowagi, wyraźnie widać jak kuleje. Może nie właściwa kolejność poruszania kończyn?

http://www.edw.com.pl/pdf/k13/51_13.pdf - w tym artykule znajduje się opis algorytmu ruchu czworonoga - może się przyda.
  Temat: Robot żółw.
abxyz

Odpowiedzi: 4
Wyświetleń: 2371

PostForum: Nasze sukcesy    Wysłany: 28 Kwi 07 11:04   Temat: Robot żółw.
Witam
Jakiś czas temu, wykonałem robocika, tzw. żółwia (Logo), służył mi on jako model do zabawy w programowanie mikrokontrolerów . Pomysł zaczerpnąłem z artykułu zamieszczonego w EdW ( http://www.edw.com.pl/pdf/k13/38_05.pdf ). Do budowy wykorzystałem tylko to co "było pod ręką", niczego specjalnie nie kupowałem z wyjątkiem miniaturowych łożysk kulkowych (1zł szt.) by koła się 'gładko' obracały.
A oto kilka zdjęć, (przepraszam za słabą jakość, użyłem kamery internetowej).
  Temat: Robot żółw.
abxyz

Odpowiedzi: 4
Wyświetleń: 2371

PostForum: Nasze sukcesy    Wysłany: 29 Kwi 07 10:59   Temat: Robot żółw.
1. Jak się porusza?

Robocik porusza się na trójkołowym wózku, dwa duże, napędzane koła z przodu i jedno małe, swobodne kółko z tylu. Koła z przodu obracają się wokół jednej osi, ale każde napędzane jest osobnym zespołem silnik i przekładnia, tylne swobodne kółko może obracać się wokół pionowej osi, tak jak kółka w sklepowym wózku. Mikrokontroler, poprzez h-mosteki, steruje oboma silniczkami, wyłącza i wyłącza, zmienia kierunek obrotów kół. Do obu napędzanych kół przymocowane zostały tarcze z wyciętymi na obwodzie prostokątnymi zębami, obracają się one wraz z kołami wokół osi. Tarcze współdziałając z transoptorami szczelinowymi, przymocowanymi do burty kadłuba robocika i obejmujące szczelinami zęby tarcz, generują sygnały wykorzystywane przez mikrokontroler do regulacji prędkości obrotów obu kół i do mierzenie długości przebytej drogi.
Dodatkowo robocik został wyposażony w dwie "czujki", do wykrywania przeszkód na drodze, wykonane z elastycznego tworzywa i współdziałają z miniaturowymi przyciskami.

2. Co on właściwie robi?

Robocik nie robi nic szczególnego, służący do zabawy i doskonalenia umiejętności programowania małych mikrokontrolerów, wykonuje kolejno zapisane w pamięci komputera komendy (coś w rodzaju: prosto 25cm, obrót w lewo 30 stopni, prosto 40cm );
potrafi:
- poruszać się po linii prostej ( zadaje się odległość do przebycia),
- poruszać się po łuku ( długość promienia i łuku ),
- obracać się w miejscu ( kąt obrotu);

3. Język programowania: asembler

4. Mikroprocesor: AT89C4051

Jak pisałem wcześniej, robocik służył jak model do zabawy w programowanie małych uC, dlatego mikroprocesor umieściłem na osobnej płytce, można ją łatwo wymienić na płytkę z innym procesorem, zrobiłem też płytki z PIC16F84A i AT90S2313.


5. Schemat
Elektronika tego robota jest tak prosta, że nie trzeba specjalnie rysować schematów (uC, dwa h-mostki, akumulatorki ) .


6. Materiały

Prawie w całości robicik został wykonany z części i materiałów pozyskanych z demontażu zużytych domowych sprzętów elektronicznych.

- kadłub robocika - wycięty fragment obudowy drukarki,
- koła napędzane i oś - części drukarki,
- małe kółko - część z walkmana,
- silniki - cdrom, walkman,
- przekładnia (kółka pasowe, paski gumowe, wałeczki i tulejki łożysk ślizgowych) - kasetowy magnetofon, walkman, cdrom,
- transoptory szczelinowe, miniaturowe przyciski - drukarka,
- tarcze enkodera - plastykowa obudowa płytki cd,
- akumulatorki - stary telefon,

Kilka większych zdjęć

http://abxyz.eu.interia.pl/a002/gora1.jpg
http://abxyz.eu.interia.pl/a002/gora2.jpg
http://abxyz.eu.interia.pl/a002/gora21.jpg
http://abxyz.eu.interia.pl/a002/gora22.jpg
http://abxyz.eu.interia.pl/a002/gora3.jpg
http://abxyz.eu.interia.pl/a002/spod.jpg
  Temat: Robot żółw.
abxyz

Odpowiedzi: 4
Wyświetleń: 2371

PostForum: Nasze sukcesy    Wysłany: 02 Maj 07 12:00   Temat: Robot żółw.
ASEM-51 http://plit.de/asem-51/home.htm
  Temat: Poruszanie się robotów.
abxyz

Odpowiedzi: 18
Wyświetleń: 1651

PostForum: Na luzie   Wysłany: 03 Maj 07 05:17   Temat: Poruszanie się robotów.
Najlepszym sposobem na przemieszczanie się z miejsca na miejsce jest 'mat zaklęcie'...
posłuchajcie tego
http://mp3.wp.pl/i/sciagnij?id=107812
  Temat: Czasopisma związane z elektroniką
abxyz

Odpowiedzi: 47
Wyświetleń: 2068

PostForum: Na luzie   Wysłany: 03 Maj 07 10:03   Temat: Czasopisma związane z elektroniką
Ja nie kupuje czasopism, trudno się zdecydować który tytuł wybrać, w każdym zawsze jest coś interesującego. Natomiast wole je pożyczać! Coś ciekawego, to rysuje schemacik w notesie bądź kseruje.
  Temat: Co się może przydać w warsztacie?
abxyz

Odpowiedzi: 20
Wyświetleń: 1102

PostForum: Warsztat   Wysłany: 05 Maj 07 04:49   Temat: Co się może przydać w warsztacie?
A młotek? Bez niego te wszystkie gadżety o których piszecie są bezużyteczne i to wcale nie jest żart.
  Temat: Co się może przydać w warsztacie?
abxyz

Odpowiedzi: 20
Wyświetleń: 1102

PostForum: Warsztat   Wysłany: 05 Maj 07 07:04   Temat: Co się może przydać w warsztacie?
Konstruktor bez młotka jest bezradny niczym wilk bez zębów, jak kucharz bez noża, jak dym bez ognia. Tak jak lew jest królem wśród zwierząt, tak młotek jest królem narzędzi.
Bez oscyloskopu można się obejść korzystając z wiedzy i doświadczenia, śrubokręt można zastąpić byle blaszką, zamiast lutować można przewody zapleść. Ale jak trza coś fest przyp..., to nic nie zastąpi porządnego młotka, żadne ciężkie żelastwo.
  Temat: Skąd wziąć przekładnie ślimakowe?
abxyz

Odpowiedzi: 18
Wyświetleń: 1678

PostForum: Napęd   Wysłany: 17 Maj 07 06:49   Temat: Skąd wziąć przekładnie ślimakowe?
A może przekładne ślimakową zastąpisz innym mechanizmem? Do czego ta przekładnia będzie użyta?
  Temat: Fajne roboty
abxyz

Odpowiedzi: 2
Wyświetleń: 511

PostForum: Warsztat   Wysłany: 02 Cze 07 12:27   Temat: Fajne roboty
Zobaczcie jaki fajny robot

  Temat: Prosty czujnik odległości
abxyz

Odpowiedzi: 5
Wyświetleń: 1081

PostForum: Czujniki   Wysłany: 17 Cze 07 08:46   Temat: Prosty czujnik odległości
patrz: http://www.dioda.com.pl/topics5/170.htm
  Temat: Robot
abxyz

Odpowiedzi: 7
Wyświetleń: 1945

PostForum: Projekty nieukończone.   Wysłany: 21 Cze 07 01:37   Temat: Robot
Widać, że prace nad robotem idą pełną parą, podwozie gotowe, jeszcze elektronika i na zawody...
  Temat: problem z mostkiem H
abxyz

Odpowiedzi: 5
Wyświetleń: 610

PostForum: Sterowanie   Wysłany: 22 Cze 07 10:24   Temat: problem z mostkiem H
Szybos, dołącz schemat tego mostka (albo link do schematu) bo właściwie nie wiadomo o czym mowa..
  Temat: problem z mostkiem H
abxyz

Odpowiedzi: 5
Wyświetleń: 610

PostForum: Sterowanie   Wysłany: 23 Cze 07 12:25   Temat: problem z mostkiem H
Szybos
Zamiast bawić się w lutowanie tranzystorów, możesz rozważyć użycie specjalnego układu scalonego, np. L293D - zawiera w sobie dwa gotowe h-mostki, jest tani, prosty do zastosowania i zajmuje niewiele miejsca na płytce.
Patrz
http://www.dioda.com.pl/topics3/145.htm
http://www.st.com/stonline/books/pdf/docs/1330.pdf
  Temat: ThinMan
abxyz

Odpowiedzi: 5
Wyświetleń: 424

PostForum: Inne   Wysłany: 28 Cze 07 03:28   Temat: ThinMan
Śledząc co piszecie na forum zauważyłem, że co najmniej kilka osób konstruuje sumobot'y i zapewne zamierzają startować w zawodach.
Ale żeby wygrywać dobrze mieć jakiś pomysł...
Przeglądają internet natrafiłem na ciekawą konstrukcję robota:
http://www.davehylands.com/Robotics/ThinMan/
Jak sądzicie, czy taki 'super" niski robot był by trudnym przeciwnikiem?
  Temat: ThinMan
abxyz

Odpowiedzi: 5
Wyświetleń: 424

PostForum: Inne   Wysłany: 28 Cze 07 07:25   Temat: ThinMan
pawel napisał/a:
Na zdjęciach widać, że na kołach niema żadnej gumy, więc przyczepność jest zapewne zerowa.


Z opisu można dowiedzieć się, że robot posiada mosiężne koła z poliuretanowym płaszczem na obwodzie dla dobrej przyczepności.
  Temat: Problem z programem
abxyz

Odpowiedzi: 15
Wyświetleń: 991

PostForum: Mikrokontrolery   Wysłany: 05 Lip 07 09:49   Temat: Problem z programem
Rozumiem, że program w ogóle działa, ale nie takiego zachowania oczekiwałeś;
napisz precyzyjnie ( bardzo precyzyjnie !), co twój program powinien robić.
  Temat: Problem z programem
abxyz

Odpowiedzi: 15
Wyświetleń: 991

PostForum: Mikrokontrolery   Wysłany: 06 Lip 07 10:53   Temat: Problem z programem
Jeśli funkcja 'klawiatura' ma po prostu odczytać stan wyprowadzenia PD2 uC, to bym ją przerobił tak :
Kod:

/* Stan linii PD2 należy odczytać z rejestru PIND, nie z DDRD */
#define klawiszI PIND   

unsigned char klawiatura(void)
{
   unsigned char zwrot=0;

    /* Linia PD2 pracuje jako wejście "podciągnięte do jedynki" */
   cbi(klawiszD,pin);
   sbi(klawiszP,pin); 

        /* Odczyt stanu linii PD2 */
   if(bit_is_clear(klawiszI ,pin))
   {
      zwrot=zwrot+1;
   }
   return zwrot;
}
  Temat: Problem z programem
abxyz

Odpowiedzi: 15
Wyświetleń: 991

PostForum: Mikrokontrolery   Wysłany: 06 Lip 07 07:26   Temat: Problem z programem
Mała ściąga

zmienna |= _BV(numer_bitu); ustawienie bitu
zmienna &= ~_BV(numer_bitu); zgaszenie bitu
zmienna ^= _BV(numer_bitu); przełączenie bitu

No i przerobiony programik :

Kod:
#include <avr/io.h>
#define F_CPU        1000000                                     
#define klawiszD DDRD
#define klawiszP PORTD
#define klawiszI PIND   
#define pin PD2

/* #define LED_ON sbi(DDRB,PB1);sbi(PORTB,PB1) */
#define LED_ON    DDRB|=_BV(PB1);PORTB|=_BV(PB1); 

unsigned char klawiatura(void)
{
   unsigned char zwrot=0;

   /* Linia PD2 pracuje jako wejście "podciągnięte do jedynki" */

   /*  cbi(klawiszD,pin); */
   klawiszD &= ~_BV(pin);
   /* sbi(klawiszP,pin);*/ 
   klawiszP |= _BV(pin);   

   /* Odczyt stanu linii PD2 */
   if(bit_is_clear(klawiszI ,pin))
   {
      zwrot=zwrot+1;
   }
   return zwrot;
}
/* Dalej bez zmian */


Używam avr-gcc v4.0.2, więc WinAVR 2007 też powinien powyższy programik “łyknąć”.
  Temat: Problem z programem
abxyz

Odpowiedzi: 15
Wyświetleń: 991

PostForum: Mikrokontrolery   Wysłany: 07 Lip 07 10:47   Temat: Problem z programem
Kod:
/* Czy na PD2 jest stan wysoki */
if( bit_is_set(klawiszI,pin) )
/* lub tak */ 
if( klawiszI & _BV(pin) )

Dalszej części pytania nie rozumiem, może użyjesz konkretnego przykładu
  Temat: Problem z programem
abxyz

Odpowiedzi: 15
Wyświetleń: 991

PostForum: Mikrokontrolery   Wysłany: 08 Lip 07 04:39   Temat: Problem z programem
Turboasm napisał/a:
chodzi o to czy na mikroprocesor mogę na np. PC4 podać + czy nie ??

Oczywiście,że można na porty we/wy AVRa podawać napięcie odpowiadające niskiemu lub wysokiemu stanowi sygnału cyfrowego, ale tylko, gdy dana linia portu pracuje jako wejście, w przeciwnym razie można uszkodzić port.
Żeby skonfigurować którąś linię portu jako wejście, należy wyzerować odpowiadający tej linii bit w rejestrze DDRx (gdzie x to A,B,C,D); gdy bit jest ustawiony (ma wartość 1), linia portu pracuje jako wyjście. Po starcie uC AVR wszystkie linie portów we/we są skonfigurowane jako wejścia.
Następnie można sprawdzić stan na wyprowadzeniu uC badając wartość odpowiedniego bitu w rejestrze PINx.
Przykład:
Kod:
/* Zeruje bit nr. 4 rejestru DDRC- linia PC4 ma pracować jako wejście*/
DDRC &= ~ _BV(PC4);
/* Odczyt wartość bitu nr.4 w rejestrze PINC */
/* Czy na PC4 jest stan wysoki? /
if( bit_is_set(PINC,PC4) )
/* Czy na PC4 jest stan niski? /
if( bis_is_clear(sfr,bit) )

Dodatkowo, jeśli port pracuje jako wejście i odpowiedni bit w rejestrze PORTx ustawi się na wartość 1, to linia ta będzie wewnętrznie "podciągnięta" przez rezystor do zasilania (ang. with internal pull-up resistors).
Tak jest w twoim programiku; do PD2 przyłączony został przycisk zwierający wyprowadzenie do masy. Gdy przycisk jest zwolniony, to na wejściu jest stan wysoki mimo, że przycisk nie podaje napięcia odpowiadającego wysokiemu stanowi sygnału; natomiast po wciśnięciu przycisku, wyprowadzenie PD2 zostaje zwarte do masy i na wejściu odczytuje się 0.
Kod:
DDRD &= ~ _BV(PD2); /* Zeruje bit nr 2 rejestru DDRD,  linia PD2 będzie wejściem */
PORTD |= _BV(PD2);  /* Ustawia  bit nr.2 rejestru PORTD, wyprowadzenie PD2 będzie wewnętrznie podciągnięte przez rezystor do zasilania */

Turboasm napisał/a:
Jak zrobić aby dana instrukcja była wykonywana przez jakiś czas np. sbi(DDRB,PB1) przez 10s ??

Jeśli, na przykład, chcesz, żeby dioda przyłączona do PB1 zapaliła się i świeciła przez 10s, po czym na powrót zgasła, można to zrobić tak: zapalasz diodę, czekasz 10 sek., gasisz diodę - czy o to Ci chodziło ? Jeśli tak, to program poniżej dokładnie to robi.
Kod:

#define F_CPU  1000000L              /* Częstotliwość kwarcu */
#include <avr/io.h>
#include <util/delay.h>              /* Żeby można było korzystać z funkcji  '_delay_ms'  */

int main(void)
{
   int i; /* zmienna przyda się w pętli 'for' */

   /* Ustawia bin nr. 1 rejestru DDRB, linia PB1 będzie wyjściem */
   DDRB  |= _BV(PB1);
 
   /* Ustawia  bit nr.1 rejestru PORTB, na wyprowadzeniu PB1 pojawi się stan wysoki  */
   PORTB |= _BV(PB1);

   /* Wykonanie tego fragmentu zajmie uC 10s */
   for (i = 0; i < 10*100; i++)
                _delay_ms(10);      /* Każdym razem wykonanie funkcji  "_delay_ms" zajmie uC  10ms */

   /* Kasuje bit nr.1 rejestru PORTB, na wyprowadzeniu PB1 pojawi się stan niski */
   PORTB &= ~_BV(PB1);
 
   while(1){};  /*  Nieskończona pętla "uwięzi" program w tym miejscu */

   return 0;
}

Turboasm napisał/a:
Co zrobić aby w/w programie dioda świeciła tylko gdy przycisk będzie trzymany, jak puszcze to gaśnie ??

Przerób funkcję 'zaswiec()' w ten sposób:
Kod:

#define LED_OFF    DDRB|=_BV(PB1);PORTB&=~_BV(PB1); 

void zaswiec(void)
{
    if(klawiatura()==1)
    {
       LED_ON;
    }
    else
    {
       LED_OFF;
    }
}

Turboasm napisał/a:
Gdzie mogę znaleźć programy dla uC w C wraz z opisami ??
  Temat: Płytka stykowa - Czy warto ??
abxyz

Odpowiedzi: 18
Wyświetleń: 802

PostForum: Warsztat   Wysłany: 09 Lip 07 11:29   Temat: Płytka stykowa - Czy warto ??
Może warto.., lecz ja wolę zwykłe płytki uniwersalne
  Temat: Dwa banery obok siebie - ankieta
abxyz

Odpowiedzi: 23
Wyświetleń: 673

PostForum: O wortalu   Wysłany: 10 Lip 07 08:55   Temat: Dwa banery obok siebie - ankieta
Można by też, zamiast obok siebie, umieścić dwa lub więcej bannerów jeden pod drugim. Żeby zrobić więcej miejsca w pionie, można by usunąć z okienka "Ogłoszenie" slogan "Przyszłość jest w naszych rękach... " lub przenieś go w inne miejsce, np. wpisać w dolnej części obrazka: http://www.dioda.com.pl/t.../logo_phpBB.gif
  Temat: serwo-programowanie
abxyz

Odpowiedzi: 10
Wyświetleń: 1306

PostForum: Mikrokontrolery   Wysłany: 18 Lip 07 12:53   Temat: serwo-programowanie
Na tej stronie jest przykład wraz z opisem
http://winavr.scienceprog...-using-avr.html

więcej szczegółów znajdziesz po adresem
http://mil.ufl.edu/~achamber/servoPWMfaq.html
  Temat: Robot ZEW 1
abxyz

Odpowiedzi: 14
Wyświetleń: 2371

PostForum: Nasze sukcesy    Wysłany: 18 Lip 07 10:23   Temat: Robot ZEW 1
O kurczę, Prawdziwy robot !

Czy potrafi przenosić przedmioty ?
  Temat: JTAG dla procesora AVR
abxyz

Odpowiedzi: 3
Wyświetleń: 631

PostForum: Mikrokontrolery   Wysłany: 18 Lip 07 11:02   Temat: JTAG dla procesora AVR
W artykule opisano jak zbudować interfejs JTAG dla procesora AVR, jest też gotowy do wydruku wzór płytki.
http://liku.sdfpau.org/artykuly.php?a=avrjtag


//Decado
Dla tych, którzy nie wiedzą co to JTAG - wikipedia
  Temat: Programator z "kilku rezystorów i kabelków"
abxyz

Odpowiedzi: 3
Wyświetleń: 772

PostForum: Programowanie   Wysłany: 19 Lip 07 09:19   Temat: Programator z "kilku rezystorów i kabelków"
Oprócz sprzętu ( w tym przypadku kabelka i rezystorów ) potrzebny jest też odpowiedni program, który odpalasz na swoim PC (w pakiecie WinAVR są to programy: uisp lub avrdude). Program taki powinien umieć współpracować z konkretnym typem programatora. Więc najlepiej jest zrobić kabelek zgodny z popularnym programatorem STK200, wtedy będzie działać z każdym programem. Dołączam schemat kabla, rysunek pochodzi ze strony http://elm-chan.org/works/avrx/stk200.png
Zanim podłączysz coś do swojego PC, sprawdź poprawność połączeń. Jeśli nie jesteś pewien swoich umiejętności, kup gotowy programator
  Temat: Programator ISP AVR ze złączem USB
abxyz

Odpowiedzi: 0
Wyświetleń: 634

PostForum: Mikrokontrolery   Wysłany: 24 Lip 07 10:59   Temat: Programator ISP AVR ze złączem USB
Projekt programatora ISP AVR ze złączem USB
http://www.fischl.de/usbasp/
  Temat: Linux, avr, kwarc, zewnętrzna pamięć
abxyz

Odpowiedzi: 11
Wyświetleń: 886

PostForum: Mikrokontrolery   Wysłany: 30 Lip 07 12:30   Temat: Re: Linux, avr, kwarc, zewnętrzna pamięć
Turboasm napisał/a:
Co muszę zainstalowac aby móc kompilować programy dla avr pod linuksem ??

W internecie jest wiele na ten temat, np:
http://paul.graysonfamily.org/thoughts/avrlinux/
Turboasm napisał/a:
co do pytania 3 to chodziło mi o to czy coś jeszcze oprócz tego zapisu potrzeba żeby kożystać z dołączonego kwarcu ( z jego częstotliwości )

Trzeba przeprogramować (z poziomu programatora) odpowiednie tzw. fuse bity (patrz dokumentacja uC) , nowe Atmega i Attiny pracują z wewnętrznym oscylatorem o częstotliwości 1MHz.
 
Strona 1 z 6
Skocz do:  


website uptime

Powered by phpBB modified by Przemo © 2003 phpBB Group
REKLAMAPorównywarka cen elektronikiLove and Lighttaniec z gwiazdamitaniec nowoczesny Warszawakredyt przez internetneroBearShare