Işığa yanıt veren bir mikro denetleyici üzerindeki mobil robot. Robotunuzu oluşturmak için bir mikrodenetleyici seçme. gelecek vaat eden robot bilimci için kaynaklar

Elbette robotlarla ilgili yeterince film izledikten sonra çoğu zaman savaşta kendi yoldaşınızı yaratmak istediniz ama nereden başlayacağınızı bilmiyordunuz. Elbette iki ayaklı bir Terminatör yapamazsınız ama bizim başarmaya çalıştığımız şey bu değil. Havyayı elinde doğru tutmayı bilen herkes basit bir robot kurabilir ve bu, zarar vermese de derin bilgi gerektirmez. Amatör robot bilimi devre tasarımından pek farklı değildir, yalnızca çok daha ilgi çekicidir çünkü aynı zamanda mekanik ve programlama gibi alanları da içerir. Tüm bileşenler kolayca temin edilebilir ve o kadar da pahalı değildir. Dolayısıyla ilerleme durmuyor ve bunu kendi avantajımıza kullanacağız.

giriiş

Bu yüzden. Robot nedir? Çoğu durumda bu otomatik cihaz Herhangi bir çevresel eyleme tepki veren. Robotlar insanlar tarafından kontrol edilebilir veya önceden programlanmış eylemleri gerçekleştirebilir. Tipik olarak robot çeşitli sensörler (mesafe, dönüş açısı, hızlanma), video kameralar ve manipülatörlerle donatılmıştır. Robotun elektronik kısmı bir mikrodenetleyiciden (MC) oluşur - bir işlemci, bir saat üreteci, çeşitli çevre birimleri, operasyonel ve kalıcı hafıza. Dünyada farklı uygulamalar için çok sayıda farklı mikrodenetleyici vardır ve bunlara dayanarak güçlü robotlar oluşturabilirsiniz. Amatör binalarda yaygın olarak kullanılırlar. AVR mikrodenetleyicileri. Bunlar açık ara en erişilebilir olanlardır ve internette bu MK'lere dayalı birçok örnek bulabilirsiniz. Mikrodenetleyicilerle çalışmak için assembler veya C dilinde programlayabilmeniz ve temel dijital ve analog elektronik bilgisine sahip olmanız gerekir. Projemizde C kullanacağız. MK için programlama, bilgisayarda programlamaktan çok farklı değildir, dilin sözdizimi aynıdır, çoğu işlev pratikte farklı değildir ve yenilerinin öğrenilmesi oldukça kolay ve kullanımı kolaydır.

Neye ihtiyacımız var

Başlangıç ​​olarak robotumuz engellerden kaçınabilecek, yani doğadaki çoğu hayvanın normal davranışını tekrarlayabilecek. Böyle bir robot yapmak için ihtiyacımız olan her şey radyo mağazalarında bulunabilir. Robotumuzun nasıl hareket edeceğine karar verelim. Bence en başarılısı tanklarda kullanılan paletlerdir; bu en uygun çözümdür, çünkü paletler bir aracın tekerleklerinden daha fazla manevra kabiliyetine sahiptir ve kontrol edilmesi daha uygundur (dönmek için paletleri döndürmek yeterlidir). farklı yönlerde). Bu nedenle paletleri birbirinden bağımsız dönen herhangi bir oyuncak tanka ihtiyacınız olacak, herhangi bir oyuncak mağazasından makul bir fiyata satın alabilirsiniz. Bu tanktan yalnızca paletli ve dişli kutulu motorlu bir platforma ihtiyacınız var, gerisini güvenli bir şekilde söküp atabilirsiniz. Ayrıca bir mikro denetleyiciye ihtiyacımız var, seçimim ATmega16'ya düştü - sensörleri ve çevre birimlerini bağlamak için yeterli bağlantı noktasına sahip ve genel olarak oldukça kullanışlı. Ayrıca bazı radyo bileşenleri, bir havya ve bir multimetre satın almanız gerekecektir.

MK ile tahta yapmak



Robot diyagramı

Bizim durumumuzda mikrodenetleyici beynin işlevlerini yerine getirecek, ancak onunla değil, robotun beynine güç vererek başlayacağız. Doğru beslenme sağlığın anahtarıdır, bu yüzden robotumuzu nasıl doğru şekilde besleyeceğimizle başlayacağız çünkü acemi robot yapımcılarının genellikle hata yaptığı yer burasıdır. Robotumuzun normal çalışabilmesi için voltaj dengeleyici kullanmamız gerekiyor. L7805 yongasını tercih ediyorum - çıktı almak üzere tasarlandı kararlı voltaj 5V, mikrodenetleyicimizin ihtiyacı olan şey bu. Ancak bu mikro devredeki voltaj düşüşünün yaklaşık 2,5V olması nedeniyle minimum 7,5V beslenmesi gerekmektedir. Bu dengeleyiciyle birlikte, voltaj dalgalanmalarını yumuşatmak için elektrolitik kapasitörler kullanılır ve kutupların tersine çevrilmesine karşı koruma sağlamak için devreye mutlaka bir diyot dahil edilir.
Artık mikrodenetleyicimize geçebiliriz. MK'nin kasası DIP'dir (lehimlemeye daha uygundur) ve kırk pimi vardır. Gemide şimdilik kullanmayacağımız bir ADC, PWM, USART ve çok daha fazlası var. Birkaç önemli düğüme bakalım. RESET pimi (MK'nin 9. ayağı), R1 direnci ile güç kaynağının "artı" ucuna bağlanır - bu yapılmalıdır! Aksi takdirde, MK'niz istemeden sıfırlanabilir veya daha basit bir ifadeyle arızalanabilir. İstenilen ancak zorunlu olmayan bir başka önlem, RESET'i seramik kapasitör C1 aracılığıyla toprağa bağlamaktır. Diyagramda ayrıca 1000 uF'lik bir elektrolit görebilirsiniz; bu, sizi motorlar çalışırken voltaj düşüşlerinden kurtarır ve bu aynı zamanda mikro denetleyicinin çalışması üzerinde de faydalı bir etkiye sahip olacaktır. Kuvars rezonatör X1 ve C2, C3 kapasitörleri XTAL1 ve XTAL2 pinlerine mümkün olduğunca yakın yerleştirilmelidir.
İnternette okuyabileceğiniz için MK'nin nasıl flaş edileceği hakkında konuşmayacağım. Programı C dilinde yazacağız; programlama ortamı olarak CodeVisionAVR'yi seçtim. Bu oldukça kullanıcı dostu bir ortamdır ve yerleşik bir kod oluşturma sihirbazına sahip olduğundan yeni başlayanlar için faydalıdır.


Benim robot panom

Motor kontrolü

Robotumuzda aynı derecede önemli bir bileşen de motor sürücüsüdür ve bu da onu kontrol etmemizi kolaylaştırır. Motorlar asla ve hiçbir koşulda doğrudan MK'ye bağlanmamalıdır! Genel olarak güçlü yükler doğrudan mikrodenetleyiciden kontrol edilemez, aksi takdirde yanar. Anahtar transistörleri kullanın. Bizim durumumuzda özel bir çip var - L293D. Bu tür basit projelerde, aşırı yük koruması için yerleşik diyotlara sahip olduğundan, her zaman "D" indeksli bu özel çipi kullanmaya çalışın. Bu mikro devrenin kontrolü çok kolaydır ve radyo mağazalarından satın alınması kolaydır. İki paket halinde mevcuttur: DIP ve SOIC. Panoya montaj kolaylığı nedeniyle pakette DIP kullanacağız. L293D'nin motorlar ve mantık için ayrı güç kaynağı vardır. Bu nedenle, mikro devrenin kendisini dengeleyiciden (VSS girişi) ve motorları doğrudan akülerden (VS girişi) besleyeceğiz. L293D kanal başına 600 mA yüke dayanabiliyor ve bu kanallardan iki tanesine sahip yani bir çipe iki motor bağlanabiliyor. Ancak güvenli tarafta olmak için kanalları birleştireceğiz ve ardından her motor için bir micraya ihtiyacımız olacak. Buradan L293D'nin 1,2 A'ya dayanabileceği anlaşılmaktadır. Bunu başarmak için micra ayaklarını şemada gösterildiği gibi birleştirmeniz gerekir. Mikro devre şu şekilde çalışır: IN1 ve IN2'ye mantıksal bir "0" uygulandığında ve IN3 ve IN4'e mantıksal bir "0" uygulandığında, motor bir yönde döner ve sinyaller ters çevrilirse ve mantıksal bir sıfır uygulanırsa, daha sonra motor diğer yönde dönmeye başlayacaktır. EN1 ve EN2 pinleri her kanalın açılmasından sorumludur. Onları bağlarız ve dengeleyiciden gelen güç kaynağının "artı" ucuna bağlarız. Mikro devre çalışma sırasında ısındığından ve radyatörlerin bu tür bir kasaya takılması sorunlu olduğundan, ısının giderilmesi GND ayakları tarafından sağlanır - bunları geniş bir temas pedine lehimlemek daha iyidir. Motor sürücüleri hakkında ilk kez bilmeniz gereken tek şey bu.

Engel sensörleri

Robotumuzun yön bulabilmesi ve her şeye çarpmaması için üzerine iki adet kızılötesi sensör yerleştireceğiz. En basit sensör, kızılötesi spektrumda ışık yayan bir IR diyot ve IR diyottan gelen sinyali alacak bir fototransistörden oluşur. Prensip şudur: Sensörün önünde herhangi bir engel olmadığında IR ışınları fototransistöre çarpmaz ve açılmaz. Sensörün önünde bir engel varsa, ışınlar ondan yansır ve transistöre çarpar - açılır ve akım akmaya başlar. Bu tür sensörlerin dezavantajı, farklı yüzeylere farklı tepki verebilmeleri ve parazitlere karşı korunmamalarıdır - sensör, diğer cihazlardan gelen yabancı sinyaller tarafından kazara tetiklenebilir. Sinyali modüle etmek sizi parazitten koruyabilir, ancak şimdilik bununla uğraşmayacağız. Yeni başlayanlar için bu yeterli.


Robotumun sensörlerinin ilk versiyonu

Robot yazılımı

Robotu hayata geçirmek için, onun için ürün yazılımı yazmanız gerekir, yani sensörlerden okumalar alacak ve motorları kontrol edecek bir program. Programım en basit olanıdır, karmaşık yapılar içermez ve herkes tarafından anlaşılabilir olacaktır. Sonraki iki satır, mikrodenetleyicimiz için başlık dosyalarını ve gecikmeler oluşturmaya yönelik komutları içerir:

#katmak
#katmak

PORTC değerleri motor sürücüsünü mikro denetleyicinize nasıl bağladığınıza bağlı olduğundan aşağıdaki satırlar koşulludur:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

0xFF değeri çıkışın log olacağı anlamına gelir. “1” ve 0x00 günlüktür. "0".

Aşağıdaki yapıyla robotun önünde bir engel olup olmadığını ve hangi tarafta olduğunu kontrol ediyoruz:

Eğer (!(PINB & (1< {
...
}

IR diyottan gelen ışık fototransistöre çarparsa, mikro denetleyici ayağına bir kayıt takılır. “0” ve robot engelden uzaklaşmak için geriye doğru hareket etmeye başlar, ardından tekrar engele çarpmamak için kendi etrafında dönerek tekrar ileri doğru hareket eder. İki sensörümüz olduğundan, bir engelin varlığını sağda ve solda olmak üzere iki kez kontrol ediyoruz ve böylece engelin hangi tarafta olduğunu bulabiliyoruz. "delay_ms(1000)" komutu, bir sonraki komutun yürütülmeye başlamasından önce bir saniye geçeceğini belirtir.

Çözüm

İlk robotunuzu oluşturmanıza yardımcı olacak hususların çoğunu ele aldım. Ancak robotik burada bitmiyor. Bu robotu monte ederseniz, onu genişletmek için birçok fırsatınız olacak. Engelin robotun bir tarafında değil de tam önünde olması durumunda ne yapılacağı gibi robotun algoritmasını iyileştirebilirsiniz. Robotunuzu uzayda doğru bir şekilde konumlandırmanıza ve yerini bilmenize yardımcı olacak basit bir cihaz olan bir kodlayıcı takmanın da zararı olmaz. Netlik sağlamak için, pil şarj seviyesi, engellere olan mesafe, çeşitli hata ayıklama bilgileri gibi yararlı bilgileri gösterebilecek renkli veya tek renkli bir ekran kurmak mümkündür. Geleneksel fototransistörler yerine TSOP'ların (bunlar yalnızca belirli bir frekanstaki sinyali algılayan IR alıcılarıdır) kurulmasıyla sensörlerin iyileştirilmesi zarar vermez. Kızılötesi sensörlere ek olarak, daha pahalı olan ve dezavantajları da olan ancak son zamanlarda robot üreticileri arasında popülerlik kazanan ultrasonik sensörler de vardır. Robotun sese tepki verebilmesi için amplifikatörlü mikrofonlar takılması iyi bir fikir olacaktır. Ama bence gerçekten ilginç olan şey kamerayı kurmak ve makine görüşünü buna göre programlamak. Yüz tanımayı, renkli işaretlere göre hareketi ve diğer birçok ilginç şeyi programlayabileceğiniz bir dizi özel OpenCV kütüphanesi bulunmaktadır. Her şey yalnızca hayal gücünüze ve becerilerinize bağlıdır.
Bileşenlerin listesi:
  • ATmega16 DIP-40 paketinde>
  • TO-220 paketinde L7805
  • DIP-16 muhafazada L293D x2 adet.
  • 0,25 W gücünde dirençler ve derecelendirmeler: 10 kOhm x 1 adet, 220 Ohm x 4 adet.
  • seramik kapasitörler: 0,1 µF, 1 µF, 22 pF
  • elektrolitik kapasitörler: 1000 µF x 16 V, 220 µF x 16 V x 2 adet.
  • diyot 1N4001 veya 1N4004
  • 16 MHz kuvars rezonatör
  • IR diyotlar: herhangi ikisi işe yarar.
  • fototransistörler de herhangi biri, ancak yalnızca kızılötesi ışınların dalga boyuna yanıt veriyor
Firmware kodu:
/*****************************************************
Robot için bellenim

MK türü: ATmega16
Saat frekansı: 16.000000 MHz
Kuvars frekansınız farklıysa bunu ortam ayarlarında belirtmeniz gerekir:
Proje -> Yapılandır -> "C Derleyici" Sekmesi
*****************************************************/

#katmak
#katmak

Geçersiz ana (geçersiz)
{
//Giriş bağlantı noktalarını yapılandır
//Bu portlar aracılığıyla sensörlerden sinyal alıyoruz
DDRB=0x00;
//Pull-up dirençlerini aktif ediyoruz
PORTB=0xFF;

//Çıkış bağlantı noktalarını yapılandır
//Bu portlar üzerinden motorları kontrol ediyoruz
DDRC=0xFF;

//Programın ana döngüsü. Burada sensörlerden gelen değerleri okuyoruz
//ve motorları kontrol ediyoruz
iken (1)
{
//İleriye gidelim
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (!(PINB & (1< {
//1 saniye geriye gidiyoruz
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
gecikme_ms(1000);
//Bunu tamamla
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
gecikme_ms(1000);
}
if (!(PINB & (1< {
//1 saniye geriye gidiyoruz
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
gecikme_ms(1000);
//Bunu tamamla
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
gecikme_ms(1000);
}
};
}

Robotum hakkında

Şu anda robotum neredeyse tamamlandı.


Kablosuz bir kamera, bir mesafe sensörü (hem kamera hem de bu sensör dönen bir kuleye monte edilmiştir), bir engel sensörü, bir kodlayıcı, uzaktan kumandadan bir sinyal alıcısı ve bir bilgisayara bağlanmak için bir RS-232 arayüzü ile donatılmıştır. bilgisayar. İki modda çalışır: otonom ve manuel (uzaktan kumandadan kontrol sinyallerini alır), pil gücünden tasarruf etmek için kamera uzaktan veya robotun kendisi tarafından da açılıp kapatılabilir. Apartman güvenliği için yazılım yazıyorum (görüntüleri bilgisayara aktarmak, hareketleri tespit etmek, binada dolaşmak).

İstekleriniz doğrultusunda bir video yayınlıyorum:

GÜNCELLEME. Fotoğrafları yeniden yükledim ve metinde bazı küçük düzeltmeler yaptım.

Kendi robotunuzu yaratmak için mezun olmanıza veya çok fazla kitap okumanıza gerek yok. Robot bilimi uzmanlarının web sitelerinde sunduğu adım adım talimatları kullanmanız yeterli. İnternette otonom robotik sistemlerin geliştirilmesine ilişkin birçok yararlı bilgi bulabilirsiniz.

Gelecek vaat eden robot bilimci için 10 kaynak

Sitedeki bilgiler, bağımsız olarak karmaşık davranışa sahip bir robot oluşturmanıza olanak tanır. Burada program örneklerini, diyagramları, referans materyallerini, hazır örnekleri, makaleleri ve fotoğrafları bulabilirsiniz.

Sitede yeni başlayanlara ayrılmış ayrı bir bölüm bulunmaktadır. Kaynağın yaratıcıları mikrodenetleyicilere, robotik için evrensel panoların geliştirilmesine ve mikro devrelerin lehimlenmesine büyük önem veriyor. Burada ayrıca programların kaynak kodlarını ve pratik tavsiyeler içeren birçok makaleyi bulabilirsiniz.

Web sitesinde, en basit BEAM robotlarının yanı sıra AVR mikrokontrolörlerine dayanan otomatik sistemlerin oluşturulması sürecini ayrıntılı olarak açıklayan özel bir "Adım Adım" kursu bulunmaktadır.

Gelecek vaat eden robot yaratıcılarının gerekli tüm teorik ve pratik bilgileri bulabileceği bir site. Burada ayrıca çok sayıda yararlı tematik makale yayınlanıyor, haberler güncelleniyor ve forumda deneyimli robot uzmanlarına sorular sorabilirsiniz.

Bu kaynak, robot yaratma dünyasına kademeli olarak dalmaya adanmıştır. Her şey Arduino bilgisiyle başlar ve ardından acemi geliştiriciye AVR mikrokontrolörleri ve daha modern ARM analogları anlatılır. Detaylı açıklamalar ve diyagramlar, nasıl ve ne yapılacağını çok net bir şekilde açıklıyor.

Kendi elinizle BEAM robotunun nasıl yapılacağına dair bir site. Temel konulara ayrılmış bir bölüm var ve ayrıca mantık diyagramları, örnekler vb. de var.

Bu kaynak, kendiniz bir robotun nasıl oluşturulacağını, nereden başlayacağınızı, bilmeniz gerekenleri, bilgiyi nerede arayacağınızı ve gerekli ayrıntıları çok net bir şekilde anlatıyor. Hizmet ayrıca blog, forum ve haberlerin bulunduğu bir bölüm içerir.

Robotların yaratılmasına adanmış devasa bir canlı forum. Burada yeni başlayanlar için konular açık, ilginç projeler ve fikirler tartışılıyor, mikrodenetleyiciler, hazır modüller, elektronik ve mekanik anlatılıyor. Ve en önemlisi robotik ile ilgili her türlü soruyu sorabilir ve profesyonellerden detaylı bir cevap alabilirsiniz.

Amatör robot bilimcinin kaynağı öncelikle kendi projesi olan “Ev Yapımı Robot” a ayrılmıştır. Ancak burada birçok yararlı tematik makale bulabilir, ilginç sitelere bağlantılar bulabilir, yazarın başarıları hakkında bilgi edinebilir ve çeşitli tasarım çözümlerini tartışabilirsiniz.

Arduino donanım platformu robotik sistem geliştirmek için en uygun platformdur. Sitedeki bilgiler bu ortamı hızlı bir şekilde anlamanıza, programlama diline hakim olmanıza ve birkaç basit proje oluşturmanıza olanak sağlar.

Robotunuzu oluşturmak için bir mikrodenetleyici seçme. Öncelikle mikrodenetleyicinin ne olduğunu ve ne işe yaradığını anlamanız gerekir.

Mikrodenetleyici programları (yani bir dizi talimatı) yürütebilen bir bilgi işlem cihazıdır.

Genellikle robotun “beyni” veya “kontrol merkezi” olarak anılır. Tipik olarak mikro denetleyici tüm hesaplamalardan, karar verme ve iletişimden sorumludur.

Dış dünyayla iletişim kurmak için mikro denetleyici, sinyali elektriksel olarak algılamak için bir dizi pin veya pin içerir. Böylece sinyal bir programlama talimatı kullanılarak maksimuma (1/C) veya minimuma (0/kapalı) çevrilebilir. Bu pinler aynı zamanda elektrik sinyallerini okumak için de kullanılabilir. Sensörlerden veya diğer cihazlardan gelirler ve sinyallerin yüksek mi yoksa düşük mü olduğunu belirlerler.

Çoğu modern mikrodenetleyici aynı zamanda analog sinyallerin voltajını da ölçebilir. Bunlar açıkça tanımlanmış iki seviye yerine tam bir değer aralığına sahip olabilen sinyallerdir. Bu, bir analog dijital dönüştürücü (ADC) kullanılarak gerçekleşir. Sonuç olarak mikro denetleyici, sinyale analog voltaj biçiminde sayısal bir değer atayabilir. Bu voltaj ne yüksek ne de düşüktür ve tipik olarak 0 - 10 volt aralığındadır.

Bir mikrodenetleyici ne yapabilir?

Mikrodenetleyiciler ilk bakışta oldukça sınırlı görünse de, bir algoritmayı programlamak için yüksek ve düşük sinyal pinleri kullanılarak birçok karmaşık işlem gerçekleştirilebilir. Ancak akıllı davranış veya çok büyük programlar gibi çok karmaşık algoritmalar oluşturmak, sınırlı kaynaklar ve hız sınırlamaları nedeniyle bir mikrodenetleyici için mümkün olmayabilir.

Örneğin, ışıkların yanıp sönmesini sağlayacak şekilde yinelenen bir dizi programlayabilirsiniz. Yani mikrodenetleyici yüksek sinyal seviyesini açar, bir saniye bekler, düşük seviyeye getirir, bir saniye daha bekleyip tekrar başlar. Işık, mikro denetleyicinin çıkış pinine bağlıdır ve döngüsel bir programda sonsuz olarak yanıp sönecektir.


Aynı şekilde mikrodenetleyiciler diğer elektrikli cihazları kontrol etmek için de kullanılabilir. Öncelikle sürücüler (bir motor kontrol cihazına bağlandığında), depolama cihazları (SD kartlar gibi), WiFi veya bluetooth arayüzleri vb. Bu inanılmaz çok yönlülüğün bir sonucu olarak, mikrokontrolörler günlük yaşamda bulunabilir.

Hemen hemen her ev aleti veya elektronik cihaz en az bir mikrodenetleyici kullanır. Her ne kadar sıklıkla birkaç mikrodenetleyici kullanılıyor olsa da. Örneğin televizyonlarda, çamaşır makinelerinde, kontrol panellerinde, telefonlarda, saatlerde, mikrodalga fırınlarda ve daha birçok cihazda.

Mikroişlemcilerin (kişisel bilgisayarlardaki merkezi işlem birimi gibi) aksine, mikrodenetleyici çevresel aygıtlara ihtiyaç duymaz. İş için harici RAM veya harici depolama aygıtı gibi. Bu, bir mikro denetleyicinin PC'deki benzerlerinden daha az güçlü olabileceği anlamına gelir. Mikrodenetleyicilere dayalı devreler ve ürünler geliştirmek neredeyse her zaman çok daha kolay ve ucuzdur çünkü çok az ek donanım bileşeni gereklidir.

Mikrodenetleyicinin çıkış pinleri aracılığıyla yalnızca çok küçük miktarda elektrik enerjisi çıkarabildiğini unutmamak önemlidir. Bu, güçlü bir elektrik motorunu, solenoidi, büyük aydınlatmayı veya başka herhangi bir büyük yükü doğrudan mikro denetleyiciye bağlamanın mümkün olmadığı anlamına gelir. Bunu yapmaya çalışmak denetleyiciye zarar verebilir.

Bir mikrodenetleyicinin daha özel işlevleri nelerdir?

Mikrokontrolörlere yerleştirilmiş özel donanım, bu cihazların basit dijital I/O'dan, temel hesaplamalardan ve karar vermekten daha fazlasını yapmasına olanak tanır. Birçok mikrodenetleyici, UART (RS232 veya diğerleri), SPI ve I2C gibi en popüler iletişim protokollerini kolaylıkla destekler. Bu özellik, bilgisayarlar, sensörler veya diğer mikro denetleyiciler gibi diğer cihazlarla iletişim kurarken inanılmaz derecede faydalıdır.

Bu protokoller manuel olarak uygulanabilse de, ayrıntılarla ilgilenen özel yerleşik donanıma sahip olmak her zaman daha iyidir. Bu, mikro denetleyicinin diğer görevlere odaklanmasını sağlar ve programın temiz kalmasını sağlar.


Analog-dijital dönüştürücüler (ADC'ler), analog voltaj sinyallerini dijital sinyallere dönüştürmek için kullanılır. Orada miktar voltajın büyüklüğüyle orantılıdır ve bu sayı daha sonra mikro denetleyici programında kullanılabilir. Ara enerji çıkışını yüksek ve düşükten farklı kılmak için bazı mikrodenetleyiciler darbe genişlik modülasyonunu (PWM) kullanma yeteneğine sahiptir. Örneğin, bu yöntem LED'in parlaklığını sorunsuz bir şekilde değiştirmenize olanak sağlar.

Son olarak bazı mikrodenetleyicilerde entegre bir voltaj regülatörü bulunur. Bu oldukça kullanışlıdır çünkü mikrodenetleyicinin geniş bir voltaj aralığında çalışmasına olanak tanır. Bu nedenle gerekli voltaj değerlerini sağlamanıza gerek yoktur. Ayrıca, harici regüle edilmiş ek bir güç kaynağı olmadan çeşitli sensörleri ve diğer cihazları kolayca bağlamanıza olanak tanır.

Analog mu dijital mi?

Hangi giriş ve çıkış sinyallerinin kullanılması gerektiği göreve ve koşullara bağlıdır. Örneğin, göreviniz yalnızca bir şeyi açmak veya kapatmaksa, mikro denetleyicinin giriş pinindeki sinyalin dijital olması yeterlidir. Anahtarın ikili durumu 0 veya 1'dir. Sinyalin yüksek seviyesi 5 volt ve düşük seviyesi 0 olabilir. Örneğin sıcaklığı ölçmeniz gerekiyorsa, analog bir giriş sinyaline ihtiyacınız vardır. Daha sonra mikrodenetleyici üzerindeki ADC voltajı yorumlar ve onu sayısal bir değere dönüştürür.


Mikrodenetleyiciler nasıl programlanır?

Mikrodenetleyicilerin programlanması, tam özellikli kitaplıklara sahip modern entegre geliştirme ortamlarının (IDE'ler) kullanılmasıyla daha kolay hale geldi. En yaygın görevlerin tamamını kolayca kapsarlar ve birçok hazır kod örneğine sahiptirler.

Günümüzde mikrodenetleyiciler çeşitli üst düzey dillerde programlanabilmektedir. Bunlar C, C++, C#, Java, Python, Basic ve diğerleri gibi dillerdir. Elbette her zaman montaj dilinde bir program yazabilirsiniz. Her ne kadar bu, özel gereksinimleri olan (bir miktar mazoşizm içeren) daha ileri düzey kullanıcılar içindir. Bu anlamda herkes kendi zevkine ve önceki programlama deneyimine en uygun programlama dilini bulabilmelidir.

Üreticiler grafiksel programlama ortamları oluşturdukça mikrodenetleyicilerin programlanması daha da kolay hale geliyor. Bunlar birkaç satır kod içeren simgelerdir. Piktogramlar birbirine bağlıdır. Sonuç olarak, görsel olarak basit ancak büyük miktarda kod içeren bir program oluşturulur. Örneğin, bir görüntü motor kontrolünü temsil edebilir. Kullanıcının yalnızca simgeyi gerekli yere yerleştirmesi ve dönüş yönünü ve hızını belirtmesi gerekir.


Geliştirilen mikrodenetleyici kartların kullanımı oldukça uygundur. Ve uzun süre kullanımları daha kolaydır. Ayrıca kullanışlı USB gücü ve programlama arayüzleri sağlarlar. Bu nedenle herhangi bir modern bilgisayara bağlanmak mümkündür.

Neden standart bir bilgisayar kullanmıyorsunuz?

Açıkçası, bir mikrodenetleyici bir bilgisayar işlemcisine çok benzer. Eğer durum buysa neden robotu kontrol etmek için bir bilgisayar kullanmıyorsunuz? Peki masaüstü bilgisayar mı yoksa mikrodenetleyici mi seçmelisiniz?


Esasen, daha gelişmiş robotlarda, özellikle de karmaşık hesaplamalar ve algoritmalar içerenlerde, mikro denetleyici genellikle standart bir bilgisayarla değiştirilir (veya tamamlanır). Bir masaüstü bilgisayarda bir anakart, bir işlemci, aygıtın RAM'i (örneğin bir sabit sürücü) ve bir video kartı (yerleşik veya harici) bulunur.

Ayrıca monitör, klavye, fare vb. çevre birimleri de vardır. Bu sistemler genellikle daha pahalıdır, fiziksel olarak daha büyüktür ve daha fazla güç tüketir. Temel farklılıklar aşağıdaki tabloda vurgulanmıştır. Ayrıca çoğu zaman gereğinden fazla işlevselliğe sahiptirler.

Doğru mikrodenetleyici nasıl seçilir?

Robotik okuyorsanız, herhangi bir robotik projesi için bir mikrodenetleyiciye ihtiyacınız olacaktır. Yeni başlayanlar için doğru mikrodenetleyiciyi seçmek göz korkutucu bir görev gibi görünebilir. Özellikle ürün yelpazesi, teknik özellikleri ve uygulama alanları dikkate alındığında. Piyasada birçok farklı mikrodenetleyici bulunmaktadır:

  • arduino
  • TemelATOM
  • TemelX
  • Lego EV3
  • Ve bircok digerleri

Doğru mikrodenetleyiciyi seçmek için kendinize aşağıdaki soruları sorun:

Uygulamam için en popüler mikrodenetleyici nedir?

Elbette genel olarak robot ve elektronik projeler yaratmak bir popülerlik yarışması değil. Mikrodenetleyicinin çok fazla topluluk desteğine sahip olması çok iyidir. Ve benzer ve hatta aynı durumlarda başarıyla kullanılır. Sonuç olarak bu, tasarım aşamasını büyük ölçüde basitleştirebilir. Bu sayede hem amatör hem de profesyonel diğer kullanıcıların deneyimlerinden faydalanabilirsiniz.

Robot tasarım topluluklarının üyeleri sonuçları, kodları, resimleri, videoları birbirleriyle paylaşıyor, başarılar ve hatta başarısızlıklar hakkında ayrıntılı olarak konuşuyorlar. Bütün bunlar erişilebilir materyaller ve daha deneyimli kullanıcılardan tavsiye alma fırsatıdır. Bu nedenle çok değerli olduğu kanıtlanabilir.

Robotunuzun özel gereksinimleri var mı?

Fonksiyonların doğru bir şekilde çalışabilmesi için mikrodenetleyicinin robotunuzun tüm özel hareketlerini gerçekleştirebilmesi gerekir. Bazı özellikler tüm mikrodenetleyiciler için ortaktır (örneğin, dijital giriş ve çıkışların varlığı, basit matematiksel işlemleri gerçekleştirme, değerleri karşılaştırma ve karar verme yeteneği).

Diğer denetleyiciler özel donanım gerektirebilir (örn. ADC, PWM ve iletişim protokolü desteği). Ayrıca bellek ve hız gereksinimlerinin yanı sıra pin sayısı da dikkate alınmalıdır.

Belirli bir mikrodenetleyici için hangi bileşenler mevcuttur?

Belki robotunuzun özel gereksinimleri vardır veya belirli bir sensöre veya bileşene ihtiyaç duymaktadır. Ve bu projeniz için kritik öneme sahiptir. Bu nedenle uyumlu bir mikrodenetleyici seçmek elbette çok önemlidir.

Çoğu sensör ve bileşen birçok mikrodenetleyiciyle doğrudan iletişim kurabilir. Her ne kadar bazı bileşenler belirli bir mikro denetleyiciyle etkileşime girecek şekilde tasarlanmış olsa da. Belki de benzersiz olacaklar ve diğer mikro denetleyici türleriyle uyumsuz olacaklar.

Gelecek bizim için neler sunuyor?

Bilgisayarların fiyatı düşüyor ve teknolojideki ilerlemeler onları daha küçük ve daha verimli hale getiriyor. Sonuç olarak tek kartlı bilgisayarlar robotlar için cazip bir seçenek haline geldi. Tam bir işletim sistemini çalıştırabilirler (Windows ve Linux en yaygın olanlardır).

Ek olarak bilgisayarlar, USB aygıtları, LCD ekranlar vb. gibi harici aygıtlara da bağlanabilir. Atalarının aksine, bu tek kartlı bilgisayarlar önemli ölçüde daha az güç tüketme eğilimindedir.

Pratik kısım

Mikrodenetleyici seçmek için ihtiyacımız olan kriterlerin bir listesini yapalım:

  • Mikrodenetleyicinin maliyeti düşük olmalı
  • Kullanımı kolay ve iyi desteklenmiş olmalı
  • Erişilebilir belgelerin mevcudiyeti önemlidir
  • Grafik ortamda programlanmalıdır.
  • Popüler olmalı ve aktif bir kullanıcı topluluğuna sahip olmalı
  • Robotumuz iki motor ve çeşitli sensörler kullanacağından, mikrodenetleyicinin motorları kontrol etmek için en az iki porta ve sensörleri bağlamak için birkaç porta ihtiyacı olacaktır. Gelecekte bağlı cihazların sayısını artırmak da mümkün olmalıdır.

Bu kriterleri karşılıyor EV3 modülü Lego Mindstorms EV3 setinden.


EV3 Brick'e Genel Bakış

26.01.2011, 09:18
Kaynak:

Genellikle makalelerde materyali gelişim sırasına göre sunmaya çalışıyorum ama durumun böyle olmadığını düşünüyorum. Bu nedenle devre şeması, PCB düzeni ve diğer her şeyin tasarlanması aşamalarını atlayacağız. Şekil 1'de nasıl bir “rezalet” yaşadığımı görüyoruz.

İlk bakışta sadece bir demir, elektronik ve kablo yığını gibi görünüyor. Bunun nedeni muhtemelen farklı malzemelerin kullanılmasıdır. Hadi çözelim.

Artık her şey yolunda. Attiny2313 mikrodenetleyici, iki kızılötesi sensörden bir engel sinyali (mantıksal bir veya sıfır) alır. Daha sonra, ürün yazılımına göre mikro denetleyici, L293D motor sürücü çipini kontrol eder (1 Amper'e kadar kontrol akımı). Şekil 3 ters çevrilmiş bir robotun fotoğrafını göstermektedir.

Ev yapımı bir robotun tasarımının temeli, yamuk şeklinde bükülmüş metal bir şerittir. Bükülme açısı yaklaşık 120°'dir. Her iki tarafta da aynı kıvrımın elde edilmesi temel olarak önemlidir, aksi takdirde robot düz bir çizgide hareket etmeyecektir. Öte yandan, bir tamircinin veya elektronik mühendisinin kötü yaptığı şey bazen bir programcı tarafından, örneğin robotun doğrusal hareketini sağlamak için PWM kullanılarak düzeltilebilir.

Hepimiz okul geometri dersinden bir düzlemin ya üç noktadan ya da düz bir çizgi ve uzaydaki bir noktadan oluştuğunu biliyoruz. Üçüncü nokta serbestçe dönen bir makaralı tekerlektir.

IR sensörlerinin ve fototransistörlerin alıcıları, aydınlatmayı azaltmak ve yanlış pozitifleri en aza indirmek için altta bulunur. IR sensörleri, tarama alanını ayarlamanıza olanak tanıyan hareketli menteşelere monte edilmiştir. Bu arada kedimin koridorda sürünen robota tepkisi ilginç miydi? Kedim siyah. IR sensörlerini gri duvar kağıdına ayarladım, böylece robot neredeyse son anda kedinin önüne döndü ve kedi yüksek bir tıslamayla bir adım geri sıçradı.

Robotun bir sonraki modifikasyonu, robotun beyaz kağıda çizilen siyah bir çizgiyi bir işaretleyiciyle takip etmesine olanak tanıyan, karnındaki IR sensörleriydi. Uygulama, mikro denetleyiciyi rahatlatmak için LM339N yongası üzerinde üç sensör ve bir karşılaştırıcı gerektirdi. Odadaki aydınlatmaya bağlı olarak, kesme dirençleri kullanılarak sensörlerin gerekli ön ayarının önemli bir dezavantaj olduğu ortaya çıktı.

Not: Anlamsız bir cihaz yaratmak için zaman harcamanın ödülü, belki de mikro denetleyicinin işleyişinin netliği ve birinin çocuğunun ilgisini çekene kadar rafta toz toplayacak hafıza olacaktır.




Tepe