Pic Micronetler ile Bluetooth özellikli bir cihaz geliştirmek
Table of Contents
Giriş Giriş Giriş
Microchip Technology'den gelen PIC mikrokontroller, düşük maliyet, düşük güç tüketimi ve geniş bir gelişim araçları ve topluluk bilgisinin bir kombinasyonunun oluşturulmasına olanak sağlar.Insing Bluetooth kapasitesinin tamamını, kablosuz alana genişletin, uzaktan izleme, kontrol ve veri girişinin fiziksel kablolamanın kısıtlanmasına izin verin. Kablosuz bir sensör node, bir ev otomasyon kontrolörü veya giyilebilir sağlık monitörü oluşturma, süreç, donanım seçimi, sağlam bir donanıma ve yöntemsel testlere yönelik olarak gerektirir.Bu makale, bir Bluetooth kontrollü sistem tasarlamak için kapsamlı bir kılavuz sunar.
Bluetooth Uygulamaları için PIC Microdenetleyiciler anlamak
PIC mikrokontroller, değiştirilmiş Harvard mimarisine dayanmaktadır, ayrı program ve veri hafıza otobüsleriyle. Geniş bir model yelpazesinden popüler kökler - 8bit PIC10/12/16/18 ailelere 16-bit ve 32-bit cihazlara göre - her zaman farklı periferik iletişim kombinasyonları sunar, en kritik periferik Asynchronous Alıcı/Transmitter (UART) genellikle ABDART veya ABSART olarak adlandırılır.
Bir Bluetooth projesi için bir PIC seçerken aşağıdakileri düşünün:
- [FONT:0)UART kullanılabilirlik:[Döneticiler en az bir UART modülü içerir. Tam zamanlı iletişim için (simultane gönderi ve alır), modül hem TX hem de RX pins gibi bazı cihazlara destek olmalıdır. PIC16F877A veya PIC18F4520 gibi, bir veya iki UART modülüne sahip.
- [FONT=0)Clock hız ve baud oranı:) Bluetooth modülleri genellikle 9600, 19200, 38400 veya 115200 baud. PIC'nin iç veya dış osilatör bu oranları tolerans içinde üretmek için yeterince doğru olmalıdır.
- [FONT:0)Supply voltaj ve I/O tolerans: Birçok PIC'nin 5 V'de çalışmasını sağlarken, çoğu Bluetooth modülleri 3.3 V mantığını kullanır. Seviye değişimi veya gerilim çevirisi zararları önlemek için zorunludur.
- [FONT=0)Power tüketimi:[[Dönetici] Cihazın şarjı varsa, düşük güç uyku modlarına (örneğin, SLEEP, IDLE) bakın ve derin uyku veya anlık modları destekleyen bir Bluetooth modülü seçin.
- [FONT=0)Development tools:[Dönetici:[Dönetici:0) Mikroçip MPLAB X IDE ve XC8/XC16/XC32 derleyicileri ücretsiz ve iyi destekleniyor.In-circuit debuggers Like PICkit 3
Bluetooth İletişim: Classic vs. Bluetooth Low Energy (BLE)
Bluetooth teknolojisi iki ana kategoriye ayrılır: Classic Bluetooth (BR/EDR) ve Bluetooth Low Energy (sol) Classic Bluetooth daha yüksek kodlu ( 2 Mbps'ye kadar) sunar ve ses akışı için idealdir veya büyük paketler göndermek için idealdir. BLE, düşük güç süresi verileri transfer etmek için tasarlanmış, sensör ağları için tercih edilen seçimdir, beacons ve pil hayatı nerede veri oranlarının mütevazı olduğunu kullanılabilir.
PIC tabanlı projeler için, hem seçenekler uygulanabilir. HC-05 ve HC-06 gibi Classic modüller UART ile arayüze ucuz ve kolaydır. HM-10, RN4871 veya BT121 aynı UART-to-sol köprüyü sağlar. Daha gelişmiş modüller (örneğin, Microchip’un kendi RN4678, AT komutları veya satıcılar aracılığıyla özel API'leri entegre eder ve özel API'ler ile özelleştirin.
Doğru Bluetooth Modülünü seçin
Modül seçimi uygulama gereksinimlerine bağlıdır. tablo aşağıda özetlemeler ortak seçenekler:
| Module | Type | Key Features | Typical Cost |
|---|---|---|---|
| HC‑05 | Classic | Master/slave, AT commands, 3.3–6 V | $3–$5 |
| HC‑06 | Classic | Slave only, simpler AT set | $2–$4 |
| HM‑10 | BLE | Low power, iBeacon support, AT commands | $4–$7 |
| RN4678 | BLE | Dual‑mode (BLE + Classic), certified, low power | $10–$15 |
Çoğu hobi ve prototip projesi için, HC-05 veya HM-10, maliyetin en iyi dengesi ve kullanım kolaylığı sağlar. Üretim veya sertifikalı tasarımlar için, önceden kabul edilen modüller göz önünde bulundurun (örneğin, RN4678)
Donanım Entegrasyonu: Bluetooth Modülünü PIC
Tipik bir UART tabanlı Bluetooth modülü dört pimi ortaya çıkarır: VCC, GND, TX ve RX. Bazı modüller ayrıca bir KEY (enable AT modu) veya STATE (bağış durumu) pin. 5 V PIC ve 3.3 V modülü arasındaki gerilim farklılıkları dikkate almalıdır.
Gerilim Seviyeleri
Çoğu Bluetooth modülleri 3.3 V cihazlardır. Modülin RX pin'ine doğrudan 5 V PIC çıktı bağlamak, bu yüzden doğrudan bağlantının GPIO. Conversely, modülün TX çıktısı (3.3 V) genellikle 5 V PIC (tipik olarak 0.8 × VCC = 4 V) mantığıyla bağlantılıdır, böylece doğrudan bağlantıya sahip olabilir.[Dönetici:0may[FLT 1: 1 )
Ortak yaklaşımlar:
- [FONT=0)Voltage bölme (resistor çift): [Dönetici: [Düz TX → modülün RX yolu üzerinde, 1 kULL (eri) ve 2 kULL (GND) 5 V'yi -3.3 V'ye düşürmek için. Bu sadece tek yönlü sinyaller için çalışır.
- [FONT:0)Bi-yön düzey kayma modülü: Küçük tahtalar (örneğin, Sparkfun BOB-12009), tek bir MOSFET ve iki direnç kullanarak her iki yöne çevirir.
- [FONT=0)3.3 V düzenleyicisi: Bir 3.3 V çıkışından (örneğin, LD1117V33) oluşan modül, 5 V tedarikinden beslenir. PIC hala 5 V'de çalıştırılabilir, ancak düzenleyicinin yeterli bir mevcut olmasını sağlamalıdır (genellikle 50 mA yeterli).
Güç Supply Decoupling
Bluetooth modülleri, aktarma sırasında mevcut patlamaları çeker (40 mA'ya kadar). Yeterli kesinti olmadan, tedarik gerilimi ortak bir düzenleyiciyi paylaşabilir ve 10 μF elektroliz kapasiteli yerleştirin ve 0.1 μF seramik kapasitorunu modüle en yakın şekilde tutabilir.If the Supply voltajı can ripple, replica modülünün ortak bir düzenleyicisini paylaşabilmesi için, regülatörün toplam mevcut zirvesini temin edebilir.
Örnek Wiring Diagram
Bir HC-05 modülü ve 5 V PIC16F877A için tam bir bağlantı aşağıdaki gibidir:
- HC05 VCC → 3.3 V düzenleyici çıktı (örneğin, AMS1117-3.3)
- HC-05 GND → ortak zemin
- HC05 TX → PIC RC7 (UART RX) - doğrudan bağlantı (3.3 PIC için kabul edilebilir)
- HC05 RX → PIC RC6 (UART TX) - seride 1 kULL direnç ile 3,3 V (sürücü bölme)
- HC05 KEY → PIC RB0 (bağış, güçten sonra AT modunda girmek için)
- HC05 STATE → PIC RB1 (bağış, bağlantı durumunu tespit etmek için)
Her zaman belirli modül değişkeninizin pinoutını iki katına çıkarın. Bazı HC-05 tahtaları, mikrokontroller perspektifine göre ters döndü.
Bluetooth Modülünü AT Komutlarla yapılandırın
Modül bir akran cihazı ile iletişim kurmadan önce, HC-05 gibi klasik modüller genellikle 9400'ü kullanıyor; CPU'nun eşleştirilemediğinde erişilebilir olan komutlar kümesini kullanıyor.Samp pin yüksek tutarken (veya KEY yüksek hızını sıfırlayın).
Ortak AT komutları:
- [0]- Bluetooth adı:
- BÖRTÜNCÜŞÜN - PIN (default 1234)
- [FONT:2] - 9600'e kadar vaftiz oranı, 1 bit, hiçbir parite
- [Dörtüncü) - köle modu (bir çiftleşmek için bir araya gelmek için bir araya gelmek için)
- [FONT: 5) - herhangi bir adrese bağlanır; [[Dön adres için
Kurulumdan sonra, modül (veya gönderir) güç döngüsü (veya modül şu anda yeni baud oranı ve ayarları çalışır. HM-10 gibi BLE modüller için, AT komutları dahil) (broadcaster/observer), ).
PIC'yi UART İletişimi için Programlama
Donanım yerinde, bu sistem, PIC'nin UART modülünü başlatmalıdır, Bluetooth modülüne komutlar göndermelidir (Eğer AT yapılandırma PIC'den yapılırsa), ve veri değişimi bir çiftleştirilmiş bir cihazla idare eder. Aşağıdaki örnek, bir 20 MHz dış kristal ile çalışır, 9600 baud.
UART İlkleme (Siged Snippet)
void UART_Init(void) {
TRISCbits.TRISC6 = 0; // TX pin (RC6) as output
TRISCbits.TRISC7 = 1; // RX pin (RC7) as input
SPBRG = 129; // 20 MHz/(16*9600) - 1 ≈ 129
TXSTAbits.BRGH = 1; // High speed baud rate
RCSTAbits.SPEN = 1; // Enable serial port
RCSTAbits.CREN = 1; // Enable continuous receive
TXSTAbits.TXEN = 1; // Enable transmit
PIR1bits.RCIF = 0; // Clear receive flag
}
Belirli saat frekansınız için değerin dikkatlice ayarlanması. Microchip's UART baud oranı hesaplayıcı ( MPLAB Code Configurator'da kullanılabilir) bu adımı basitleştirir.
Data Transmission
void UART_Send(char data) {
while(!TXSTAbits.TRMT); // Wait until TSR empty
TXREG = data; // Load data into transmit register
}
Data Reception (Polling)
char UART_Receive(void) {
while(!PIR1bits.RCIF); // Wait until data received
return RCREG; // Read received byte
}
Gerçek bir uygulamada, eksik verileri önlemek için kesmeye yönelik resepsiyonu kullanın, özellikle Bluetooth modülü çözülmemiş durumdaki statü mesajları (örneğin bağlantı/disconnection bildirimleri). UART'ı yapılandırın (RCIE) ve ISR'de çalıştırın.
Packet Protokolü Design
Hampante akışları hataya eğilimlidir. Basit bir paket yapısını tanımlar: (örneğin, 0x55), uzun süreli ödeme, ödeme yükü, checksum (XOR of all previous bytes).
Sistem test ve problem çözme
Programlamadan sonra, donanım ve donanım adımını doğrulayın.
Adım 1: Temel UART döngü
PIC'nin TX ve RX pins (Mevcut bir dirençle) ve yankıların karakter aldığı kodla çalıştırın. USB-UART adaptöründen bir karakter gönderebilir ve geri döndüğünü görebilirseniz, PIC'nin UART işlevseldir.
Adım 2: Bluetooth Modül AT İletişim
Bir USB-UART adaptörüne Bluetooth modülüne (belkide gerilim seviyelerini korumak) ve bir terminal kullanarak AT komut yanıtlarını doğrulayın (örneğin, PuTTY, CoolTerm veya Arduino Seri Monitor). Doğru baud oranını ayarlayın (en 38400 veya 9600).
Adım 3: Bütünleme Testi
PIC'ye modülün ve "AT" gönderen minimum bir bilgisayar çalıştırın.Prak'ın UART'taki tepkisini kontrol edin, seri terminali kullanarak doğru bir “OK” cevabı, PIC ve modülün iletişim olduğunu doğrulamaktadır.
Adım 4: Kablosuz Pairing
Sistem ve modül keşfedilebilir ( köle modüller için, bu otomatik olarak) bir akıllı Bluetooth terminali uygulaması (örneğin, Android için “Serial Bluetooth Terminali” taramak ve çiftleşmeden sonra, verileri telefondan göndermek; PIC onu geri almak ve bir GPIO kontrol etmek gerekir.
Ortak Pitfalls ve Fixes
- [FONT:0) Hiçbir yanıt veya çöp: Baud oranı yanlış bir tesadüf en sık nedendir. SPBRG hesaplamasını ve modülü AT yapılandırmasını kontrol edin.
- [FONT:0) AT modunda girmeyebilir:[Dönetici:[Dönetici:0) KEY pin'in tüm AT seansı sırasında yüksek olması ve yüksek kalması gerekir. Bazı modüller belirli bir dizi gerektirir (örneğin, KEY düşük o zaman yüksek).
- [[Dönetici:0)Module aktarma sırasında sıfırlar:) Daha önce tarif edilen gibi kapasitörler ekleyin.Eğer tedarik gerilimi 3.3 V'nin altında azalırsa, modül kahverengi olacaktır.
- [FONT=0]Stference veya kısa menzil:[Dönetici:[Dönetici:0) Yerinden gelen uçaklar veya gürültülü dijital çizgilere yakın anten izlerini kullanmaktan kaçının.Eğer PCB anteni ile bir modül kullanıyorsanız, metal muhafazaları açık tutun.
BluetoothEnabled PIC Cihazları Uygulamaları
Düşük maliyetli mikrokontrollerin kombinasyonu ve kablosuz bir bağlantı birçok olasılık açar:
- [FONT:0]Wireless sensör ağları:[Dönüşük sıcaklık, nem, ışık veya hareket ve verileri merkezi bir merkez veya akıllı telefona iletebilirsiniz.
- [FONT:0)Remote kontrol sistemleri:[Dönetici: Kontrol röleleri, motorlar veya bir telefondan veya bilgisayardan servolar, robotik veya endüstriyel otomasyon için uygun.
- [FONT:0)Ev otomasyonu:[Dönetici:[Dönetici: 8)[Dönetici:[Dönetici:[Dönetici: · 9))
- [FONT:0)Sürekli sağlık monitörleri:[Dönetici:[Dönetici: 1 )Gather kalp oranı, adım sayma veya cilt sıcaklığı ve akışları bir mobil uygulama için giriş için.
- [FONT:0)Data loggers with kablosuz indirme:) Record data to EEPROM or SD karta kayıt verileri ve Bluetooth üzerinden talep üzerine alın, kablo bağlantıları ortadan kaldırmak.
- [FONT:0)IoT ağ geçidi:[Dönetici: 0,4][/FONT=0)IoT ağ geçidi için:[[FONT=0)[[[FONTT:0)IoT Gateways:[[[FONTT:1) Bluetooth-kanıklı PIC'yi BLE sensörler ve Wi-Fi (örneğin, ek bir ESP8266 modülü kullanarak) bulut bağlantı için.
Her uygulama dikkatli bir güç yönetimi gerektirir - tipik bir para-söpektif BLE sensörü uyku aralıkları kullanarak aylarca çalışabilir, sadece bir ölçüm almak ve iletmek için uyanmak.
Daha Fazla Kaynakları ve Dış Referanslar
PIC mikrokontroller ve Bluetooth entegrasyonu hakkındaki anlayışınızı derinleştirmek için aşağıdakilere danışın:
- [FONT:0)Mikroçinin resmi PIC Mikrokontrolörlüğü Portal[Dönetici:0)[FONTD][FONT=FONT=FONT=FONT=FONT=0)
- [FONT:0)HC-05 Datasheet ve AT Komutanlığı Referans) - popüler Bluetooth modülü üzerinde kapsamlı ayrıntılar.
- [FONT=0)Mavi Çok İyi SIG Teknolojisi Genel Bakış[Dönem: 1) Klasik ve zorlu protokollerin resmi belgeleri.
- [FONT=0)Example Code Repository[[Dönetici: 1 ) - PIC UART ve HC-05 entegrasyonu için açık kaynak anahtarları (gerçek bir topluluk havuzu ile yer).
Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç
Bir PIC mikrokontrollü bir cihaz geliştirmek, geniş bir uygulama yelpazesi için güvenilir kablosuz sistemler oluşturabilir ve Bluetooth modüllerinin bu erişilebilir bir başlangıç noktası haline getirerek, doğru gerilim seviyesini kullanarak, sağlam UART'ı yazmak ve sistematik olarak test etmek, her aşamada, geniş bir şifreleme ürünleri için güvenilir bir kablosuz sistemler oluşturabilirsiniz.