İçindekiler:

ARCA (Sevimli Uzaktan Kumandalı Android): 4 Adım (Resimlerle)
ARCA (Sevimli Uzaktan Kumandalı Android): 4 Adım (Resimlerle)

Video: ARCA (Sevimli Uzaktan Kumandalı Android): 4 Adım (Resimlerle)

Video: ARCA (Sevimli Uzaktan Kumandalı Android): 4 Adım (Resimlerle)
Video: Transformers Türkiyeye geldi 2024, Temmuz
Anonim
ARCA (Sevimli Uzaktan Kumandalı Android)
ARCA (Sevimli Uzaktan Kumandalı Android)
ARCA (Sevimli Uzaktan Kumandalı Android)
ARCA (Sevimli Uzaktan Kumandalı Android)
ARCA (Sevimli Uzaktan Kumandalı Android)
ARCA (Sevimli Uzaktan Kumandalı Android)

Bu talimat, Güney Florida Üniversitesi'ndeki (www.makecourse.com) Makecourse'un proje gereksinimini yerine getirmek için oluşturulmuştur.

ARCA, oluşturması ve oynaması inanılmaz derecede eğlenceli, Sevimli, Uzaktan Kumandalı bir Android'dir. Bu projenin amacı, hem sevimli hem de işlevsel bir robot yaratarak herkesin anlayabileceği ve ilişki kurabileceği bir şey yaratmaktı.

Robot, 8'e 8 LED matrisi üzerinde farklı duygular görüntüleyerek çalışır, bu duygular arasında sevinç, uyku, aşk, öfke, aptallık ve yukarıya, sola ve sağa bakma bulunur. Robot ayrıca bir RC araba gibi çalışıyor ve ileri gidip sola veya sağa dönebiliyor. Robot her iki tekerlek motorunu da çalıştırarak ilerler, sağ motoru çalıştırarak sola, sol motoru çalıştırarak sağa döner. Tasarım çok basit ama işe yarıyor ve kalbimde bir programcı olduğum için Arduino'nun programlanmasına yoğun bir şekilde odaklanmak istedim.

Bu eğitimde kullanılan tüm dosyaların en son sürümleri Github ARCA Depomda bulunabilir.

Adım 1: Parça Listesi ve 3D Baskı

Parça Listesi ve 3D Baskı
Parça Listesi ve 3D Baskı
Parça Listesi ve 3D Baskı
Parça Listesi ve 3D Baskı

Bu projenin parçaları ya 3D yazdırılabilir ya da çevrimiçi olarak satın alınabilir. Montajı düşünürken, verimlilik anahtarı yapmak ve aynı zamanda (tam anlamıyla) tekerleği yeniden icat etmemeye çalışmak istedim. Bu proje için kullanılan 3D yazıcı bir Makerbot Replicator'dı, eğer 3D baskılarınızın benimkiyle tutarlı olduğundan emin olmak istiyorsanız bu yazıcıyı kullanın.

Yapısal bileşenler

  • Tekerlekler ve kollar için yanlarda delikli kutu
  • Arka tekerlekler için delikli kutu kapağı ve IR sensörü için bir delik
  • Sol kol
  • Sağ kol
  • İki arka tekerlek için aks
  • kapağı dingile bağlamak için iki dingil konektörü
  • 4 tekerlek (motorlar da bu bağlantıya dahildir)
  • Küçük vidalar (motorlara sığacak şekilde)

Elektrik parçaları

  • Arduino Uno'su
  • Küçük breadboard (Arduino kitini aldım ve onunla birlikte geldi)
  • MCU Kontrollü İki MAX7219 Red Dot Matris
  • Kızılötesi alıcı ve uzaktan kumanda
  • İki TIP 120 transistör
  • Bağlantı telleri (Ben erkekten erkeğe olduğu kadar çok erkek-dişi kablo kullandım ve kısa kablolar yerine uzun kablolar almanızı tavsiye ederim)
  • bir 220 ohm direnç
  • İki dişli motor
  • USB'ye bağlanabilen güç paketleri (cep telefonları için kullanılan taşınabilir olanlar)

2. Adım: Montaj

toplantı
toplantı
toplantı
toplantı
toplantı
toplantı

Yapısal Montaj

3D baskılı parçaların muhtemelen biraz temizlenmesi gerekecek ve 3D baskı işleminde kullanılan yapıştırıcı kalıntılarını gidermek için ince bir kumla zımparalamanızı ve aseton (oje çıkarıcı) kullanmanızı öneririm. Bazı parçalar tam oturmayabilir ve dingilin tam olarak yuvarlak olması ve deliklere tam oturması için benim için zımparalamam gerekiyordu.

Tekerleklerin biraz ayarlanması gerekiyor, arkadaki aksın ve öndeki vidaların boyutlarına uyacak şekilde daha fazla delinmeleri gerekiyordu. Tekerleklerde daha büyük delikler açmak için tekerleklerdeki delikleri delmek için 6 mm'lik bir matkap ucu kullanın.

Bu montaj için çeşitli yapıştırıcılar kullandım, ancak uzun kuruma süresine rağmen sıvı betonun (modelleme yapıştırıcısı) tutuş için en iyisi olduğunu, ancak dağınık olmasına rağmen hızlı kuruması ve iyi tutması gereken şeyler için epoksinin en iyisi olduğunu gördüm.

Meclisin geri kalanı oldukça yalındır:

  1. Aks tutucuları, sızdırmazlığı sağlamak için epoksi kullanarak kutu kapağının arkasına takın.
  2. Aksı aks tutuculardan geçirin
  3. Sıvı beton kullanarak tekerlekleri aksa yapıştırın
  4. Kolları üst deliklerden geçirin ve epoksi kullanarak kol tutucuya yapıştırın
  5. Kutunun kapağını kutuya vidalayın
  6. Kutunun alt kısmında tekerleklerin bulunduğu yerde elektrik bandı kullanın.

Elektrik Montajı

Ön tekerlekler doğrudan motorlara bağlıdır ve robotun her iki yanındaki deliğe sığacak kadar uzun olması için motorda küçük bir vida kullanmanız gerekir. Motorun dönen piminde küçük bir delik olmalı ve oradaki vidayı vidalayabilir ve vidayı kutudaki delikten ittikten sonra vidanın başını tekerleğe yapıştırabilirsiniz.

Breadboard'umun arkası yapışkan bir arkalığa sahipti, ancak sizinki yoksa yapıştırmak için elektrik bandı kullanabilirsiniz. Güvenlik nedenleriyle, panoda olmayan elektrik bileşenlerini takmak için elektrik bandı da kullanıldı. LED ekranlı MCU'lar elektrik bandı kullanılarak göz yuvalarının arkasına takılmış ve motorlar da elektrik bandı kullanılarak kutunun deliklere yakın kenarlarına yapıştırılmıştır. Her ihtimale karşı daha görünmez kılmak için kırmızı elektrik bandı kullandım ve ARCA sürümünüze benzer renkte bir elektrik bandı kullanmanızı tavsiye ederim.

Breadboard ve pinler bu Fritzing görüntüsü gibi ayarlanmıştır. ARCA'yı özelleştirmek için bu şemaya daha fazlasını eklemek istiyorsanız, Fritzing dosyasını Github deposundan indirebilir ve kalbinizin içeriğine göre düzenleyebilirsiniz.

Telleri ilmeklerin etrafından bükerek bağlı kalması için dişli motorlardaki ilmeklere bağladım. Havyaya erişiminiz varsa bu bağlantıları lehimlemek muhtemelen daha iyi bir fikir olacaktır, ancak bu, havyaya sahip değilseniz kolay bir çözümdür.

Güç paketi, programınızı indirmek için Arduino'yu bilgisayara bağlamak için kullanılan kablonun aynısına bağlıdır ve bu, robotun içinde gevşek olduğundan kolayca çıkarılıp şarj edilebilir.

Adım 3: Programlama

Programlama
Programlama

ARCA'nıza tam olarak benimki gibi çalışmasını sağlamak için yükleyebileceğiniz kod burada, kodu kullanmak için aşağıdaki iki kitaplığa da ihtiyacınız var.

Açıklık ve kişiselleştirme adına, ancak size kodumda yol göstereceğim. Robotunuzu özelleştirmiyorsanız veya duyguları değiştirmeyi planlamıyorsanız bu adımı atlamaktan çekinmeyin.

İlk olarak, bu kütüphanelerin fonksiyonlarını ve nesnelerini kullanmama izin veren koduma kullanmak için iki kütüphane ekliyorum. Burada pinlerimi de tanımlıyorum. Pinlerinizi bir önceki adımdaki kurulumumdan farklı yapmaya karar verdiyseniz, burada uygun pinlerle kodunuzdaki değişiklikleri yapın.

Daha sonra, duyguları tanımladım, IR sensörü ve 8'e 8 LED ekranlar için gerekli nesneleri açıkladım ve bazı global değişkenleri tanımladım. Duygular, dizideki onaltılık sayıların her birinin sonuçta ortaya çıkan 8'e 8 görüntüdeki satırları temsil ettiği bir bayt dizisinde bildirilir. Özel duygularınızı yaratmak için, istediğiniz duyguyu 8'e 8'lik bir ızgarada çizmenizi ve ardından ışığın kapalı ve ışığın 1 olduğu her satıra 8 bitlik ikili sayı yazmanızı ve ardından bundan bir onaltılık sayı ve onu uzunluk 8'lik bir diziye koyun. Döngüde kullanılacak bazı global değişkenler de tanımladım; yanıp sönme mekanizmasının değişkenleri ve duyguları depolamak için işaretçiler ve nötr olarak başlamaları için ayarlayın.

Şimdi, test amacıyla seri izlemeyi açtığım kurulum döngüsüne geliyoruz ve bu, kodunuzu farklı IR uzaktan kumandalarla test etmenize yardımcı olacaktır. Ardından, LED kontrol kitaplığındaki işlevleri kullanarak sol ve sağ göz nesnelerini başlattım. Ayrıca dişli motor pinlerini çıkışa ayarladım ve IR alıcısını çalıştırdım.

Döngüde, esasen IR sinyalinin robotun statükosunu değiştirmesini bekler. Yani bir IR sinyali alınırsa ve belirli bir düğmeden gelen kodlardan biriyle eşleşirse, if ifadesi tetiklenir ve duygulara göre sol göz ve sağ göz değerlerini buna göre ayarlar. Sol, sağ, ileri, OK gibi bir hareket tuşuna basıldığında, pinler dijital olarak basılan tuşa göre açık veya kapalı olarak yazılır. IR alıcı kodları hakkında sadece bir not: IR uzaktan kumanda kitaplığında size uzaktan kumandanız için onaltılık kodları verecek bir örnek kod var, düğmelere bastığınızda hiçbir şey olmuyorsa, kodların doğru olduğundan emin olmak için bu programı açın. Tek yapmanız gereken, her düğmeyle birlikte gelen onaltılı sayıyı değiştirmek.

Son olarak, duyguları 8'e 8 ekrana yazdıran bir işleve sahipsiniz. Bu, LED kontrol kitaplığındaki setRow işlevlerini kullanır ve yalnızca oluşturduğunuz dizileri inceler ve satırları buna göre ayarlar. İki parametre alır: sol göz için dizi ve sağ göz için dizi. Bu, bir bayt işaretçisi veya bir işaretçi gibi davranan bir bayt dizisi (yani "nötr" adı) olabilir.

4. Adım: Bonus İpuçları ve Püf Noktaları

Bonus İpuçları ve Püf Noktaları
Bonus İpuçları ve Püf Noktaları

Bu proje sırasında kesinlikle çok şey öğrendim ve hem bu proje hem de Arduino kullanan diğer projeler için geçerli olan bazı ek ipuçlarını burada paylaşmak istedim.

  • Arduino için çok sayıda çevrimiçi kaynak var ve bence en yararlı olanı, açık ve özlü kod örnekleri nedeniyle Arduino web sitesinden geliyor.
  • Tekerleği yeniden icat etmeyin, projenizi kolaylaştırmak için kullanabileceğiniz çok sayıda kit ve önceden oluşturulmuş parça var. Ben bir programcıyım, makine mühendisi değilim ve bu robotu nasıl çalıştıracağımı bulmaya çalışırken çok zorlandım, ancak çevrimiçi satın alacak bir şey bulmak ve tasarımıma uygulamak, kelimenin tam anlamıyla yeniden icat etmek yerine kolaydı. teker
  • Kütüphaneler, Arduino'da ve tüm nesne yönelimli dillerde arkadaşınızdır ve bir nedenle var olurlar. Bunu mikro denetleyicilerle eşleştirin ve 8'e 8 LED programlamak basittir. Bunlardan birini daha önce elle programladım ve sadece biri Arduino'daki her pini kullanıyor ve bir ton kod gerektiriyor. Çok dağınık ve çok eğlenceli değil.
  • 3D yazıcılar havalı ama mükemmel değil ve bazı şeyleri zımparalamanız sorun değil. Bu nedenle 3D baskı yaparken daha büyük olmayı tercih edersiniz çünkü çoğu durumda bu mükemmel uyumu elde etmek için biraz zımparalayabilirsiniz.
  • Güç bir sorun olabilir çünkü gerçekten son dakikada güç kullanımını düşündüm ve 5v pilin işe yarayacağını düşündüm. Sonra, görünüşte rastgele, bazen bir motor veya bir LED ekran çalışmayacaktı. Güç paketine yükselttiğimde, robotun içinde daha hacimli olmasına rağmen daha fazla sorun yoktu.

Önerilen: