Bir akıllı telefonu robotik projeme nasıl entegre edebilirim? [kapalı]


24

Akıllı telefonlar bu günlerde genellikle gemide bir jiroskop, ivmeölçer, pusula, kamera ve GPS sensörü ile birlikte geliyor. Ayrıca, genellikle Wifi ve mobil veri ağları ile internet bağlantısı da vardır. Telefonu bir robot için uzaktan kumanda olarak kullanmanın pek çok vakasını gördüm, ancak bana göre, telefonun kendisi özerk bir robot için mükemmel bir hafif bilgi işlem ve algılama platformu gibi görünüyor.

Gördüğüm en büyük engel, aktüatörlerle etkileşimde bulunmak. Örneğin masa üstü bir robotu veya kontrol servosunu yönlendirmek için motorları kontrol edebilme. Bir mikrodenetleyiciye bağlanmak ve haberleşmek de bir engel olabilir.

Bir robot hobisi olarak, robotik projelerimle akıllı telefonumun gücünden yararlanabilmek için bu ve diğer engellerin üstesinden nasıl geleceğimi bilmek istiyorum.


Sadece bir iOS seçeneği eklemek için SESO iPhone'u bir robot kumandası olarak görün
Greenonline

Yanıtlar:


19

Android Aksesuar Geliştirme Kiti (ADK) ihtiyacınız olan her şeyi yapmalıdır.

ADK

Özellikle Android ile etkileşimde bulunmak için tasarlanmış bir Arduino kurulu. İkisini Bluetooth veya USB üzerinden bağlayabilirsiniz (veya WiFi / Ethernet, sanırım).

Tüm mimari açık olduğundan, her bir parçayı en iyi olduğu şey için kullanabilirsiniz. Telefonun dahili sensörlerinden veri almak ve ekranı kontrol etmek için Android kodunu yazarsınız. Ve Arduino kodunu, telefonların gelmediği aktüatörleri, servoları ve diğer sensörleri kontrol etmek için yazıyorsunuz. İkisi arasında iletişim kurmak için kod Google üzerinden açık kaynak sağlanır.

Gönderen Arduino Blog :

Android Açık Aksesuar Geliştirme Kiti (ADK), Arduino açık kaynaklı elektronik prototip platformuna, aksesuarın donanım tasarım dosyalarına, aksesuarın donanım yazılımını uygulayan koda ve aksesuarla etkileşimde bulunan Android uygulamasına dayalı bir Android USB aksesuarının bir uygulamasını sağlar. aksesuar. Donanım tasarım dosyaları ve kodları ADK paket indirmesinde bulunur.

Örneklerin çoğu, bir saat gibi bir donanım aksesuarı için telefonu bir grafik ara yüz olarak kullanmak üzere tasarlanmıştır. Ancak, telefonun sensörlerine de erişememeniz ve verileri ileri geri iletmeniz için hiçbir neden yoktur.

Adafruit, mağazalarının sayfasında robot yapmak için bile kullandığından bahseder. ADK için :

Hızlı Arduino ADK ile Android telefon donanım geliştirme hızlı parça veya sadece cep telefonu robot tasarımı ! Arduino ADK, güçlü ATmega2560 (veri sayfası) tabanlı bir mikrodenetleyici kartıdır. Android tabanlı telefonlara bağlanmak için bir USB ana bilgisayar arayüzü ve ADK'ye takılıyken telefonu DC gücünden şarj etmek için bir güç kaynağı dönüştürücü içerir.

(vurgu madeni)


11

Diğer bir seçenek ise, IOIO-OTG kartıdır :

IOIO-OTG kartı

SparkFun ürün tanımı işlevselliğini açıklanmaktadır:

PC'nizdeki veya Android cihazınızdaki bir uygulamayı GPIO, PWM, ADC, I2C, SPI ve UART gibi düşük düzeydeki çevre birimlerine bağlayan bir köprü görevi gören bir PIC mikro denetleyicisine sahiptir. Uygulama düzeyinde bir kitaplık, bu düşük düzeyli çevre birimleri için kontrol kodu yazmanızı sağlar, diğer Java uygulamalarını yazdığınız gibi!

Bu yazı tahtası istediğiniz her şeyi yapmalı ve hatta başlamanıza yardımcı olacak güzel bir rehbere sahip.


6

Gördüğüm gibi asıl sorun gerçekten aktüatörlerle etkileşime girmiyor - dijital olarak kablosuz aktarımı için iyi bir yolunuz varsa (daha iyisi analog veya PWM yapacak kadar iyi bir kanal olurdu) sinyalleri, bir motor sürücü yongası (örneğin L293D) ve gitmesi iyi. Servolar için, bakliyat ile başa çıkabilmek için iyi bir tepki süresine ihtiyacınız vardır. PWM özelliğine sahip bir kanalınız varsa, bu kanal zaten yüksek bir baud içerdiğinden zor olmamalıdır. Yavaş bir kanalınız varsa, doğru darbe zamanlaması gerektirdiğiniz için servolar mümkün olmayabilir.

Gördüğüm ilk seçenek (oldukça hantal olmasına rağmen) bir Raspberry Pi almak, ethernet üzerinden bir kablosuz yönlendiriciye bağlamak ve telefonu aynı kablosuz olarak bağlamak. Şimdi telefonunuz için girişe bağlı olarak Pi'ye istek gönderen basit bir uygulama yazın ve bunları kullanan Pi için başka bir sunucu yazın. IMO, hantal ve biraz zor olabilir, ama bu oldukça genişletilebilir. Ayrıca, yönlendiriciyi devre dışı bırakıp bunu sabitleyebilirsiniz (veya sıcak nokta kullanın ve yönlendiriciyi tamamen ortadan kaldırın).

Başka bir seçenek, burada gösterilene benzer bir bluetooth denetleyicisi kullanmaktır . Bunu daha önce kullanmamıştım, ancak bu sorunu çözmek için bir mikrodenetleyiciye ihtiyacınız olacak gibi görünüyor. Sanırım RX / TX pimlerini doğrudan bir arduinodaki TX / RX'e bağlayabilirsiniz, ancak bundan emin değilim.

Daha önce XBee / ZigBee kullanıyorsanız, bluetooth arısını denemek isteyebilirsiniz .

Son bir seçenek, telefonun USB bağlantı noktasını geleneksel bir kablosuz kontrol kurulumuyla kullanmaktır (XBee / ne olursa olsun) - ancak bunun için sürücü yazması gerekir.


5

Evet, akıllı telefonlarda GPIO pinlerinin olmaması utanç verici. Zaten robot üzerinde çalışan ROS'unuz varsa, bu uygulamayı telefondaki sensör paketine erişmek için bir Android telefonda kullanabilirsiniz.


4

Nexus 7 gibi birçok yeni Android cihazı, 'USB Host Mode'un' desteklendiğini söylemenin güzel bir yolu olan USB On The Go (OTG) özelliğini destekliyor. Bu gibi durumlarda, 1 dolardan daha az olan doğru kablo ile uyumlu herhangi bir USB cihazı kullanılabilir. USB Host modu için donanımı olan Arduino'nun özel bir versiyonuna ihtiyacınız yok.

Bunu, Leonardo veya Teensy 2 gibi 'normal' bir Arduino’nun bir OTG kablosuyla bağlandığında bir Android telefona TTY (örn. Seri port) cihazı olarak göründüğünü bilecek kadar deneyimledim.

Bu makale , bir Android uygulamasından Arduino ile iletişim kurmak için Android USB Ana Bilgisayar API'sinin nasıl kullanılacağına dair derinlemesine ilerlemektedir. Android 3.1+ gerektirir ve cihazı rootlamanızı gerektirmez.

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.