Herkese merhabalar,
Son zamanlarda bir çok kontrol kartı, flaybar ünitesi ve benzeri cihazın, sahada kolay ayarlanabilme adına bluetooth destekli hale geldiğini ve de bluetooth aparatları ile beraber kullanılabildiğini görüyoruz. Ikon/Brain, Tarot, V-Bar gibi flybarless üniteler, ayrıca multiwii, naze32, APM gibi bir çok kontrol kartı bu bluetooth aparatlarını destekliyor durumdalar.
Aslında bu destek, donanımsal olarak çok da abartılacak bir şey değil. Çok uzun zamandır var olan TTL iletişimini(seri iletişim), kendi modüllerine taşımaktan başka bir şey yapmıyorlar. Bluetooth'un yanında TTL destekli herhangi bir aparat kullanarak da ilgili cihazlar ile iletişim kurulabilir. Neyse konumuz o değil .
Bluetooth modülleri, seri iletişim pinleri (TX ve RX pinleri) üzerinden aldığı bilgiyi, eşleşmiş olduğu cihaza(PC, android tablet, iPhone v.b.), 2.4GHz'lik kablosuz bluetooth veri hattı üzerinden gönderir ve cihazımızdaki uygun yazılım da, Bluetooth'un gönderdiği bilgileri işleyerek bizim kullanabileceğimiz halde gösterir. Ek not olarak belirteyim, Wi-Fi, 2.4GHz RC Kumandaları ve Bluetooth modüllerinin hepsi 2.4Ghz bandında çalışır ve özellikle bluetooth ve Wi-Fi beraber çalışırken birbirlerinin sinyallerinin kesilmesine/engellenmesine neden olurlar.
Her cihazın kendisine özel aparatı varmış gibi gözükse de çok istisnai durumlar haricinde, kullanılan Bluetooth aparartlarının çoğu HC05 ya da HC06'dır. Hatta özellikle HC06'dır. Fiziksel konnektörler arasındaki farkları es geçersek, bir bluetooth modülünün başka başka cihazlarda çalışmaması için iki sebep dışında bir şey bulunmamaktadır.
1- Var olan ilk sebep, TTL(seri iletişim) voltajlarının uyuşmamasıdır. Şu anda en yaygın olarak 3.3V ve 5.0V voltaj seviyeleri kullanılmaktadır. Hem cihazınızın hem de bluetooth modülünüzün aynı voltaj seviyesini desteklemesi gerekmektedir. Piyasadaki bir çok HC06 ve HC05 modülü hem 3.3V hem de 5V TTL voltaj seviyeleri ile çalışabilmektedir. Dolayısı ile voltaj uyuşmazlığı çok da rastlanan bir durum değildir ama aklımızın bir köşesinde bulundurmakta fayda var.
2- Diğer ve en önemli sebep, data iletişim hızının(BAUD RATE) cihazdan cihaza değişebilmesidir. Örneğin naze32'nin varsayılan baud rate'i 115200'dir. Eğer bluetooth adaptörünüz 115200 baud rate'e ayarlanmamışsa, Bluetooth adaptörü üzerinden naze32'ye ulaşamazsınız. Bir ek örnek olarak multiwii'nin varsayılan baud rate'i 57600'dür. Gene aynı şekilde bluetooth adaptörünüzün baud rate'ini 57600'e ayarlamamışsanız, multiwii kartınız ile bluetooth adaptörü üzerinden iletişim kuramazsınız.
HC05 ve HC06 modeli bluetooth modülleri, AT komut setleri vasıtası ile programlanabilirler. Modülü programlayabilmek için bluetooth üzerinden değil, fiziksel TX/RX pinleri üzerinden cihaza erişmek gerekmektedir. Ayrıca modülün de aktif olarak bluetooth üzerinden bağlantısı olmamalıdır.
Bluetooth modülünün TX/RX pinlerine bağlanmak için elimizde bir adet USB TTL dönüştürücü olmalıdır. FTDI yada CP210x serisi herhangi bir TTL dönüştürücü iş görecektir. Bu yazıda
HC06 modülünün besleme gerilimi, CP2102 üzerinden sağlanır. Daha sonra CP2102'in RX konnektörü Bluetooth'un TX konnektörüne, CP2102'in TX konnektörü de Bluetooth'un RX konnektörüne bağlanır. Yanlız bendeki CP2102'deki pinlerin etiketlerinde bir sıkıntı olsa gerek çünkü TX yazan pini TX ile RX yazan pini de RX ile bağladıktan sonra çalıştı.
CP210x sürücü dosyalarına
CP2102 sürücü dosyaları kurulduktan sonra, bilgisayara takıldığında bir COM port'a kendisini atayacaktır. Burada 10. COM port'a atadığı görülmektedir. COM port bağlantısı için herhangi bir terminal emülatörü kullanabilmek mümkündür. Buradaki örnekte
HC06 veya HC05 sizin elinize ulaştığı zaman hangi baud rate değerine ayarlanmış olduğu bilinmiyorsa sıra ile denemek gerekebilir. İlk denenecek en mantıklı değerler 9600 ve 38400'dür, bunlar olmaz ise sıra ile denemek gerekiyor. Genel standartlar ile belirlenmiş, varsayılan Baud rate(hız) değerleri aşağıdadır.
- 1200
- 2400
- 4800
- 9600
- 19200
- 38400
- 57600
- 115200
- 234000
- 460800
- 921600
- 1382400
Resimde 115200 BAUD ile COM10'a bağlantı gözükmektedir.
HC06'ya AT komutları, gönderildiği anda işlenir. Yani ENTER tuşuna basmak gerekmez. Ama normal insanlar da AT konutlarını birkaç on milisaniyelik timeout değeri yüzünden de yeterince hızlı yazamazlar. En mantıklısı kopyalayıp yapıştırmaktır. Kopyaladığnız komutu Putty'de yapıştırmak için "SHIFT+INSERT" kombinasyonunu kullanmak gerekmektedir. Eğer Baud Rate değeriniz bluetooth adaptörü ile uyuşuyorsa "AT" komutundan (büyük - küçük harf duyarlıdır yani "AT" yerine "at" yazılırsa işe yaramaz) hemen sonra "OK cevabını görmek gerekir.
HC06 için AT komutları aşağıdaki gibidir.
AT : Bağlantı kontrolü içindir, komuttan hemen sonra "OK" gözükmesi gerekir.
AT+NAME : Modülün ismini değiştirmek için kullanılır. Komut ve isim arasında boşluk yoktur. Yani Bluetooth modülünün ismini GOBLIN yapmak için, AT+NAMEGOBLIN komutunu kopyalayıp yapıştırmak gerekir.
AT+PIN : Bluetooth modülünün pin numarasını "XXXX" formatında değiştirir. Komut ve isim arasında boşluk yoktur. Yani Bluetooth modülünün pin numarasını 1234 yapmak için AT+PIN1234 komutunu kopyalayıp yapıştırmak gerekir.
AT+VERSION : Bluetooth modülünün versiyon numarasını görüntüler.
AT+BAUDx : Baud rate değiştirme komutudur. x Baud rate kodudur. Komut ve isim arasında boşluk yoktur. Yani Bluetooth modülünün baud rate değerini 115200 yapmak için AT+BAUD8 komutunu kopyalayıp yapıştırmak gerekir. HC06 modülü, komutu işledikten sonra hız değerini ekrana basar. Eğer hız değişmişse modül ile iletişim kaybolur. Yeni hız değeri ile tekrar bağlanmak gerekir.
1 -> 1200bps
2 -> 2400bps
3 -> 4800bps
4 -> 9600bps (Varsayılan)
5 -> 19200bps
6 -> 38400bps
7 -> 57600bps
8 -> 115200bps
Aşağıda Sıra ile "AT", "AT+VERSION" ve "AT+BAUD8" komutlarının gönderilmiş olduğunu görebilirsiniz. Bu şekilde buluetooth modülü 115200 Baud rate değerine ayarlanmış olacaktır.
HC05 modülünü AT moduna sokmak için güç vermeden önce "KEY" pinine 3.3V vermek gerekmektedir.
HC05 için faydalı AT komutları aşağıdaki gibidir. HC05 için komutlardan sonra ENTER'a basmak gerekir.
AT : Bağlantı kontrolü içindir
AT+NAME? : Tanımlı ismi gösterir
AT+NAME= : İsim tanımlar. Yani Bluetooth modülünün ismini GOBLIN yapmak için, AT+NAME=GOBLIN komutunu yazıp ENTER'a basmak gerekir.
AT+ADDR? : Varsayılan Bluetooth adresini gösterir.
AT+VERSION? : Bluetooth versiyonunu gösterir.
AT+ROLE? : Bluetooth modülünün master ya da slave olup olmadığını gösterir.(1=master/0=slave)
AT+ROLE= : Bluetooth modülünü master ya da slave olarak ayarlar.(1=master/0=slave) Yani Bluetooth modülünü slave olarak ayarlamak için AT+ROLE=0 yazıp ENTER'a basmak gerekir. Dipnot olarak Master ayarlamanın, bu yazının amacı açısından hiç bir faydası yoktur. HC06 zaten slave olarak çalışır, değiştirilemez.
AT+RESET : Resetlemek ve de AT modundan çıkmak için.
AT+ORGL : Fabrika çıkış varsayaılanlarını geri yüklemek için.
AT+PSWD? : Cihazda tanımlı parolayı görmek için.
AT+PSWD= : Cihaza parola tanımlama için. Yani Bluetooth modülünün parolasını 1234 yapmak için, AT+PSWD=1234 komutunu yazıp ENTER'a basmak gerekir.
AT+UART= : Baud rate değerini ayarlar. Tam yazım formatı AT+UART=<baud>,<stop>,<parity> şeklindedir. "Stop bits" ve "parity bits" değeri bu yazının konusu olmadığından sadece "Stop bits" = 1 ve Parity Bits" = 0 yapmanız gerektiğini söylemekle yetineceğim. Yani Bluetooth modülünün baud rate değerini 115200 yapmak için AT+UART=115200,1,0 komutunu yazıp ENTER'a basmak gerekir. Ayarlanabilecek hız değerleri aşağıdadır.
4800
9600 (varsayılan)
19200
38400
57600
115200
234000
460800
921600
1382400
"EGBT-045MS-046S Bluetooth Module Manual" dökümanını google üzerinde aratırsanız HC05 ve HC06 ile ilgili daha ayrıntılı bilgilere ulaşabilirsiniz. Buraya ekleyecektim ama boyut yüzünden ekleyemedim. Doğrudan link olarak
Bu şekilde, Bluetooth modülünün hızı gerektiği gibi ayarlandıktan sonra, istenilen herhangi bir flaybarless ünite ya da kontrol kartı ile rahatlıkla kullanılabilir. Aslında naze32 kartının bluetooth üzerinden nasıl kontrol edilebileceği üzerine bir yazı yazmayı düşünüyordum fakat bluetooth modüllerinin nasıl bağlanacağını veya ayarlanacağını açıklamadan eksik kalacağını farkettim. Bluetooth konusu ise tamamen ayrı ve farklı bir konu olduğu için de ayrı bir başlık/ön hazırlık olarak açtım.
Sürç-ü lisan ettiysek affola...
Son zamanlarda bir çok kontrol kartı, flaybar ünitesi ve benzeri cihazın, sahada kolay ayarlanabilme adına bluetooth destekli hale geldiğini ve de bluetooth aparatları ile beraber kullanılabildiğini görüyoruz. Ikon/Brain, Tarot, V-Bar gibi flybarless üniteler, ayrıca multiwii, naze32, APM gibi bir çok kontrol kartı bu bluetooth aparatlarını destekliyor durumdalar.
Aslında bu destek, donanımsal olarak çok da abartılacak bir şey değil. Çok uzun zamandır var olan TTL iletişimini(seri iletişim), kendi modüllerine taşımaktan başka bir şey yapmıyorlar. Bluetooth'un yanında TTL destekli herhangi bir aparat kullanarak da ilgili cihazlar ile iletişim kurulabilir. Neyse konumuz o değil .
Bluetooth modülleri, seri iletişim pinleri (TX ve RX pinleri) üzerinden aldığı bilgiyi, eşleşmiş olduğu cihaza(PC, android tablet, iPhone v.b.), 2.4GHz'lik kablosuz bluetooth veri hattı üzerinden gönderir ve cihazımızdaki uygun yazılım da, Bluetooth'un gönderdiği bilgileri işleyerek bizim kullanabileceğimiz halde gösterir. Ek not olarak belirteyim, Wi-Fi, 2.4GHz RC Kumandaları ve Bluetooth modüllerinin hepsi 2.4Ghz bandında çalışır ve özellikle bluetooth ve Wi-Fi beraber çalışırken birbirlerinin sinyallerinin kesilmesine/engellenmesine neden olurlar.
Her cihazın kendisine özel aparatı varmış gibi gözükse de çok istisnai durumlar haricinde, kullanılan Bluetooth aparartlarının çoğu HC05 ya da HC06'dır. Hatta özellikle HC06'dır. Fiziksel konnektörler arasındaki farkları es geçersek, bir bluetooth modülünün başka başka cihazlarda çalışmaması için iki sebep dışında bir şey bulunmamaktadır.
1- Var olan ilk sebep, TTL(seri iletişim) voltajlarının uyuşmamasıdır. Şu anda en yaygın olarak 3.3V ve 5.0V voltaj seviyeleri kullanılmaktadır. Hem cihazınızın hem de bluetooth modülünüzün aynı voltaj seviyesini desteklemesi gerekmektedir. Piyasadaki bir çok HC06 ve HC05 modülü hem 3.3V hem de 5V TTL voltaj seviyeleri ile çalışabilmektedir. Dolayısı ile voltaj uyuşmazlığı çok da rastlanan bir durum değildir ama aklımızın bir köşesinde bulundurmakta fayda var.
2- Diğer ve en önemli sebep, data iletişim hızının(BAUD RATE) cihazdan cihaza değişebilmesidir. Örneğin naze32'nin varsayılan baud rate'i 115200'dir. Eğer bluetooth adaptörünüz 115200 baud rate'e ayarlanmamışsa, Bluetooth adaptörü üzerinden naze32'ye ulaşamazsınız. Bir ek örnek olarak multiwii'nin varsayılan baud rate'i 57600'dür. Gene aynı şekilde bluetooth adaptörünüzün baud rate'ini 57600'e ayarlamamışsanız, multiwii kartınız ile bluetooth adaptörü üzerinden iletişim kuramazsınız.
HC05 ve HC06 modeli bluetooth modülleri, AT komut setleri vasıtası ile programlanabilirler. Modülü programlayabilmek için bluetooth üzerinden değil, fiziksel TX/RX pinleri üzerinden cihaza erişmek gerekmektedir. Ayrıca modülün de aktif olarak bluetooth üzerinden bağlantısı olmamalıdır.
Bluetooth modülünün TX/RX pinlerine bağlanmak için elimizde bir adet USB TTL dönüştürücü olmalıdır. FTDI yada CP210x serisi herhangi bir TTL dönüştürücü iş görecektir. Bu yazıda
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
ve
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
modül kullanılacaktır.
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
HC06 modülünün besleme gerilimi, CP2102 üzerinden sağlanır. Daha sonra CP2102'in RX konnektörü Bluetooth'un TX konnektörüne, CP2102'in TX konnektörü de Bluetooth'un RX konnektörüne bağlanır. Yanlız bendeki CP2102'deki pinlerin etiketlerinde bir sıkıntı olsa gerek çünkü TX yazan pini TX ile RX yazan pini de RX ile bağladıktan sonra çalıştı.
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
CP210x sürücü dosyalarına
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
erişilebilir.
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
CP2102 sürücü dosyaları kurulduktan sonra, bilgisayara takıldığında bir COM port'a kendisini atayacaktır. Burada 10. COM port'a atadığı görülmektedir. COM port bağlantısı için herhangi bir terminal emülatörü kullanabilmek mümkündür. Buradaki örnekte
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
kullanılıyor olacaktır.
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
HC06 veya HC05 sizin elinize ulaştığı zaman hangi baud rate değerine ayarlanmış olduğu bilinmiyorsa sıra ile denemek gerekebilir. İlk denenecek en mantıklı değerler 9600 ve 38400'dür, bunlar olmaz ise sıra ile denemek gerekiyor. Genel standartlar ile belirlenmiş, varsayılan Baud rate(hız) değerleri aşağıdadır.
- 1200
- 2400
- 4800
- 9600
- 19200
- 38400
- 57600
- 115200
- 234000
- 460800
- 921600
- 1382400
Resimde 115200 BAUD ile COM10'a bağlantı gözükmektedir.
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
HC06'ya AT komutları, gönderildiği anda işlenir. Yani ENTER tuşuna basmak gerekmez. Ama normal insanlar da AT konutlarını birkaç on milisaniyelik timeout değeri yüzünden de yeterince hızlı yazamazlar. En mantıklısı kopyalayıp yapıştırmaktır. Kopyaladığnız komutu Putty'de yapıştırmak için "SHIFT+INSERT" kombinasyonunu kullanmak gerekmektedir. Eğer Baud Rate değeriniz bluetooth adaptörü ile uyuşuyorsa "AT" komutundan (büyük - küçük harf duyarlıdır yani "AT" yerine "at" yazılırsa işe yaramaz) hemen sonra "OK cevabını görmek gerekir.
HC06 için AT komutları aşağıdaki gibidir.
AT : Bağlantı kontrolü içindir, komuttan hemen sonra "OK" gözükmesi gerekir.
AT+NAME : Modülün ismini değiştirmek için kullanılır. Komut ve isim arasında boşluk yoktur. Yani Bluetooth modülünün ismini GOBLIN yapmak için, AT+NAMEGOBLIN komutunu kopyalayıp yapıştırmak gerekir.
AT+PIN : Bluetooth modülünün pin numarasını "XXXX" formatında değiştirir. Komut ve isim arasında boşluk yoktur. Yani Bluetooth modülünün pin numarasını 1234 yapmak için AT+PIN1234 komutunu kopyalayıp yapıştırmak gerekir.
AT+VERSION : Bluetooth modülünün versiyon numarasını görüntüler.
AT+BAUDx : Baud rate değiştirme komutudur. x Baud rate kodudur. Komut ve isim arasında boşluk yoktur. Yani Bluetooth modülünün baud rate değerini 115200 yapmak için AT+BAUD8 komutunu kopyalayıp yapıştırmak gerekir. HC06 modülü, komutu işledikten sonra hız değerini ekrana basar. Eğer hız değişmişse modül ile iletişim kaybolur. Yeni hız değeri ile tekrar bağlanmak gerekir.
1 -> 1200bps
2 -> 2400bps
3 -> 4800bps
4 -> 9600bps (Varsayılan)
5 -> 19200bps
6 -> 38400bps
7 -> 57600bps
8 -> 115200bps
Aşağıda Sıra ile "AT", "AT+VERSION" ve "AT+BAUD8" komutlarının gönderilmiş olduğunu görebilirsiniz. Bu şekilde buluetooth modülü 115200 Baud rate değerine ayarlanmış olacaktır.
Bu RESMİ görmek için izniniz yok. Giriş yap veya üye ol
HC05 modülünü AT moduna sokmak için güç vermeden önce "KEY" pinine 3.3V vermek gerekmektedir.
HC05 için faydalı AT komutları aşağıdaki gibidir. HC05 için komutlardan sonra ENTER'a basmak gerekir.
AT : Bağlantı kontrolü içindir
AT+NAME? : Tanımlı ismi gösterir
AT+NAME= : İsim tanımlar. Yani Bluetooth modülünün ismini GOBLIN yapmak için, AT+NAME=GOBLIN komutunu yazıp ENTER'a basmak gerekir.
AT+ADDR? : Varsayılan Bluetooth adresini gösterir.
AT+VERSION? : Bluetooth versiyonunu gösterir.
AT+ROLE? : Bluetooth modülünün master ya da slave olup olmadığını gösterir.(1=master/0=slave)
AT+ROLE= : Bluetooth modülünü master ya da slave olarak ayarlar.(1=master/0=slave) Yani Bluetooth modülünü slave olarak ayarlamak için AT+ROLE=0 yazıp ENTER'a basmak gerekir. Dipnot olarak Master ayarlamanın, bu yazının amacı açısından hiç bir faydası yoktur. HC06 zaten slave olarak çalışır, değiştirilemez.
AT+RESET : Resetlemek ve de AT modundan çıkmak için.
AT+ORGL : Fabrika çıkış varsayaılanlarını geri yüklemek için.
AT+PSWD? : Cihazda tanımlı parolayı görmek için.
AT+PSWD= : Cihaza parola tanımlama için. Yani Bluetooth modülünün parolasını 1234 yapmak için, AT+PSWD=1234 komutunu yazıp ENTER'a basmak gerekir.
AT+UART= : Baud rate değerini ayarlar. Tam yazım formatı AT+UART=<baud>,<stop>,<parity> şeklindedir. "Stop bits" ve "parity bits" değeri bu yazının konusu olmadığından sadece "Stop bits" = 1 ve Parity Bits" = 0 yapmanız gerektiğini söylemekle yetineceğim. Yani Bluetooth modülünün baud rate değerini 115200 yapmak için AT+UART=115200,1,0 komutunu yazıp ENTER'a basmak gerekir. Ayarlanabilecek hız değerleri aşağıdadır.
4800
9600 (varsayılan)
19200
38400
57600
115200
234000
460800
921600
1382400
"EGBT-045MS-046S Bluetooth Module Manual" dökümanını google üzerinde aratırsanız HC05 ve HC06 ile ilgili daha ayrıntılı bilgilere ulaşabilirsiniz. Buraya ekleyecektim ama boyut yüzünden ekleyemedim. Doğrudan link olarak
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
erişebilirsiniz.
Bu LİNKİ görmek için izniniz yok. Giriş yap veya üye ol
Bu şekilde, Bluetooth modülünün hızı gerektiği gibi ayarlandıktan sonra, istenilen herhangi bir flaybarless ünite ya da kontrol kartı ile rahatlıkla kullanılabilir. Aslında naze32 kartının bluetooth üzerinden nasıl kontrol edilebileceği üzerine bir yazı yazmayı düşünüyordum fakat bluetooth modüllerinin nasıl bağlanacağını veya ayarlanacağını açıklamadan eksik kalacağını farkettim. Bluetooth konusu ise tamamen ayrı ve farklı bir konu olduğu için de ayrı bir başlık/ön hazırlık olarak açtım.
Sürç-ü lisan ettiysek affola...