Tasarımı gayet güzel bir sumo robot tasarımı ve kontrol devresi pic 16f876 üzerine kurulu motor sürücü lm293d çisim algılama için sharp gp2d12 sensörler kullanılmış donanım ve yazılım hakkında detaylı (ingilizce) bilgiler ek dosyalarda verilmiş (.doc) tüm kaynak CCS C yazılımları bulunuyor. Suma robot gövdesi çok iyi tasarlanmış oldukca güçlü görünüyor çeşitli robot projeleri için feyz alınacak bir gövde tasarımı olmuş
Mini Sumo Robotu
Sumo güreşi, Japonya’da ortaya çıkan bir spordur ve tipik olarak, dairesel bir halka alanından birbirlerini itmeye çalışan çok iri iki adamı içerir. Sumo güreşinin robotik versiyonu, birbirini dairesel bir halkadan dışarı itmeye çalışan iki otonom robotu içerir. Robotik sumo güreşi, büyük bir yarışmada binlerce robot ve on binlerce seyirci ile Japonya’da çok popüler.
Sumo Robotunun beyni, C’de programlanmış bir Microchip PIC 16F876’dır. FLASH bellek, bir önyükleyici kullanılarak yazılır ve önyükleyici, orijinal olarak bir Warp-13a programlayıcı kullanılarak FLASH belleğe yazılır. Önyükleyici, bir Dallas DS-275 seri arabirim yongası (seri kablo üzerinde) aracılığıyla Windows XP çalıştıran bir PC ile iletişim kurmak için çipin sağladığı UART donanımını kullanır. Geliştirme ortamı, “Crimson Editor” (http://www.crimsoneditor.com) adlı ücretsiz bir metin düzenleyicidir ve CCS C (http://www.ccsinfo.com) komut satırı derleyicisi kullanılır. C derleyicisi tarafından üretilen HEX makine kodu, HyperTerminal kullanılarak önyükleyiciye indirilir.
Kullanılan PIC’in Donanım Özellikleri
16F876’nın donanım özelliklerinden birkaçı kullanılır:
• Herhangi bir işlemci süresi kullanmadan iki motorun hızı üzerinde hassas kontrol sağlamak için iki kanallı donanım darbe genişlik modülasyonu (PWM) kullanılır.
• Dört adet analogdan dijitale dönüştürücü (ADC), iki telemetre ve iki kenar detektör sensörüne arayüz oluşturmak için kullanılır.
• Çeşitli zamanlama işlevleri için kullanılan 32 bitlik bir tamsayı milisaniye sayacını artırmak için bir adet 16 bitlik donanım zamanlayıcısı (Timer1) kullanılır.
• Gelecekte, Seeker II’ye yakın mesafeli bir IR sensörü eklenecek ve gereken 38 kHz darbe, 8 bitlik bir donanım zamanlayıcısı olan Timer0 tarafından yönlendirilecektir.
• Donanım UART’ı, hem PIC’yi önyükleyiciyi kullanarak programlamak hem de motorları ve sensörleri test edip kalibre etmeme izin veren menü odaklı bir hata ayıklama sistemini çalıştırmak için kullanılıyor.
• EEPROM verileri, durum geçişlerini göstermek için basit bir günlük olarak kullanılır – robot durum değiştirdikçe mevcut durum saklanır. Robot garip davranışlar sergilerse, hangi durum geçişlerinin davranışa yol açtığını görebilirim, bu da hata ayıklamada çok yardımcı olabilir. Hata ayıklama menüsü, EEPROM verilerini görüntülemek ve silmek için işlevler sağlar.
Arayıcı II’deki elektroniklerin geri kalanı çok basittir – MCLR hattında 5K çekme direnci, PIC’de toprak ile güç arasında 0,1 uf ayırma kapasitörü, 20 MHz kristal ve bir çift 18 pf kapasitör kristal. Motorlar, temel olarak popüler National LM293D h-bridge’in bir amperlik versiyonu olan Texas Instruments SN754410 dörtlü yarım h sürücü çipi kullanılarak değiştirilir. Elektroniğe giden güç, nikel-metal-hidrit (NiMh) 9 voltluk bir pille sağlanır ve Ulusal LM2940 5 voltluk düşük bırakma regülatörü ile değiştirilir. Veri sayfasında önerildiği gibi voltaj regülatörüne iki kondansatör bağlanmıştır (0,47 uf ve 22 uf). Motorlara güç, ikinci bir NiMh 9 voltluk pilden sağlanır. Her pil, kasanın altından erişilen bir çift sürgülü anahtar kullanılarak ayrı ayrı değiştirilir.
Sensörler için, robotun iki telemetre ve iki kenar dedektörü vardır. Telemetreler, Sharp GP2D12 analog mesafe sensörleridir. Ucuz, müdahalesi basit ortamın aydınlatma koşullarından etkilenmeden çok doğru sonuçlar verir. Kenar dedektörleri, Fairchild QRD-1114 IR sensörleridir. Ayrıca çoğu ortam ışığı girişimini filtrelerler ve genel olarak son derece iyi çalışırlar.
Yazılım
PIC 16F876 çok güçlü bir mikro denetleyicidir. Yukarıda belirtilen donanım özelliklerine ek olarak, Seeker II’nin yazılımı oldukça gelişmiştir. Ana kontrol döngüsü, resmileştirilmiş bir sonlu durum makinesi (FSM) olarak uygulanır. Bir FSM kullanmak, herhangi bir karmaşık kontrol yazılımı parçasında miras kalan kod yönetimi sorunlarını kolaylaştırır. Şu anda uygulanmakta olan durumlar aşağıdaki gibidir:
• WAITING_FOR_BUTTON – bu, açıldıktan sonra robotun ilk durumudur. Temel olarak başlat düğmesine basılıp basılmadığını kontrol eder ve basılıysa mevcut durum DURAKLAT olarak değiştirilir.
• PAUSE – Bu durum, mini sumo kurallarında bir gereklilik olan 5 saniyelik bir duraklama uygular.
• START_LOOKING – Bu, robotun diğer robotu aramaya başladığı ilk hareket durumudur. Mevcut durum hemen BAKIYOR olarak ayarlanır.
• BAKIYOR – Bu, ana arama durumudur. Robot telemetre sensörlerini kontrol eder ve herhangi birinde bir şey gördüğünde PUSHING_OBSTACLE’a geçer. Halkanın kenarını algılarsa START_BACKOFF konumuna geçer.
• PUSHING_OBSTACLE – Bu, robotun rakibi görüş alanına aldığı ve homing yapıp ittiği yerdir. Yalnızca bir telemetre sensörü rakibi görebilirse, karşılık gelen (sol veya sağ) motor, robotu rakibe doğru döndürmek için hafifçe yavaşlatılır).
• START_BACKOFF – Burada robot bir kenar algıladı ve durdu. Gecikme olmamasını sağlamak ve kenardan çıkmayı önlemek için durma davranışı, ana döngüdeki sensör aramasının bir parçası olarak uygulanır. Bu durum, robotu düz bir çizgide geri gidecek şekilde ayarlar.
• BACKOFF – Bu durumda robot ¾ saniye geri gider ve ardından durur ve START_LOOKING_AFTER_BACKOFF konumuna geçer
• START_LOOKING_AFTER_BACKOFF – Burada robot kenardan geri geri gittikten sonra tekrar ileri hareket etmeye başlıyor. Robot, yarım saniye boyunca keskin bir dönüş yapar ve ardından normal START_LOOKING durumuna geri döner.
Sumo wrestling is a sport that originated in Japan, and typically involves two very large men trying to push each other out of a circular ring area. The robotic version of sumo wrestling involves two autonomous robots that try to push each other out a circular ring. Robotic sumo wrestling is very popular in Japan, with thousands of robots and tens of thousands of spectators at a large competition.
Several of the hardware features of the 16F876 are used, including:
Two channel hardware pulse width modulation (PWM) is used to provide precise control over the speed of the two motors, without using up any processor time.
Four analog to digital converters (ADC) are used to interface to two range-finder and two edge-detector sensors.
One 16 bit hardware timer (Timer1) is used to increment a 32 bit integer millisecond counter, used for various timing functions.
In the future, a close-range IR sensor will be added to Seeker II, and the 38 kHz pulse required will be driven by Timer0, an 8-bit hardware timer.
The hardware UART is used both to program the PIC using the bootloader, and also to run a menu-driven debug system that allows me to test and calibrate the motors and sensors.
The data EEPROM is used as a simple log to show state transitions – as the robot changes state, the current state is stored. If the robot exhibits strange behavior, I can see what state transitions led up to the behavior, which can be a great aid in debugging. The debug menu provides functions to display and erase the data EEPROM.
Kaynak: circuitcellar.com/flash2002/Honorable/298-Abstract.htm (kapalı)
Sumo robot proje detayları ve dosyalar :
Şifre-Pass: 320volt.com
Yayım tarihi: 2009/06/15 Etiketler: ccs c robot, gp2d12 ccsc, lm293d robot motor, microchip pic projeleri, PIC16F876 örnekleri, pic16f876 robot, sn754410, suma robot gövde, sumo robot, sumo robot projesi
Abi gene işe yaradın 🙂 bizim arkadaş bu projeyi yazdırdı 🙂