Arduino'yu anlıyorum: şimdi ne olacak?


18

Pekala, Arduino ile oldukça rahat hissettiğim kadar oynadım. Şu anda yapılan her şey elektroniği Arduino tarafından olduğundan daha fazla öğrenmek.

Öğrenmem için bir sonraki adım nedir? Arduino kombine bir programcı / denetleyicidir, bu yüzden muhtemelen bu bağlantıyı kırmam ve denetleyiciden ayrı bir denetleyici yongası ile çalışmaya başlamam gerekiyor, sanırım? Birisi beni doğru yönde gösterebilir mi?


Aklınızda belirli bir hedef veya proje var mı?

Katılıyorum. Bana göre bu tamamen belirli şeyleri yapmakla ilgili. Arduino sadece her şey gibi bir araçtır.
Dirk

Şu anda üzerinde çalıştığım şey çoklanmış bir LED dizisidir. Arduino'da o kadar da zor değil, ama eğitim tekerleklerinden kurtulmak istiyorum. Yani, sonuçta, Arduino kartında bir ATmega168 çipi var. Doğrudan onunla nasıl çalışacağımı anlayabilirsem, bunun elde etmeye çalıştığım şeyi tatmin edeceğini düşünüyorum.
Chris B. Behrens

Aslında Arduino'yla çipe oldukça doğrudan geldiniz. Pimlere çok fazla sürücü veya herhangi bir şey bağlı değil. Başlıklar doğrudan oraya gider. Belki bir breadboarduino?
AngryEE

@angryee - Chris, eğitim tekerlekleri olarak görülebilecek Arduino IDE + kütüphaneleri olmadan doğrudan ATmega çipini programlamak anlamına geliyor.
J. Polfer

Yanıtlar:



12

Joby'ye katılıyorum - Arduino harika ama her zaman beni çevreleyen çerçeveyle boğulmuş hissediyorum. Arduino'nuzda düz C kullanmaya devam ediyorum ve sıfırdan sağladıkları bir çok kütüphane işlevselliğini inşa ediyorum. Genellikle genişlikten önce derinliği tercih ederim - daha fazla sağlanan çerçeve kullanarak başka bir mikrodenetleyici ailesine başlamayın. Bu işlevlerin bazılarını kendiniz nasıl uygulayacağınız hakkında biraz daha fazla bilgi edinin.

Çalışan bir programla başlayın ve Arduino kütüphane çağrılarını her seferinde bir işlevle kendi sürümlerinizle değiştirin. Zaten engellemediyseniz kontrol kayıtları, zamanlama, bit işlemleri, vb. Hakkında çok şey öğreneceksiniz. ATMega328 veri sayfasını derinlemesine okuyun - ihtiyacınız olan her şey orada.

AVR Studio veya Code :: Blocks gibi farklı bir IDE deneyin. GCC araç zincirini öğrenin. Daha gelişmiş kodlama tekniklerini deneyin - birim testleri, kapsam, profil oluşturma, tüy bırakma / atel kontrolü. Arduino'ya bir RTOS koyun.

Kombine bir programcı / kontrolör zayıflığın bir işareti değildir - sadece bir tasarım seçimidir. Ondan gelebilecek tek 'zayıflık' devre içi hata ayıklama eksikliğidir. Bir AVR Ejderhası alın ve bunu 50 dolara yatıracaksınız.


9

Bir sonraki adımda ne öğreneceğinizin Arduino'nun yapamayacağı şeylere bağlı olduğunu düşünüyorum. Yani, aynı şeyleri yapmak için benzer bir çipin programlanmasında fazla bir nokta göremiyorum, ama daha zor yollarla.

İşte bazı Arduino zayıflıkları:

  • Diş açma, yani kodun iki bölümünü aynı anda yürütülmüş gibi görünecek şekilde aralıklı olarak çalıştırma
  • Ses akışı gibi orta veya yüksek bant genişlikli internet öğeleri
  • Ciddi hesaplama veya hızlı yanıt için hızlı hesaplama gerektiren görevler
  • Veri kaydı veya görüntülerle uğraşmak gibi bir dosya sistemine sahip olarak kolaylaştıran her şey

Gideceğim iki yönü hayal edebiliyorum:

  1. Beagleboard veya Gumstix gibi küçük işletim sistemlerine sahip daha güçlü yerleşik kartlar
  2. Donanım kesmelerini kullanarak küçük Atmega çiplerinden daha fazla performans elde etme.

Hangi yönün daha cazip olduğu hakkında yorum yaparsanız daha fazla ayrıntı ekleyebilirim. (İkincisi kesinlikle daha ucuz.)


Komik ... aynı şeyleri yapmak için benzer bir yonga programlamak, ama daha zor yollarla aklımda olan şey :). Biraz arka plan - Uzun yıllara dayanan deneyime sahip bir yazılım mimarıyım. Yazılım, hesaplama, dosya sistemi ... bu benim için kolay şeyler. Kafamı gerçekten vurmam gereken şey elektronik. Arduino'nun ötesine geçmeye çalışmamın nedeni, bir Arduino kartının fiziksel (ve fiyat) ek yüküne sahip olmayan tek amaçlı cihazlar üretebilmek istiyorum. Bence söylediklerinden # 2, aradığım şey.
Chris B. Behrens

Vay be ... bu yorum gerçekten bencilce geliyordu. Öyle demek istemedim ... Her neyse, sadece Arduino'nun bana verdiği donanım eğitim tekerleklerinden kurtulmak istediğimi söyledim. Özellikle, ben LOLShield benzer bir LED dizi üzerinde çalışıyorum, ben bunun yerine çoğullamak düşünüyorum düşünüyorum. Arduino ile yapabilirim, ama onsuz bir yöne ihtiyacım var. TIA.
Chris B. Behrens

Ah, yazılım-y yerine daha elektronik-y şeyler. Belki sensör arayüzü / veri kaydı yapmak konusunda hoş bir deneyim yaşarsınız. Göz alıcı değil, ancak sensörleri anakartınıza arayüzlemek için donanım hakkında birkaç şey daha öğrenmeniz gerekiyor. Arduino'da pek çok donanım eğitim tekerleği yok - kesinlikle yazılım kadar değil. Belki birkaç farklı tipte sensörü içeren bir robot - ultrasonlar, IR mesafesi, şaft kodlayıcı, vb.
AngryEE

7

I2C, SPI, 1wire öğrenin ve bu arayüzlere sahip sensörleri arayüz etmeye çalışın. Bu tür sensörlerin birçok veri sayfasını okuyun ve içindeki her şeyi anlamaya çalışın. Sıkıştığında sorular sorun. Cihazınızı gömdüğünüzde cihazınızı dünyaya açabilen MODBUS (RTU / ASCII / TCP) veya benzer bir protokol öğrenin. Genel elektronikleri öğrenin ve röleleri, triyakları, yukarı çekme ve aşağı çekme, kaynak sağlama ve batma, şema çizme ve temel sürücüleri MCU'nuza nasıl bağlamayı aramaya çalışın.


6

Başlangıç ​​olarak, platform olarak Arduino'dan platform olarak AVR'ye geçmek isteyebilirsiniz. Yani, Arduino yerine projeleriniz için bakir bir AVR mikrodenetleyiciyi nasıl programlayacağınızı / kullanacağınızı öğrenin. Bu şekilde, yaptığınız her proje için veya arkadaşlarınızla proje yapmak için başka bir Arduino kartı satın almak zorunda kalmazsınız. Bu oldukça basit bir adım (bir Arduino sadece geleneksel bir Atmel AVR mikrodenetleyici, ancak özel bir tahta ve önyükleyici ile), ancak arkadaşlarına proje satmak / vermek için büyük bir adım. Araç zinciri de benzerdir: programınızı yüklemek için bir programlama yardımcı programıyla birlikte avr-gcc veya avr-g ++ kullanın.


Bir projeyi vermek istiyorsanız bootloader'ı bir çipe yüklemek ve kendi tahtanızı lehimlemek oldukça basittir. Veya her Arduino projesi için 30 $ + tahta satın almanıza gerek kalmadan 12.50 $ ( goo.gl/0yqr ) için bir RBBB kiti sipariş edin .
Davorak
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.