- Pag-install ng Mga Kinakailangan na Pakete para sa Komunikasyon sa Bluetooth:
- Mga Pares ng Pares na may Raspberry Pi sa Bluetooth:
- Pagpili ng Laruang Kotse:
- Circuit Diagram at Paliwanag:
- Kinokontrol ang Car mula sa malayo sa Android App BlueTerm:
- Pagprogram ng Python:
Ang Raspberry Pi ay napakapopular para sa mga proyekto ng IoT dahil sa seamless na kakayahan ng wireless na komunikasyon sa internet. Ang Raspberry Pi 3 ay nakabuo ng Wi-Fi at Bluetooth, at ang Bluetooth ay isang tanyag na wireless na komunikasyon Protocol. Ngayon ay magtatayo kami ng isang Remote Controlled Car gamit ang Raspberry Pi 3 at Bluetooth, dito gagamitin namin ang Smart Phone bilang isang remote upang makontrol ang kotse. Nauna na naming binuo ang RC car na ito gamit ang Arduino.
Narito ginagamit namin ang Raspberry Pi 3 na may nakapaloob na Bluetooth, kaya hindi namin kailangang gumamit ng anumang panlabas na USB Bluetooth dongle. Narito ginagamit namin ang RFCOMM Bluetooth protocol para sa wireless na komunikasyon.
Sinusundan ng Programming para sa Bluetooth sa Python ang modelo ng socket programming at mga komunikasyon sa pagitan ng mga aparatong Bluetooth ay ginagawa sa pamamagitan ng RFCOMM socket. Ang RFCOMM (Radio Frequency Communication) ay isang Bluetooth Protocol na naglaan ng tinulad na mga serial port ng RS-232 at tinawag din bilang Serial Port Emulation. Ang profile ng serial serial ng Bluetooth ay batay sa protokol na ito. Ang RFCOMM ay napakapopular sa mga application ng Bluetooth dahil sa malawak na suporta at magagamit na API sa publiko. Ito ay nakasalalay sa L2CAP na protokol.
Kung mayroon kang Raspberry Pi 2, maaari mo ring gamitin ang panlabas na dongle ng Bluetooth o Bluetooth module na HC-06. Suriin ang aming mga nakaraang proyekto para sa paggamit ng mga panlabas na aparatong Bluetooth na ito: Pagkontrol ng Raspberry Pi GPIO gamit ang Android App sa mga kinokontrol na Home Appliances ng Bluetooth at Raspberry Pi.
Pag-install ng Mga Kinakailangan na Pakete para sa Komunikasyon sa Bluetooth:
Bago simulan, kailangan naming mag-install ng ilang software para sa pag- set up ng komunikasyon sa Bluetooth sa Raspberry Pi. Dapat ay mayroon kang isang naka-install na memory card na Raspbian Jessie kasama ang Raspberry Pi. Suriin ang artikulong ito upang mai-install ang Raspbian OS at magsimula sa Raspberry Pi. Kaya ngayon kailangan muna naming i-update ang Raspbian gamit ang mga utos sa ibaba:
sudo apt-get update sudo apt-get upgrade
Pagkatapos kailangan naming mag-install ng ilang mga package na nauugnay sa Bluetooth:
sudo apt-get install ng bluetooth blueman bluez
Pagkatapos ay i-reboot ang Raspberry Pi:
sudo reboot
Ang BlueZ ay isang bukas na proyekto ng mapagkukunan at opisyal na stack ng Linux Bluetooth protocol. Sinusuportahan nito ang lahat ng mga pangunahing mga protocol ng Bluetooth at ngayon ay naging bahagi ng opisyal na Linux Kernel.
Nagbibigay ang Blueman ng interface ng Desktop upang pamahalaan at makontrol ang mga aparatong Bluetooth.
Panghuli kailangan namin ng python Library para sa komunikasyon ng Bluetooth upang makapagpadala at makatanggap kami ng data sa pamamagitan ng RFCOMM gamit ang wika ng Python:
sudo apt-get install python-bluetooth
I-install din ang mga library ng suporta ng GPIO para sa Raspberry Pi:
sudo apt-get install python-rpi.gpio
Tapos na kami sa pag-install ng kinakailangang mga pakete para sa komunikasyon ng Bluetooth sa Raspberry Pi.
Mga Pares ng Pares na may Raspberry Pi sa Bluetooth:
Ang pagpapares ng Mga Bluetooth Device, tulad ng mobile phone, na may Raspberry Pi ay napakadali. Dito ipinares namin ang aming Android Smart phone sa Raspberry Pi. Na-install namin dati ang BlueZ sa Pi, na nagbibigay ng isang linya ng utos ng utos na tinatawag na " blu Bluetoothctl" upang pamahalaan ang aming mga aparatong Bluetooth.
Ngayon buksan ang utility ng bluetoothctl sa pamamagitan ng utos sa ibaba:
sudo bluetoothctl
Maaari mong suriin ang lahat ng mga utos ng bluetoothctl utility sa pamamagitan ng pag-type ng 'tulong' . Sa ngayon kailangan naming maglagay ng mga utos sa ibaba sa ibinigay na pagkakasunud-sunod:
# kapangyarihan sa # ahente sa # madidiskubre sa # pares sa # pag-scan sa
Matapos ang huling utos na "mag-scan sa", makikita mo ang iyong Bluetooth aparato (Mobile phone) sa listahan. Tiyaking naka-on ang Bluetooth ng iyong mobile at nakikita ng mga kalapit na aparato. Pagkatapos kopyahin ang MAC address ng iyong aparato at ipares ito sa pamamagitan ng paggamit ng ibinigay na utos:
pares
Pagkatapos ay sasabihan ka para sa Passcode o I-pin sa iyong Terminal console pagkatapos i-type ang passcode doon at pindutin ang enter. Pagkatapos i-type ang parehong passcode sa iyong mobile phone kapag na-prompt at matagumpay kang ipinares sa Raspberry Pi. Ipinaliwanag din namin ang buong prosesong ito sa Video na ibinigay sa nakaraang Tutorial sa pagkontrol ng GPIO. Narito ang direktang link sa YouTube.
Tulad ng sinabi kanina, maaari mo ring gamitin ang interface ng Desktop upang ipares ang Mobile phone. Matapos i-install ang Blueman, makikita mo ang isang icon ng Bluetooth sa kanang bahagi ng iyong desktop ng Raspberry Pi tulad ng ipinakita sa ibaba, gamit kung saan maaari mong madaling gawin ang pagpapares.
Pagpili ng Laruang Kotse:
Sa proyektong Raspberry Pi Controlled Car na ito ay gumamit kami ng laruang kotse para sa pagpapakita. Pinili namin ang isang kotse ng laruang RF na may gumagalaw na tampok na pagpipiloto sa paglipat. Matapos bilhin ang kotseng ito pinalitan namin ang RF circuit nito sa aming Raspberry circuit. Ang kotseng ito ay may dalawang DC motor, ang isa upang paikutin ang dalawang gulong sa harap at ang isa pa ay paikutin ang dalawang likurang gulong. Ginamit ang front side motor para sa pagbibigay ng direksyon sa kotse ay nangangahulugang pag-left o left side (tulad ng totoong tampok na pagpipiloto ng kotse). At ang motor sa likuran ay ginagamit para sa pagmamaneho ng kotse sa pasulong at paatras na direksyon. Ang isang Bluetooth ng Raspberry ay ginagamit upang makatanggap ng utos nang wireless mula sa android phone upang makontrol ang kotse.
Maaari mong gamitin ang anumang laruang kotse na mayroong dalawang DC Motors upang paikutin ang harap at Rear Wheels.
Circuit Diagram at Paliwanag:
Sa Remote Controlled Car na ito, kailangan lamang naming ikonekta ang Raspberry Pi sa dalawang motor na gumagamit ng L293D module. Para sa pagpapatakbo ng Raspberry Pi at kotse gumamit kami ng isang mobile power bank. Ang mobile power bank ay sapat na upang mapatakbo ang mga motor ng Raspberry Pi at ng kotse ngunit kapag inilagay namin ang power bank sa kotse pagkatapos ay dahil sa mabigat na bigat ng mobile power bank car ay hindi makakagalaw nang maayos. Kaya inirerekumenda namin na gamitin ang mababang bigat ng suplay ng kuryente o mga baterya ng Lithium para sa pagpapatakbo ng system. Ang lahat ng mga koneksyon ay ipinapakita sa circuit diagram sa ibaba. Suriin din ang aming seksyon ng Robotics upang malaman ang higit pa tungkol sa pagkontrol sa Mga Motors na may iba't ibang mga teknolohiya.
Tandaan: huwag maglagay ng higit sa 5v sa raspberry pi.
Ang circuit na ito ay ginawa sa Perf Board para sa proyektong ito, upang mas mababa ang timbang sa kotse.
Kinokontrol ang Car mula sa malayo sa Android App BlueTerm:
Ngayon pagkatapos i-set up ang lahat ng mga bagay at matagumpay na subukan ang Smart Phone sa paglipas ng bluetooth, kailangan naming mag-install ng isang Android App para sa pakikipag-usap sa Raspberry Pi gamit ang isang Bluetooth Serial Adapter, upang makontrol namin ang mga GPIO pin ng Raspberry Pi. Tulad ng sinabi sa naunang RFCOMM / SPP na protokol ay tumutulad sa serial na komunikasyon sa Bluetooth, kaya't na-install namin dito ang BlueTerm App na sumusuporta sa protocol na ito.
Maaari mo ring gamitin ang anumang iba pang Bluetooth Terminal App na sumusuporta sa komunikasyon sa pamamagitan ng RFCOMM socket.
Ngayon pagkatapos i-download at mai-install ang BlueTerm App, patakbuhin ang nasa ibaba na ibinigay na Python Program mula sa terminal at ikonekta ang ipinares na raspberrypi device mula sa BlueTerm App nang sabay.
Pagkatapos ng matagumpay na koneksyon makikita mo ang konektado: raspberrypi sa kanang tuktok na sulok ng App tulad ng ipinakita sa ibaba:
Ngayon ay maaari mo lamang ipasok ang mga sumusunod na utos mula sa BlueTerm app upang makagalaw ang kotse sa nais na direksyon. Pindutin ang 'q' upang lumabas sa programa. Maaari mong gamitin ang Google Voice Typing Keyboard upang makontrol ang kotseng ito gamit ang iyong Voice. Suriin ang kumpletong demo sa Video na ibinigay sa dulo.
Mga Utos:
F - Forward Mov
B - Umatras na Bumalik
S - Itigil
L - Forward Left Move
R - Ipasa ang Kanang Paglipat
A - Paatras sa Kaliwa na Paglipat
P - Paatras Kanan Lumipat
Q - Tumigil
Pagprogram ng Python:
Ang Python Program para sa Pagkontrol ng Raspberry Pi GPIO sa Android App ay napaka-simple at nagpapaliwanag sa sarili. Tanging kailangan namin upang malaman ang kaunti tungkol sa code na nauugnay sa komunikasyon sa Bluetooth RFCOMM. Kung hindi man ay katulad nito tulad ng pagkontrol sa anumang robot o kotse sa pamamagitan ng paggawa ng mataas o mababa sa pin ng motor. Ang kumpletong programa ay ibinibigay sa ibaba sa seksyon ng Code.
Una, kailangan naming i-import ang Bluetooth socket library na nagbibigay-daan sa amin upang makontrol ang Bluetooth gamit ang wika ng Python; na-install namin ang library para sa pareho sa nakaraang seksyon.
i-import ang Bluetooth
Pagkatapos ay nagsama kami ng ilang higit pang mga file ng header at tinukoy ang mga pin para sa mga motor na ilagay ang mga ito bilang mababang default.
i-import ang oras ng pag-import ng bluetooth ng pag-import ng RPi.GPIO bilang GPIO m11 = 18 m12 = 23 m21 = 24 m22 = 25 GPIO.setwarnings (Maling) GPIO.setmode (GPIO.BCM) GPIO.setup (m11, GPIO.OUT) GPIO.setup (m12, GPIO.OUT) GPIO.setup (m21, GPIO.OUT) GPIO.setup (m22, GPIO.OUT) GPIO.output (m11, 0) GPIO.output (m12, 0) GPIO.output (m21, 0) GPIO.output (m22, 0)
Nasa ibaba ang responsableng code para sa komunikasyon ng Bluetooth:
server_socket = bluetooth.Blu BluetoothSocket (bluetooth.RFCOMM) port = 1 server_socket.bind (("", port)) server_socket.listen (1) client_socket, address = server_socket.accept () i-print ang "Tinanggap na koneksyon mula", address
Dito maaari nating maunawaan ang mga ito sa pamamagitan ng linya:
server_socket = bluetooth.Blu BluetoothSocket (bluetooth.RFCOMM): Lumilikha ng socket para sa komunikasyon ng Bluetooth RFCOMM.
server_socket.bind (("", port): - Tinatali ng server ang script sa host '' sa port.
server_socket.listen (1): Ang server ay nakikinig upang tanggapin ang isang koneksyon nang paisa-isa.
client_socket, address = server_socket.accept (): Tumatanggap ang server ng kahilingan sa koneksyon ng kliyente at italaga ang mac address sa variable address, client_socket ang socket ng client
Pagkatapos nito lumikha kami ng ilang mga pagpapaandar na responsable para sa paglipat ng kotse sa nais na direksyon: def left_side_forward (), def right_side_forward (), def forward (), def left_side_reverse (), def right_side_reverse (), def reverse () def stop (). Ang mga pagpapaandar na ito ay tatawagan ayon sa pagkakabanggit kapag pinindot namin ang L, R, F, A, P, B, S mula sa Mobile blueTerm app at ang kotse ay lilipat nang naaayon.
data = "" habang 1: data = client_socket.recv (1024) i-print ang "Natanggap:% s"% data kung (data == "F"): pasulong () elif (data == "L"): left_side_forward () elif (data == "R"): right_side_forward () elif (data == "B"): reverse () elif (data == "A"): left_side_reverse () elif (data == "P"): right_side_reverse () elif data == "S": itigil () elif (data == "Q"): i-print ("Quit") masira ang client_socket.close () server_socket.close ()
data = client_socket.recv (1024): Tumanggap ng data sa pamamagitan ng client socket client_socket at italaga ito sa variable na data. Ang maximum na 1024 na mga character ay maaaring matanggap nang paisa-isa.
Sa wakas, pagkatapos ng lahat ng programa, isara ang koneksyon ng client at server gamit ang code sa ibaba:
client_socket.close () server_socket.close ()