• Arduino'yu Android'e bağlamanın altı kolay yolu. Arduino'yu telefonunuzdan kontrol etmek

    Baştan başlamak.

    Yonga ESP 8266

    ESP8266 çipi özellikle Nesnelerin İnterneti için tasarlanmıştır. Bu çipi kullanmanın iki seçeneği var. Birincisi, bir mikro denetleyiciye bağlanmak ve AT komutlarını kontrol etmek için bir UART-WIFI köprüsü gibidir. İkinci seçenek ise çipin kendisinin kontrol kontrolörü rolünü oynamasıdır. Tahminlerime göre elektronik meraklıları arasında çip daha çok kontrol denetleyicisi olarak kullanılıyor.

    Çip yetenekleri:

    • 802.11 b/g/n desteği
    • Düşük güç tüketimine sahip dahili 32 bit MCU
    • Dahili 10 bit ADC
    • Gömülü TCP/IP yığını
    • Dahili RF sinyal amplifikatörü
    • Anten çeşitliliği desteği
    • Wi-Fi 2,4 GHz, WPA/WPA2 desteği
    • STA/AP/STA+AP modlarını destekleyin
    • SDIO 2.0, (H) SPI, UART, I2C, I2S, IR Uzaktan Kumanda, PWM, GPIO
    • STBC, 1x1 MIMO, 2x1 MIMO
    • A-MPDU ve A-MSDU toplama ve 0,4 sn koruma aralığı
    • çıkış gücü 802.11b modunda +20 dBm

    Çip son derece entegre bir WiFi çözümüdür. İhtiyacımız olan her şeyi çipin içine sığdırmayı başardık. Bir mikro devrenin çalışması için gereken tipik minimum devre yalnızca yedi elemandan oluşur.

    Benzer çözümlerin bileşen sayısını karşılaştırmak için fotoğraflar.

    Bazı kaynaklara göre tüm bu güzellik, 32 bit Xtensa LX106 işlemci çekirdeği, diğer kaynaklara göre Tensilica'nın L106 Diamond'ı tarafından kontrol ediliyor. Mikroskop altında çip, birbirine bağlı unsurlardan oluşan bir şehir gibi görünüyor.

    En önemli özelliklerden biri enerji tüketimidir. ESP8266'da bu gerçekten şaşırtıcı:

    • Sürekli iletim modunda 215mA.
    • Erişim noktasıyla bağlantıyı sürdürme modunda 1mA
    • Gerçek zamanlı saat çalışmasıyla derin uyku modunda 10uA
    • 0,5uA Güç modu KAPALI

    Uyanmak ve bir paketi iletmeye başlamak için gereken süre 2 ms'den azdır. Örneğin, sıcaklığı her 100 saniyede bir ölçerken ve bir erişim noktasına bağlanıp her 300 saniyede bir (çipin uyuduğu sürenin geri kalanında) biriken verileri aktarırken, ortalama akım yaklaşık 1 mA olacaktır. Bu, 2600 mAh kapasiteli üç adet AA pille üç aydan fazla süren bir çalışmadır.

    Modüller hakkında ESP

    Şu anda ESP8266 yongalarındaki en popüler modüller ESP-01, ESP-02, ESP-03, ESP-04, ESP-05, ESP-06, ESP-07, ESP-08, ESP-09, ESP-10'dur. ESP-11, ESP-12, ESP-12E. Kablolu pimlerin sayısı, harici bir anteni bağlamak için bir konektörün varlığı ve boyutları bakımından farklılık gösterirler.

    Artık ESP8266'nın ağabeyini satışta bulabilirsiniz - bu ESP-32 modülüdür. Aliexpress'de şu ana kadar sadece iki satıcı bu modüllere sahip. Fiyat, ESP-12E için 110 rubleye karşılık yaklaşık 250 ruble. Yeni modülde daha da fazla güzellik olacak.

    ESP-32'nin temel özellikleri. (görüntülemek için tıklayın)

    Wifi
    - 802.11 b/g/n/e/i
    - 802.11 n (2,4 GHz), 150 Mb/sn'ye kadar
    - 802.11i güvenlik özellikleri: ön kimlik doğrulama ve TSN
    - 802.11 e: QoS trafiği önceliklendirmesinden tam olarak yararlanmak için çoklu kuyruk yönetimi
    - Wi-Fi Korumalı Erişim (WPA)/WPA2
    - Wi-Fi Korumalı Kurulum (WPS)
    - UMA uyumlu ve sertifikalı
    - Anten çeşitliliği ve seçimi
    - A-MPDU ve A-MSDU toplama
    - WMM gücü ve U-APSD
    - Parçalanma ve birleştirme
    - Wi-Fi Direct (P2P), P2P Keşif, P2P Grup Sahibi modu ve P2P Güç Yönetimi
    - Altyapı BSS İstasyonu modu/ Soft AP modu
    - Otomatik işaret izleme / tarama
    - Donanım hızlandırıcılara sahip SSL yığınları

    Bluetooth
    - CMOS tek çipli tam entegre radyo ve temel bant
    - Bluetooth Piconet ve Scatternet
    - Bluetooth 4.2 (BR/EDR/BLE)
    - Uyarlanabilir Frekans Atlamalı (AFH)
    -SMP
    - Harici güç amplifikatörü olmayan Sınıf-1, Sınıf-2 ve Sınıf-3 verici
    - +10 dBm tra yayma gücü
    - -90 dBm hassasiyete sahip NZIF alıcısı
    - 4 Mbps'ye kadar yüksek hızlı UART HCI
    -SDIO/SPI HCI
    - CVSD ve SBC
    - Düşük güç tüketimi
    - Minimum harici bileşen

    CPU ve Bellek
    - Xtensa® Çift Çekirdekli 32 bit LX6 mikrofon işlemcileri, 400MIPS'e kadar
    - 128KB ROM
    - QSPI Flash/SRAM, 4 x 16 MB'a kadar
    - Güç kaynağı: 2,5V ila 3,6V
    - 416 KBSRAM

    Saatler ve Zamanlayıcılar
    - 2 MHz ila 40 MHz kristal osilatör
    - Kalibrasyonlu dahili 8 MHz osilatör
    - Kalibrasyonlu RTC için harici 32 kHz osilatör
    - Kalibrasyonlu dahili RC osilatörü
    - Her grupta 3 x 64 bit zamanlayıcı ve 1 x gözlemci içeren iki zamanlayıcı grubu
    - Saniyenin altında doğrulukla RTC zamanlayıcısı
    -RTC gözlemcisi

    Gelişmiş Çevresel Arayüzler
    - 16 kanala kadar 12 bit SAR ADC
    - 2 x 10 bit D/A dönüştürücü
    - 10 x dokunmatik sensör
    - Sıcaklık sensörü (-40 +125°C)
    -4xSPI
    - 2 adet I2S
    - 2xI2C
    - 2 adet UART
    - 1 ana bilgisayar (SD/eMMC/SDIO)
    - 1 ikincil (SDIO/SPI)
    - Özel DMA ve IEEE 1588 desteğine sahip Ethernet MAC arayüzü
    -CAN 2.0
    - IR (TX/RX)
    -Motor PWM'si
    - 16 kanala kadar LED PWM

    Güvenlik
    - WFA, WPA/WPA2 ve WAPI dahil olmak üzere tümü desteklenen IEEE 802.11 standart güvenlik özellikleri
    - Güvenli Önyükleme
    - Flaş şifreleme
    - 1024 bit OTP, müşteriler için 768 bit'e kadar
    - Kriptograf donanım hızlandırması:
    - AES 128/192/256
    - HASH (SHA-2) kütüphanesi
    -RSA
    - Radom Sayı Üreteci

    CAN veri yolu için belirtilen destek özellikle ilginçtir. Yakında araç sistemlerini kontrol etmek ve teşhisleri Wi-Fi üzerinden doğrudan gerçekleştirmek mümkün olacak. mobil cihaz.

    Ama hadi ESP-12E'ye dönelim. NodeMCU platformu bu modül temel alınarak oluşturulmuştur.

    Platform hakkında

    Platform, ESP-12 modülünün yeteneklerini kullanıyor ve kendi mikro denetleyicisine sahip değil. Çinliler farklı arayüz dönüştürücülere sahip birçok klon üretiyor ve platformların kendisi de farklı boyutlara sahip.

    Varsayılan olarak platform, LUA komut dosyası dili yorumlayıcısını destekleyen NodeMCU ürün yazılımı ile yüklenir. Komut dosyaları panonun davranışını tanımlar.

    Arduino IDE'yi kullanarak programlar yazıp yüklüyorum. Platformla çalışmak için kitaplıkları yüklemeniz gerekir. Kütüphanelerle birlikte gelir çok sayıda program örnekleri.

    Kütüphanelerin ortama kurulması arduino IDE birlikte çalışmak DüğümMCU .

    Kitaplıkları yüklemek için şu adrese gitmeniz gerekir: Arduino ayarları IDE ve “Ek kart” alanına http://arduino.esp8266.com/package_esp8266com_index.json adresini girin.

    Listeyi aşağı kaydırın ve ESP8266 Topluluğu tarafından sunulan ESP8266'yı bulun ve kitaplıkları yükleyin.

    Kurul Yöneticisini kapatın. "Araçlar"a gidin ve sürümünüze göre NodeMCU kartını seçin.

    Hangi modülü kurduğunuzu ve hangi sürümü seçeceğinizi anlamak için modüle bakın. Üzerindeki kontaklar üç taraftaysa ESP-12E, sadece iki taraftaysa ESP-12'dir.

    NodeMCU platformunun pin ataması

    Kitaplıklar tarafından desteklenen işlevler arduino IDE .

    Açıklamanın tamamını burada https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_ru ve Rusça olarak okuyabilirsiniz. Ana işlevlerden bahsedeceğim.

    GPIO, Arduino ile aynı şekilde kontrol edilir. pinMode, digitalRead, digitalWrite, analogWrite işlevleri her zamanki gibi. analogRead(A0), buna göre A0 analog girişinden ADC değerini okur. analogWrite, yazılım PWM'yi etkinleştirir. PWM frekansı yaklaşık 1kHz'dir. PWM aralığı 0'dan 1023'e, Arduino için hatırladığımız gibi 255'e kadardır. Kesintiler, GPIO16 hariç herhangi bir GPIO'da da desteklenir. millis() ve micros() işlevleri, modülün başlatılmasından bu yana geçen milisaniyeleri ve mikrosaniyeleri döndürür. NodeMCU'nun gecikme () işlevi Arduino'nunkinden farklı çalışır. Burada gecikmenin kullanılması memnuniyetle karşılanır ve hatta büyük programlarda gereklidir. Modül WiFi bağlantısını desteklediğinde, çiziminiz dışında birçok arka plan görevini yerine getirmek zorundadır. SDK kitaplıklarının WiFi ve TCP/IP işlevleri, loop() işlevinizin her döngüsü tamamlandıktan sonra veya gecikme(...) sırasında kuyruktaki tüm olayları işleme yeteneğine sahiptir. Kodunuzun yürütülmesi 50 milisaniyeden uzun süren bölümleri varsa WiFi yığınının düzgün çalışmasını sağlamak için gecikme(...) kullanmanız gerekir. Ancak DelayMicroseconds() diğer görevlerin yürütülmesini engeller ve 20 milisaniyeden uzun gecikmeler için önerilmez. Seri, PIO1(TX) ve GPIO3(RX) üzerinde çalışan donanım UART0'ı kullanır.

    Dört röleyi mobil uygulamadan kontrol etme programı

    Kütüphaneler kurulduktan sonra platforma 4 röleden oluşan bir bloğu sırasıyla GPIO 5, 4, 0, 2'ye karşılık gelen D1, D2, D3, D4 pinlerine bağlarız. Daha sonra gücü platforma ve röle bloğuna bağlarız. Sahip olduğum röle bloğunun bir özelliği var. Röleyi açmak için pimi toprağa çekmeniz gerekir. Yani mantıksal 0 röleyi açar, 1 ise kapatır.

    Röle blok kontrol programı için üç seçeneği ele alacağım.

    İlk program popüler aRest kütüphanesini kullanır https://github.com/marcoschwartz/aREST

    Bu, GPIO'yu http://192.168.0.10/digital/6/1 gibi http istekleri aracılığıyla kontrol etmenize olanak tanıyan bir API işleyici kitaplığıdır ve yetenekleri: GPIO'yu Dijital veya Analog (PWM) olarak ayarlayın, pini 0 veya 1 olarak ayarlayın. Dijital mod, değişkenleri döndürür ve pinlerin durumunu okur.

    Programı kütüphaneyle birlikte gelen örneklerden derleyip indirdim. Kullanım açısından daha kolay olamazdı.

    Kurulumda, erişim noktası ile rapor edilen bir bağlantı kurulur. COM bağlantı noktası. Ve döngü şöyle görünür:

    geçersiz döngü() (

    WiFiClient istemcisi = sunucu.available();

    if (!istemci) (

    geri dönmek;

    }

    while(!client.available())(

    gecikme(1);

    }

    rest.handle(istemci);

    }

    Tüm. Orada ne olduğu belli değil. Çalışıyor ama aslında hiçbir şey programlamıyoruz. Biz sadece programı çalıştırıyoruz, gerisini kütüphane hallediyor. Ancak GPIO ile "elle" nasıl çalışılacağını öğrenmek daha ilginç. Evet bu arada programım belirsiz bir süre sonra dondu. Bazen 40 dakika sonra, bazen 5-6 saat sonra. 8 saatlik bir iş gününün ardından eve geldiğimde programın her zaman işe yaramadığını fark ettim. Aynı zamanda yönlendirici şunu gösterir: Wi-Fi istemcisi bağlanıldı ve bir IP adresi verildi. Kütüphaneye olan ilgimi hızla kaybettim. Rusça forumlarda aRest'in donmasıyla ilgili herhangi bir şikayet görmedim. Zaten NodeMCU'dan veya dengesiz güç kaynağından dolayı suçluydum, ancak daha sonraki deneyler benim durumumda programın suçlu olduğunu kanıtladı. Büyük ihtimalle bende var özel durum. Kütüphanenin çalışmadığını söylemiyorum.

    aRest'i bulduk.

    İkinci program bağımsız olarak yazılmıştır, yalnızca bir eklenti kitaplığı kullanır #include . Program basittir ve web istekleri aracılığıyla Pinlerin nasıl yönetileceğini açıkça gösterir. Bu program yalnızca D1-D4 pinlerindeki mantıksal durumları kontrol edebilir ve programın çalışma süresine ilişkin bilgileri bir test isteği olarak görüntüleyebilir. Gerekirse, kalan GPIO'lar için bir program ekleyebilir, ona PWM üretmeyi "öğretebilir" vb. Pin D4, ESP-12E modülünde bulunan mavi bir LED'e bağlanır. aRest donması yaşadıktan sonra, 4 numaralı rölenin D4 ile olan bağlantısını geçici olarak kestim ve bu LED'in yanıp sönmesi için programıma birkaç satır ekledim. İşten sonra eve geldim ve baktım; yanıp sönüyordu, bu da çalıştığı anlamına geliyordu. Cep telefonumdan kontrol ettim ve kesinlikle işe yarıyor. Program 8 gün donmadan çalıştı, daha uzun süre çalışırdı ama elimde tek bir NodeMCU var o yüzden çalışmaya devam ettim ve programın durdurulması gerekti.

    Programı derleyip seri port monitörüne yükledikten sonra program bağlantı durumunu ve platformun erişim noktasından alacağı IP adresini raporlayacaktır.

    Bu iki programın röle bloğunu kontrol etmek için Android işletim sistemi çalıştıran bir cep telefonu için bir uygulama oluşturuldu. Uygulama oldukça basit, App Inventor 2'de oluşturuldu. Uygulamanın oluşturulma sürecini daha sonra anlatacağım. Birincisi, röle kontrol çözümü için üçüncü seçenek.

    Üçüncü seçenek karmaşık. Tek bir geliştiriciden platform donanım yazılımı ve Android programı. Blynk hizmetini kullandım. Grafiksel kontrol panelleri oluşturmaya yönelik bulut tabanlı bir hizmettir ve çok çeşitli mikrobilgisayarlar ve mikrodenetleyiciler için uygundur.

    Blynk ile kontrol edilen kendi projenizi oluşturmak için çok az şeye ihtiyacınız var: uygulamayı yükleyin (iOS ve Android versiyonları mevcuttur) veya web formunu kullanın. Burada tek adımda kaydolmanız gerekecek - e-postanızı ve şifrenizi girin. Gerçek şu ki Blynk bir bulut çözümüdür ve kayıt olmadan herhangi bir kullanıcı donanım üzerinde kontrol sahibi olabilir.

    İlgilenenler sunucuyu yerel olarak kurabilirler. Bu durumda internet erişimine gerek yoktur.

    Sürecin kendisini anlatacağım. İki bölümden oluşur.

    İlk kısım. Blynk'i şuradan indirin: Google Oyun. Programı kurun ve çalıştırın

    1. “Yeni Proje Oluştur”a tıklayın
    2. Projenin adını girin ve “Donanım modeli” alanına NodeMCU'yu seçin. Auth Token'ı ezberleyin veya bir kağıda yazıp e-postanıza gönderin. “Oluştur”a tıklayın.
    3. Köşedeki “+”ya tıklayın.
    4. "Düğme" seçeneğini seçin. Daha önce de fark ettiğiniz gibi projeye eklenen her unsur enerjiye mal oluyor. Varsayılan olarak size 2000 verilir. Widget ekledikçe enerji tüketilir. Daha fazla widget yerleştirmeniz gerekiyorsa, parayla enerji satın almanız gerekecek.

    1. İşte butonumuz. Üstüne tıkla. Ayarları açılacaktır.
    2. Bir ad, üzerinde çalışacağı pini, düğme veya anahtar modunu ve "açık" ve "kapalı" durumları için ad seçin. Uygulamadaki bir düğmeden gelen sinyali tersine çeviremezsiniz. Rölelerim için: çıkışta düğme kapalı - 0, röle açık ve tam tersi. Sunucuyu yerel bilgisayarınıza yükleyerek mantığın nasıl çalıştığına ilişkin kuralları belirleyebilirsiniz.
    3. Daha sonra sağ üstteki üçgene tıklayın. Program düzenleme modundan çalışmaya geçer.
    4. Düğmeler çalışıyor. Dikkat çeken nokta ise çoklu dokunmanın desteklenmesi. 6 tuşa aynı anda basmayı denedim. Her şey çalışıyor (açıklamaya göre telefonun 10 basınç noktası var).

    İkinci kısım - bu NodeMCU ürün yazılımıdır. Blynk kitaplıklarını https://github.com/blynkkk/blynk-library indirin ve yükleyin. Arduino IDE'yi başlatın - Dosya - Örnekler - Blynk - BoardsAndShields - ESP8266_Standalone.

    Örneğe gizli posta parçasındaki Kimlik Doğrulama Simgesini girin. Ayrıca WiFi ağınızın SSID'si ve ona erişim şifresi.

    Tüm. Derleyin ve dikin. Her şey ilk seferde işe yaradı. Kullanıma tabi Bulut hizmeti internete erişimi olmalı cep telefonu ve NodeMCU.

    İçinde bir uygulama oluşturmaUygulama Mucit.

    App Inventor, Android uygulamaları için kullanıcının şunları yapmasını gerektiren görsel bir geliştirme ortamıdır: minimum bilgi programlama. Başlangıçta Google Laboratuvarlarında geliştirildi, bu laboratuvarın kapatılmasının ardından Massachusetts Teknoloji Enstitüsü'ne devredildi. App Inventor'da programlama için kullanılır GUI Scratch ve StarLogo TNG'ye çok benzeyen görsel bir programlama dili. Bir uygulamanın nasıl yazılacağını anlamak o kadar da zor değil. Rusça'da işe yarar herhangi bir belge bulamadım, ancak YouTube'da çok sayıda video var.

    Hizmetin iki ana sekmesi vardır. Bunlardan ilki "Tasarımcı", burada görsel editör bileşenler yerleştirilir. App Inventor hizmetinin bir özelliği sayesinde arayüz geliştirme hızı çok yüksektir. Bir mobil cihaza MIT App Inventor 2 Companion uygulamasını yüklemeniz gerekir. Çalıştırın. Sitede Connect - AI Companion'ı seçin. Bir QR kodu oluşturulacak ve ekranda görüntülenecektir. Uygulamada "QR kodunu tara" seçeneğine tıklayıp kodu taramanız gerekiyor. Birkaç saniye sonra uygulama mobil cihazın ekranında görünecektir. Yeni öğeler veya değiştirilmiş herhangi bir veri, kelimenin tam anlamıyla bir saniye içinde, bir mobil cihazda doğrulama için kullanılabilir hale gelir.

    Ekranda şunlar bulunur: IP adresini girmek için bir giriş alanı, adresi ayarlamak ve test isteği göndermek için bir düğme. Aşağıda “WebViewer” bileşeni bulunmaktadır; NodeMCU’dan yanıt olarak gönderilen sayfayı görüntüleyecektir. Aşağıda röleyi açıp kapatan iki düğmeden oluşan 4 grup bulunmaktadır. Ayrıca bir “TinyDB” bileşenine de ihtiyacımız var; sorgu oluşturmak için onun içinde bir değişken saklayacağız. Rölenin sesli komutlarla kontrol edilebilmesi için test amacıyla bir ses tanıma bileşeni de ekledim. Bu işlevi kullanmak son derece elverişsiz olduğundan, metin tanıma eylemlerinin algoritmasını açıklamayacağım. Önce düğmeye basmanız gerekiyor, ardından Google'dan "konuş" yazan bir pencere beliriyor, ardından komut telaffuz ediliyor. Üstelik komutun telaffuzu bittikten sonra tanıma sistemi bir süre bekler ve ardından her şeyin söylendiğini fark eder. Daha sonra konuşma tanıma ve metin yanıtı gelir. Önceden hazırlanmış ifadelerle karşılaştırılması gerekir. Ve ancak bundan sonra komut yürütülecektir. Düğmeye dokunmak daha kolaydır.

    İkinci sekmeye "Bloklar" adı verilir. Burada uygulamanın “yazılım” kısmının tamamı bloklar halinde belirtilmiştir.

    Burada programın algoritması bloklardan derlenmiştir. Algoritmanın ana kısmı ekran görüntüsündedir. Burada olup biteni anlatacağım.

    • SET.Click olduğunda - “set” düğmesine basıldığında IP fonksiyonunu çağırın
    • Daha sonra IP fonksiyonunun kendisi gelir. Giriş alanındaki IP adresini TinyDB'ye kaydeder ve başına “http://” ekler. Daha sonra WebViewer.GoToUrl TinyDB’den adresi alıp sonuna “/test” ekleyip bu adrese gidiyor. “http://192.168.0.1/test” alıyorum. WebViewer'da ekrana testin geçildiği bilgisi yüklenir ve NodeMCU'nun sürekli çalışma süresi görüntülenir. IP adresi yanlış girilirse sayfanın açılamadığına dair bir mesaj alırız.
    • ON1.Click (ON1 butonun adıdır) ON1 fonksiyonunu çağırdığında.
    • ON1 işlevi TinyDB'den adresi alır, buna "/D1/0" ekler ve sonuçta "http://192.168.0.1/D1/0" olur ve isteği gönderir. NodeMCU, alınan bu istek, D1 pininin 0’a ayarlanması gerektiğini fark eder. WebViewer’da gördüğümüz “GPIO set OK” yanıtını çalıştırır ve gönderir.
    • Bir sonraki düğme olan OFF1 de aynı şeyi yapar, yalnızca sonuna “/D1/1” ekler. Lojik 1'i pin D1'e ayarlar. Röle kapanır.

    Geri kalan düğmeler de benzer şekilde hareket ederek pin numaralarını ve istekteki gerekli durumu değiştirir.

    Her şey kontrol edildikten ve çalışmaya başladıktan sonra Oluştur - Uygulama'ya tıklayın (.apk'yi bilgisayarıma kaydet). Uygulama apk dosyası derleniyor ve indiriliyor. Daha önce uygulamaların kurulumuna izin verilmiş olan mobil cihazınıza yüklenmelidir. Üçüncü Taraf Kaynaklar. Artık uygulama kendi kendine başlıyor. Artık AI Companion'a gerek yok ve İnternet bağlantısına da gerek yok.

    Android cihazınızın WiFi yükünü yönetmesi için bu şekilde kolayca bir uygulama oluşturabilirsiniz.

    NodeMCU ve cep telefonu bağlı ev yönlendiricisi. Hiçbir amacın olmadığı yerde Wi-Fi erişimi NodeMCU, mobil cihazı doğrudan ESP8266'ya bağlamak için bir erişim noktası görevi görebilir. Örneğin garaj kapısının açılmasını kontrol etmek ve garajdaki ışıkları açmak.

    Not: Henüz platformdaki erişim noktasını yükseltemedim. Kütüphanelerle birlikte gelen örnek derlenmiyor. Arduino IDE derleme sırasında takılıyor. Hala bunu çözmem gerekiyor.

    P.P.S. Konuyu platforma taşıdım ancak henüz yeterli çalışmayı başaramadım. Komutlar ya birkaç saniyelik bir gecikmeyle yerine getirildi ya da hiç yerine getirilmedi. Modülün araştırması şimdilik askıya alınmıştır. Araba bakımıyla meşgul.

    Bir RC araba bir WiFi araba olabilir mi?

    Bir RC araba iyidir, ancak ucuz RC arabaların menzili sınırlıdır ve yalnızca kit içinde verilen özel bir uzaktan kumandayla kontrol edilir.

    Yaklaşık 30 dolara esnek süspansiyonlu ve arazi lastikli bir RC Jeep 4x4 satın aldım. Makineyle oynadıktan sonra Wi-Fi ve Android kullanılarak geliştirilebileceğine karar verdim. Biraz vakit geçirdikten sonra kartı makineden tamamen çıkardım. Bu kart üzerindeki voltajları ölçtüm ve bir motor kontrol sistemi geliştirdim. Arduino yardımı. Orijinal kontrol sistemi hız kontrolü için PWM kullanmaz. Araç, engellerin üzerinden çok düşük bir vitesle ve bunun sonucunda da çok yavaş bir şekilde geçmek üzere tasarlandı. Devrem PWM kullanıyor.

    Birkaç aydır Arduino kullanıyorum. Ayrıca Duemilanoe Arduino'nun WiFI ile deneme yapması için asynclabs WiFi Sheild'i satın aldım. Arduino IDE'ye kurulu bir kütüphane ile birlikte gelir. WiFi kullanarak motorları ve hareket yönünü kontrol etmenizi sağlayan bir program yapabildim.

    Yardımla Görsel stüdyo Araç sunucusuna bağlanan ve ona komutlar veren bir program penceresi geliştirdim. Birkaç denemeden sonra arabayı kontrol etmek için ivme ölçeri kullanan bir Android uygulaması yazdım.

    Araçlar ve öğeler

    Bu ortak liste Bu projede kullanılan araçlar ve öğeler. Eagle belgeleri tam olarak belirtir özellikler kullanılan bileşenler.

    Multimetre
    Havya
    Lehim
    Tornavidalar
    Devre kartlarını aşındırmak için çözüm
    Folyo fiberglas
    Pense
    arduino
    AsyncLabs WiFi Kalkanı
    RJ45 konnektörleri
    H-köprü motor sürücüsü
    Kondansatörler

    Motor sürücüsü

    Eagle'ı kullanarak bu devreyi tasarladım ve yaptım baskılı devre kartı onun için. Arduino için motor sürücüsü ve güç regülatörü olarak görev yapar.
    Bu, ana ve direksiyon motorlarına ve Arduino'ya güç sağlamak için standart bir 7,2V pilin kullanılmasına olanak tanır.

    Bu devre, motorları kontrol etmek için SN754410 çift entegre H-köprü sürücüsünü kullanır. Sürücü kontrol pinleri, AsyncLabs WiFi Sheild'e bağlanan bir RJ45 kablosuna bağlanır.

    Arduino Kalkanı

    Eagle'daki SparkFun kütüphanesini kullanarak, pinleri WiFi Shield'a geçirecek ve bir RJ45 konektörü ve 2 vidalı terminal aracılığıyla motor sürücüsüne bağlanacak bir Arduino Shield tasarladım.

    RJ45 pin pin çıkışı çok önemlidir. Bağlantıdaki bir hata öngörülemeyen sonuçlara yol açabilir ve kartı yeniden yapmanız gerekecektir.

    PCB aşındırma

    Bu konu defalarca işlendi, detayına girmeyeceğim.
    Kullanıyorum ve bana yakışıyor ve tecrübeyle mükemmel sonuçlar veriyor.

    Tahtayı kasaya tutturmak için Velcro kullanıldı. Şanslıydım çünkü... Arabamın boru şeklindeki çerçevenin altında elektronik cihazlar için çok fazla alanı vardı.
    Motor sürücü kartı ile diğer kartlar arasındaki bağlantının fotoğrafını çekmeyi unuttum ama gayet iyi oturdu ve kasada fazla yer kaplamadı.

    programı

    Kodum yeterince verimli olmayabilir ama işe yarıyor.

    daktilo

    AsynLabs Wifi Sheild ile aldığım SocketServer örneğini temel alarak CarServer'ı oluşturmayı başardım.
    Kablosuz ağ bilgilerinizi Arduino koduna girmeniz gerekecektir. Makine açıldığında yönlendiriciyle bağlantı kurması için ona 15-45 saniye verin. WiFi Shield üzerindeki kırmızı LED, bağlantının kurulduğu anlamına gelir.

    Bu programı C# ve MS Visual Studio 2008 kullanarak yaptım. Güzel bir pencere yaptım ve araba oklarla kontrol edilebiliyor.

    Neden arabayı telefonunuzdan kontrol etmiyorsunuz?

    Bu düşünce DroidX'i satın aldıktan yaklaşık bir hafta sonra aklıma geldi. Denemeye başladım ve sonunda Android SDK'yı kullanmaya başladım. Kontrol için ivmeölçer kullanan benzer uygulamalar buldum. Bu uygulamalara bakarak kendim yazdım.

    Arduino kodunda belirtilen IP ve bağlantı noktasını yapıştırın. Telefonunuzu yatay tutun. Daha sonra ileri gitmek için kendinizden uzağa, geri gitmek için kendinize doğru eğin. Telefonunuzu direksiyon gibi kullanın.
    Bu benim ilk büyük Android uygulamam. Hala bazı hatalar var ama çoğunlukla iyi çalışıyor.

    Bahçenizde WiFi ile 4x4 aracınızı sürün!

    Bu projeyi oluştururken harika zaman geçirdim. Pek çok bilgi ve yeni beceri kazandım ve artık telefonumdan kontrol edilebilen 4x4 bir arabam var.

    Nereye gittiğimi görebilmem için ön camın arkasına bir kamera takmam gerekiyor. Düşük güç tüketiyor olmalı ve ayrıca videoyu kendi başına iletmelidir. (Arduino'nun bunu halledebileceğini düşünüyorum).

    Radyo elemanlarının listesi

    Tanım Tip Mezhep Miktar NotMağazanot defterim
    Motor sürücüsü
    IC1 YongaSN7544101 Not defterine
    Lineer Regülatör5V1 Not defterine
    Bipolar transistör

    2N3904

    1 Not defterine
    C1, C2 Elektrolitik kondansatör 2 Not defterine
    Bağlayıcı2 çıkış7 Not defterine
    Bağlayıcı8 pin1 Not defterine
    Arduino Kalkanı
    U1 Arduino kurulu 1 Not defterine
    T1 Bipolar transistör

    2N3904

    1 Not defterine
    R1 Direnç 1 Not defterine
    3 ABD doları Düzeltici direnci 1 Not defterine
    Bağlayıcı2 çıkış2

    Göndermek ister misin? SMS Android akıllı telefonunuzdan Arduino kartınıza mı? Bu makale size bunu nasıl yapacağınızı anlatıyor!

    Neye ihtiyacın var

    • USB ana bilgisayar modunu destekleyen Android akıllı telefon (ör. OTG desteği) - Android 3.1 ve üstünü çalıştıran çoğu cihaz bu modu destekler. Telefonunuzu şununla kontrol edin: USB aracılığıyla Play Store'dan Ana Bilgisayar Tanılama Uygulaması;
    • Arduino - herhangi bir sürüm. Uno R3 kullanacağım;
    • USB kablosu Arduino için;
    • USB OTG kablosu- Arduino USB kablosunu bağlamak için buna ihtiyacınız var mikro USB bağlantı noktası telefon;
    • Android Studio - yüklemeniz gerekiyor. Bunu yapmak oldukça kolaydır. Android Stüdyosu Varsayımları ve kod üretimiyle uygulama geliştirmeyi kolaylaştırır. Bu en iyi IDE'lerden biridir. Bu makaleyi aynı zamanda bir rehber olarak da kullanabilirsiniz. Android kurulumu IDE.

    Bir Android uygulamasının temel bileşenleri

    İÇİNDE Android uygulamaüç ana dosya vardır:

    MainActivity.java Burası, uygulamanın nasıl çalışacağını kontrol eden yürütülebilir Java kodunun bulunduğu yerdir. Activity_main.xml Uygulama düzenini, yani bileşenleri içerir: düğmeler, metin görüntüleme bileşenleri, vb. AndroidManifest.xml Burada uygulamanın ne zaman çalışması gerektiğini, hangi izinlere ihtiyacı olduğunu ve hangi donanıma erişmesi gerektiğini tanımlarsınız.

    Daha birçok dosya var ama hepsi bu üçünü kullanarak birbirine bağlanıyor.

    Bir aktivite, kullanıcının telefonla etkileşime girdiği bir ekran olarak nitelendirilebilir. Etkinlikler, bilgilerin aktarılmasına yardımcı olan düğmeler, metin alanları, resimler vb. gibi widget'lar içerir. Bu eğitimde yalnızca Arduino'ya gönderilmek üzere kullanıcı girdisini kabul edecek ve aynı zamanda alınan metni görüntüleyecek MainActivity adlı tek bir etkinlik kullanılacaktır.

    Düzen

    USB Uygulaması ve Bluetooth Uygulaması ile aynı düzeni kullanacağız. Basittir ve cihazlar arasındaki bağlantıyı test etmek için gereken minimum widget'ları içerir.

    Gördüğünüz gibi, kullanıcıdan veri almak için bir EditText widget'ı, bağlantıyı başlatmak, veri aktarmak, bağlantıyı sonlandırmak ve TextView'ı temizlemek için düğmeler içerir. Alınan veriler bir TextView'da (düğmelerin altındaki boş alan) görüntülenir.

    İşte XML kodunun bir parçası. Düğmelerin kodları benzer olduğundan burada gösterilmemiştir. Kodun tamamını makalenin sonundaki bağlantıdan indirebilirsiniz.