Çizgi izleyen sanal robot yarışması başladı.

Başlatan z, 11 Ekim 2015, 02:55:17

ByTEK

#15
hocam kod aynı kod değiştirmedim.

http://dosya.co/lw08khp79cfc/robot_dll_uyuygulama.rar.html


buyrun birde siz deneyin hocam.

boreas

{$mode objfpc}{$H+}

{$IFDEF WINDOWS}{$R MyAlgo.rc}{$ENDIF}

satırlarını silersen derleyecektir.

ByTEK

Alıntı yapılan: boreas - 11 Ekim 2015, 20:48:59
{$mode objfpc}{$H+}

{$IFDEF WINDOWS}{$R MyAlgo.rc}{$ENDIF}

satırlarını silersen derleyecektir.

lazarusa yeni başladım sayılır. teşekkür ederim.

boreas


ByTEK

Alıntı yapılan: boreas - 11 Ekim 2015, 20:52:02
Lazarus candır :)

bazı uygulamalar geliştirmiştim. güzel birşey. alışınca rahat oluyor.

z

@SercanTEK

Dosyada  Artemis!CD35524AD8AE  diye bir virüs var.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

#21
Alıntı yapılan: z - 11 Ekim 2015, 21:00:59
@SercanTEK

Dosyada  Artemis!CD35524AD8AE  diye bir virüs var.

eset nod32 kullanıyorum birşey söylemedi ? yüklediğim yerde sıkıntı olabilir mi ?

https://www.virustotal.com/tr/file/23a75417477b07d5a1046c542a99e7b2b0a7c5cb5d425b65fdeeff2d15c468e2/analysis/1444586710/

engerex

Alıntı yapılan: z - 11 Ekim 2015, 21:00:59
@SercanTEK

Dosyada  Artemis!CD35524AD8AE  diye bir virüs var.
RAR dosyasında mı virüs var?

z

Simülatörün döngüsü aşağıda.

VL sol motora uygulanan voltaj (Pwm)
VR sağ motora uygulanan voltaj (Pwm)

Motor(); Elektrik motorlarını, robot mekaniğini ve sensörleri simüle eden fonksiyon
Algo();   Sizin yazdığınız kontrol algoritması
Grafik(); Robotun  konumu ekrana çizen fonksiyon

       VL:=0; VR:=0; T:=0; n:=0; Bitir:=False; Faul:=False;
Dongu:
       Motor(); n:=n+1;                // Robotun fizik motorunu isletelim
       Algo(Addr(Sensor));             // Sizin kontrol algoritmaniz
       Grafik();                       // Robotun ekrandaki pozisyonu degistir

       VL:=Sensor[16];
       VR:=Sensor[17];

       if Bitir then Goto Bitti;       // Sensorlerden herhangi birisi Kirmisi bolgeyi yakalarsa yaris tamamlanir
       if Faul then  Goto Kaybettiniz; // Sensorlerden herhangi birisi Yesil bolgeyi yakalarsa yarisi kaybedersiniz

       Dongu_.Caption:='Dongu '+IntToStr(T);

       if n=10 then begin n:=0; Application.ProcessMessages; end;
       if Cik then exit;
       goto Dongu;
Bitti:



Evet RAR dosyasını indiriyorum virüs tarayıcı uyarıyı veriyor. Daha içine bile bakamadım.

Simülatöre 3 özellik daha ekledim.

Kaygan zemin  Robot sensörleri gri lekeli alanları sens ederse belli bir mantıkla tekerleri kaydırıyor ve robot savruluyor.

Gitmesi zor zemin Robot sensörleri kahverengi alanları sens ederse belli bir mantıkla tekerler yavaşlıyor ve robot savruluyor.

Yasak Zemin Robot sensörleri yeşil alanları sens ederse yarışı kaybediyorsunuz.

Sensörlerin sol yanı ve sağ yanı pistin kaygan vs kısmını algıladığında sistem buna ilk tepkiyi veriyor. Kontrol algoritmanız buna tepki veremez.

Algoritmamız neden tepki veremez?

Sensor sinyalleri bize 1 yada 0 olarak geliyor.

Siyah zemin 1 üretirken diğer tüm renkler 0 üretiyor. Dolayısı ile zemin kayganlığı ile bilgiye hiç birimiz sahip değiliz.

Aşağıdaki pistte kahverengi alan henüz yok.



Simülatörün son halini yüklemedim.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

engerex

 Sanırım sponsor download linklerine tıklıyorsunuz. Çünkü dosyada sadece sizin robot.exe var. Diğerleri kod dosyaları. Gerçek link en aşağıda ufacık.

ByTEK

#25


yazılım hatası var ? program çalışırken başla butonuna basınca döngü değeri sıfırlanıyor. böylece çok küçük çıkabiliyor.

z

Retüşlerle düzeliyor o hatalar.

Bu arada robot çok yavaş vs demeyin. Farklı yarışlar için farklı robot parametreleri yükleniyor.

Öyle zor robotlar varki. Gaza basınca hemen hızlanmayan frene basınca hemen durmayan yada gaza basınca fırlayıp giden...

Şu anda orta karar bir robotla karşı karşıyayız.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ByTEK

Motor voltaji -127 ... + 127 araligindadir.

demişsiniz. sanki 0 ile 127 arasında gibi geldi bana?

z

Haklısın.

DLL fonksiyon başlığını şu şekilde yapmamız gerekiyor. function Algo(P: PIntegerArray):boolean; Stdcall;

Simülatörde de düzeltiyorum.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ozanselte

Diğer diller için örnek kod ya da simülatörün linux sürümü paylaşılacak mı?