- Gerekli Malzeme
- HC-06 Bluetooth Modülü
- Devre şeması
- Roboremo Uygulamasını Servo Kontrolü İçin Yapılandırma:
- Kod ve Açıklama
- Bluetooth kullanarak Servo motor Kontrolünün Çalışması:
Hassas kontrol için bir Servo motor kullanmak Robotikte yaygındır. Burada, bu eğitimde size bir Arduino UNO ve Bluetooth bağlantısı üzerinden bir Android cihaz ile bir Servo motorun kablosuz olarak nasıl kullanılacağını göstereceğiz. Arduino ile zaten servoyu kontrol ettik, bu sefer Arduino ve Bluetooth kullanarak Servo Motoru Kontrol Ediyoruz.
Gerekli Malzeme
- Arduino UNO
- HC-05 veya HC-06 Bluetooth modülü
- Servo Motor
- Playstore'dan Roboremo Uygulaması
- Breadboard
- Bağlantı teli
HC-06 Bluetooth Modülü
Bluetooth aşağıdaki iki modda çalışabilir:
- Komut Modu
- Çalışma modu
In Command Mode biz Bluetooth sinyalinin adı gibi Bluetooth özelliklerini yapılandırmak mümkün olacak, vb onun şifre, işletim baud hızı Çalışma Modu biz göndermek mümkün ve PIC Mikrodenetleyici arasındaki verileri alacaktır hangi biridir ve Bluetooth modülü. Bu nedenle bu eğitimde sadece Çalışma Modu ile oynayacağız. Komut modu varsayılan ayarlara bırakılacaktır. Cihaz adı HC-05 (HC-06 kullanıyorum) ve şifre 0000 veya 1234 olacak ve en önemlisi tüm Bluetooth modülleri için varsayılan baud hızı 9600 olacaktır.
Modül 5V besleme ile çalışır ve sinyal pinleri 3.3V ile çalışır, dolayısıyla modülün içinde 3.3V regülatör mevcuttur. Dolayısıyla endişelenmemize gerek yok. Çalışma modunda altı pinin sadece dördü kullanılacaktır. Pim bağlantı tablosu aşağıda gösterilmiştir
S.No | HC-05 / HC-06 panosundaki Pin | MCU'daki pin adı | PIC'deki pin numarası |
1 | Vcc | Vdd | 31 st pimi |
2 | Vcc | Gnd | 32 nd pin |
3 | Tx | RC6 / Tx / CK | 25 inci iğne |
4 | Rx | RC7 / Rx / DT | 26 inci pim |
5 | Durum | NC | NC |
6 | EN (Etkinleştir) | NC | NC |
Diğer mikro denetleyicilerle Bluetooth modülü HC-05 hakkında daha fazla bilgi edinmek için diğer projelerimize bakın:
- Arduino ile Bluetooth Kontrollü Oyuncak Araba
- 8051 kullanan Bluetooth Kontrollü Ev Otomasyon Sistemi
- Raspberry Pi kullanarak Ses Kontrollü Işıklar
- Arduino ve İşleme Kullanan Akıllı Telefon Kontrollü FM Radyo
- Bluetooth Modülü HC-06 ile PIC Mikrodenetleyiciyi Arayüz
Ayrıca bluetooth ile ilgili tüm projeleri buradan kontrol edin.
Devre şeması
Bu Arduino Bluetooth Servo Motor Kontrol projesi için devre şeması aşağıda verilmiştir:
Roboremo Uygulamasını Servo Kontrolü İçin Yapılandırma:
Adım 1: - Roboremo uygulamasını Android Play Store'dan indirin ve akıllı telefonunuza kurun. Kurduktan sonra, şekil1'de gösterildiği gibi uygulama penceresini göreceksiniz ve 'Menü' düğmesine tıkladığınızda, aşağıdaki şekil2'de gösterilen pencereyi göreceksiniz:
Adım 2: - Ardından bağlan düğmesine tıklayın ve aşağıdaki şekil3'te gösterilen pencereyi göreceksiniz, ardından ' Bluetooth RFCOMM'u seçmeniz gerekiyor ve ardından HC-06 bluetooth modülünüzü android uygulamanız' Roboremo 'ile bağlayabileceksiniz.
Adım 3: - HC-06 bluetooth modülüne bağlandıktan sonra şekil2 penceresine geri dönün ve ardından ihtiyacınıza göre kullanıcı arayüzünü oluşturmak için " ui düzenle " ye tıklayın.
Tıkladığınızda 'düzenle ui' Tekrar Şekil 1'de gösterildiği pencere göreceksiniz o zaman Şekil 4 Bu gibi uygulama penceresini basıp 'göreceksiniz ekranın herhangi bir yerine tıklayarak Düğmesi düğmesi yapısını elde etmek'.
Adım 4: - Düğmeyi seçtikten sonra, düzenlemek için ekranda bir düğme yapısı alacaksınız. Yapıyı ekranda herhangi bir yere yeniden boyutlandırabilir ve taşıyabilirsiniz. Şimdi, tıklamayla Bluetooth aracılığıyla gönderilecek değeri ayarlamak için 'basma eylemini' (şekil 6'da gösterildiği gibi) ayarladınız ve bu düğmeden göndermek istediğiniz değeri yazdınız. Gibi, Roboremo android uygulamasında 'Başlat' düğmesine basarak servoyu döndürmek için '1' gönderiyoruz.
İleride verilen tablodan farklı butonlara tıklayarak gönderilen tüm değerleri kontrol edebilirsiniz.
Adım 5: - Son olarak , Smartphone kullanarak servo motoru kontrol etmek için Kullanıcı Arayüzüne sahibiz.
Kod ve Açıklama
Sonunda Bluetooth Üzerinden Arduino Kontrol Servo Motoru için tam kod verilmiştir.
Arduino'nun Servo Motorlar için bir kütüphanesi vardır ve servoyu döndürmek için PWM ile ilgili tüm şeyleri yönetir, sadece döndürmek istediğiniz açıyı girmeniz gerekir ve servo1.write (açı) işlevi vardır ; servoyu istenen açıya döndürecektir.
Bu yüzden burada Servo motor için kitaplığı tanımlayarak başlıyoruz ve Yazılım Seri kitaplığı Rx ve Tx pinlerini tanımlamak için kullanılır.
#Dahil etmek
Aşağıdaki kodda, Rx ve Tx için Arduino pinlerini başlatıyoruz, servo ve diğer şeyler için değişkenleri tanımlıyoruz .
Servo myServo; int TxD = 11; int RxD = 10; int servopozisyon; int servopolar; int yeni1; Yazılım Seri bluetooth (TxD, RxD);
Şimdi, tüm değişkeni ve bileşenleri ilk aşamaya ayarlayın. Burada 9'da servo eklenmiş inci Arduino pimi ve 0 dereceye kadar servo ilk konumunu yaptı. Seri ve Bluetooth iletişimi için baud hızı da 9600 olarak ayarlandı.
geçersiz kurulum () { int pos = 0; myServo.attach (9); myServo.write (0); Serial.begin (9600); // seri iletişimi 9600bps bluetooth.begin'de başlat (9600); }
Gelen boşluk döngü fonksiyonu, Arduino her zaman gelen değerleri kontrol edilecek ve Akıllı telefondan alınan değere göre servo döndürün. Tüm değerler Seri İletişim kullanılarak alınacaktır.
Değer 0 ise servo 0 derece dönecektir. Benzer şekilde Bluetooth uygulamasından 45, 90, 135 ve 180 gönderirsek servo sırasıyla 45, 90, 135 ve 180 derece açıya dönecektir.
void döngü () { if (bluetooth.available ()) { Dize değeri = bluetooth.readString (); servopozisyon = değer.toInt (); if (value.toInt () == 0) { Serial.println (servopozisyon); myServo.write (0); } if (value.toInt () == 45) { Serial.println (servopozisyon); myServo.write (45); } if (value.toInt () == 90) { Serial.println (servopozisyon); myServo.write (90); } if (value.toInt () == 135) { Serial.println (servopozisyon); myServo.write (135); } if (value.toInt () == 180) { Serial.println (servopozisyon); myServo.write (180); }
Start butonuna basarak '1' değerini gönderirsek, servo stop butonuna basılana kadar sürekli dönecektir. Burada Arduino tarafından okunacak ve while döngüsünü bozacak ve servo durdurulacak olan stop butonuna basıldığında '2' gönderiyoruz.
while (value.toInt () == 1) {if (bluetooth.available ()) {value = bluetooth.readString (); Serial.println (değer); eğer (value.toInt () == 2) {Serial.println ("YYY"); kırmak; }} servopolar ++; gecikme (30); Serial.println (servopolar); myServo.write (servopolar); eğer (servopos == 180) {servopos = 0; ara;}}}}
Bluetooth kullanarak Servo motor Kontrolünün Çalışması:
Bu projede, Servo Motoru bir Android uygulaması olan "Roboremo" ile kontrol ediyoruz. Bu uygulamanın arayüzünde, daha önce açıklandığı gibi Servo motoru kontrol etmek için 5 düğme oluşturduk. Her düğmenin çalışması aşağıdaki tabloda verilmiştir:
S.No. |
Düğme Adı |
Değer Gönderme |
Açıklama |
1. |
Başlat |
1 |
Bu düğme, servoyu 0⁰'den 180⁰'ye döndürmeye başlamak için kullanılır. |
2. |
Dur |
2 |
Bu düğme, herhangi bir noktada servoyu durdurmak için kullanılır. |
3. |
0⁰ |
0 |
Bu düğme, servoyu 0⁰ döndürmek için kullanılır. |
4. |
90⁰ |
90 |
Bu düğme, servoyu 90⁰ döndürmek için kullanılır. |
5. |
180⁰ |
180 |
Bu düğme, servoyu 180 ° döndürmek için kullanılır. |
Bu nedenle, Android uygulamanız Roboremo'daki bu düğmelere basarak, veriler akıllı telefonun Bluetooth'u aracılığıyla HC-06 Bluetooth modülüne gönderilecektir. Bu HC-06 modülünden veri Arduino tarafından alınır ve Arduino Servo'yu belirli bir düğme için kodda tanımlanan açıda döndürür. 45 ve 135 açılarını da kodladık, ancak Roboremo uygulamasının sınırlaması nedeniyle yalnızca 5 düğme oluşturabilirsiniz, bu nedenle iki düğmeyi atladık.
Servoyu kablosuz olarak kontrol etmek için Bluetooth kullanarak verileri Akıllı Telefondan Arduino'ya bu şekilde gönderebilirsiniz. Bu, Oyuncak arabalar, robotlar vb. Gibi birçok uygulamada kullanılabilir.