Denge Robotu Başlangıç - 2

Başlatan Firzen, 01 Ekim 2015, 14:55:31

tunayk

Dikkatli inceleyince daha iyi görünüyor.  Yukarıdaki büyük disk sağa sola yatmayı dengelemek için kullanılıyor. Zaten çok az hareket ediyor ve harketsizken de dönüş oluyor.  Yere yatay dönen küçük diski çeviren motorun ataleti, robotu yere temas ekseninde dönmeye zorluyor.  Zaten bu motora ilk hareket verdiği anda dönüyor. Dönmeye motor başladığında robotun dönüşü de durmuş oluyor

z

#16
Alıntı yapılan: fatih6761 - 04 Ekim 2015, 14:12:30
Hocam tam tersi olması gerekmez mi? Bana sanki büyük çark sağa-sola yatmayı dengeleme(dik duruş), küçük çark tek teker üstünde robotu sola sağa döndürme işini yapıyor gibi geldi.

Jirasyon ekseni yere tam dik doğrultuda iken artık robotu bu doğrultudan uzaklaştırmak zorlaşır. Bu robotun dik durması anlamına gelir. Küçük diskli motor dönerken robotu sağa sola ileri geri eğemezsin fakat robotu kendi ekseni etrafında kolayca çevirebilirsin.

Ben mi yanılıyorum? (Sanırım yanılıyoruz. Her iki motorun bileşkesi yönü belirliyor)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

CaFFeiNe

#17
benim gördüğüm üç tane motor var
1.motor ileri geri dengeyi ve gitmeyi sağlayan motor (altta)
2.motor sağa sola dengeyi sağlayan motor (üstteki büyük çark)
3.motor sağa sola yön değiştirmeyi sağlayan motor (ortada, dönüşündeki ani yavaşlama/hızlanma sağa sola dönmeyi gerçekleştiriyor)

ben böyle gözlemledim

fatih6761

Alıntı yapılan: z - 04 Ekim 2015, 14:43:14
Jirasyon ekseni yere tam dik doğrultuda iken artık robotu bu doğrultudan uzaklaştırmak zorlaşır. Bu robotun dik durması anlamına gelir. Küçük diskli motor dönerken robotu sağa sola ileri geri eğemezsin fakat robotu kendi ekseni etrafında kolayca çevirebilirsin.

Ben mi yanılıyorum? (Sanırım yanılıyoruz. Her iki motorun bileşkesi yönü belirliyor)
@z hocam söylediğiniz gibi jiroskop etkisi + ivmelenmenin bileşke etkisiyle  robot dengede tutuluyor ama sanırım robotu yapan kişi sağ-sol dengesini çoğunlukla büyük çarkla kontrol edip küçük diski hafif tutarak(plastik + diğeri gibi ağırlık yok) yüksek açısal ivme değerlerine ulaşıp robotu kendi ekseni etrafında döndürme işleminde kullanmış. @CaFFeiNe hocamın da belirttiği gibi tekeri döndüren motor ilerleme+ileri geri dengeyi sağlamak için onda süphe yok.

Bu tahminime göre robot yatık pozisyondayken (dikey eksene 10-20 derece gibi) durgun halden çalışır hale geçirilseydi en üstteki büyük çark kısa bir süre hızlı bir şekilde dönecek robot denge konumuna ulaşınca mevcut hızdan dolayı hareketine devam etmek isteyecek, bu sefer çark zıt yönde daha az dönerek robotu dengede tutacaktır.
Not: Hocam küçük çarkta jiroskop etkisini kullanmanın amaçlanmadığını robot düz ilerlerken küçük çarkın dönmemesinden anladım.

Karamel

youtube da az once soyle https://www.youtube.com/watch?v=jM9llwGSSdI birsey kesfettim. suan gercekten saskinlik icersindeyim  ::)

MC_Skywalker


Firzen

#21
Robotun son hali hakkında biraz bilgi vereyim dedim. Uzun zaman aradan sonra (Sınavlar Yüksek Lisans vs...) kaldığım yerden devam ediyorum. Öncellikle kodumu mikroC ile yazıyorum dsPIC veya 18F serisi kullanacağım.
Yazdığım kod aşağıda bir göndereyim dedim. Kodda sıkıntı var sanırım çünkü MPU6050den değerleri okuyamıyorum acaba I2C değerlerim mi yanlış başka bir sorun mu var?

#define MPU6050_W                              0x68
#define MPU6050_R                               0x69
#define MPU6050_RA_WHO_AM_I         0x75

char outs[7];
unsigned int rdata =0 ;
char uart_rd;

unsigned int I2C_read(unsigned short reg){
   I2C1_Start();
   I2C1_Wr(MPU6050_W);
   I2C1_Wr(reg);
   I2C1_Start();
   I2C1_Wr(MPU6050_R);
   rdata=I2C1_Rd(0);
   I2C1_Stop();
   return rdata;}

void main(){
     unsigned int out;
     char p ;
     UART1_Init(9600);
     Delay_ms(50);
     UART1_Write_Text("Bismillah");
     I2C1_Init(400000);
     Delay_ms(100);

     I2C1_Start();
     I2C1_Wr(MPU6050_W);
     I2C1_Wr(0x6B);
     I2C1_Wr(0x02);
     I2C1_Stop();

     I2C1_Start();
     I2C1_Wr(MPU6050_W);
     I2C1_Wr(0x6C);
     I2C1_Wr(0x00);
     I2C1_Stop();

     I2C1_Start();
     I2C1_Wr(MPU6050_W);
     I2C1_Wr(0x1C);
     I2C1_Wr(0x00);
     I2C1_Stop();


     while(1){
              out=0;
              out = I2C_read(0x75);
              IntToStr(out,outs);
              UART1_Write(outs);
              Delay_ms(200);}}


I2C'den değerleri net okuduktan sonra Libstocktan aldığım PID kütüphanesi ile motora set point yapmayı düşünüyorum. Tabi Bunun içinde motor sürücü lazım. Bu konuda normalde polulu düşünüyordum ama çok hafif olmasını istediğim için L293DD SMD kullanacağım. Aslında tüm malzemeleri SMD kullanacağım. Uzaktan kontrol konusunda LabVIEW-PS4Controller-LINX yapacağım. Bu kısımda deneme yaptım gayet güzel bir bağlantı sağlıyor XBEE ile.
Kararsız...

Cemre.

Hocam libstock'ta imu click için olan örneğe hızlıca bir bakın. Orada modülle ilk iletişim için gereken wake-up rutini (registarlardan birinin bir bitini önce 1 sonra 0 falan yapıyorduk) vs vardı. Ben de oradan hızlıca halletmiştim sorunumu. Bir de GY521 3.3V ile haberleşiyor, haberiniz olsun. Kullandığınız işlemci 5V ile çalışacaksa gerilim bölücü dirençle modülün RX'ine giriş yapabilirsiniz.

Kolay gelsin, iyi akşamlar.

Firzen

Alıntı yapılan: Cemre. - 12 Nisan 2016, 23:27:47
Hocam libstock'ta imu click için olan örneğe hızlıca bir bakın. Orada modülle ilk iletişim için gereken wake-up rutini (registarlardan birinin bir bitini önce 1 sonra 0 falan yapıyorduk) vs vardı. Ben de oradan hızlıca halletmiştim sorunumu. Bir de GY521 3.3V ile haberleşiyor, haberiniz olsun. Kullandığınız işlemci 5V ile çalışacaksa gerilim bölücü dirençle modülün RX'ine giriş yapabilirsiniz.

Kolay gelsin, iyi akşamlar.
Teşekkür ederim IMU Click için yapılmış örneği inceleyeyim hemen.
Ben 5V ile denedim umarım çipi yakmamışımdır.

Resmini yüklediğim PIC Ready ve PICProg kullanıyorum bunda dahili 3.3v ve regüle ayarlı beya kullanışlı kart aslında. Bu sistemde denemeleri yapıp ardından direk SMD devreye geçeceğim.
Kararsız...

Cemre.

Ben de ilk denemelerimi 5V ile yapmıştım, yanmıyor. RX demişim kusura bakmayın karıştırmışım, I2C için Bi-Directional (Çift Yönlü) Logic Level Converter isimli hazır modüller var, ya da transistörle kurulabilecek basit bir devreyi daha önce paylaşmıştım, onlar işe yarıyor. Ama benim tavsiyem sorun yaşamak istemiyorsanız 3.3V ile çalışın. Çünkü ben denemelerimde bayağı bir zorlanmıştım sürekli iletişim kopmaları donmalar vs yaşıyordum, Discovery kit'e geçtim kurtuldum. Çalışmayı ben de merakla bekliyorum.

Kolay gelsin, iyi günler.

Firzen

Devrenin çizime altiumda başladım. Şimdilik Daha Hızlı sonuç elde etmek için ad üzerinden ivme sensörü verisi okuyacak ve testlere başlayacağım. Tabi birde MPU6050 var daha bir türlü çalıştırabilmiş değilim.
3. Boyutlu resmini attım size XBEE modulü falan 3. boyuttada çizdim tam olarak nasıl göründüğü belli olsun diye.

Kararsız...

sezgin05


Firzen

Devremin Son Hali :





Bu hafta müsait olduğum an basmayı planşlıyorum. Bir hata falan varsa veya öneriniz varsa beklerim.


Kararsız...

Firzen

Bugün Devre Kartımı bastım sonunda çizimleri ve 3 boyut görüntüyü daha önce atmıştım. Şimdide gerçeklemesini yaptım.










Umarım beğenirsiniz yorumlara açığım :)


Kararsız...

mustan79

selam robotun hakkında son durum nedir acaba. 
merak ettim :D