
به نام خدا
تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید
در این پروژه قصد داریم با استفاده از رزبری پای و یک نرم افزار اندروید سیستمی بسازیم که هر آنچه که صحبت می کنیم بر روی ال سی دی ۲ در ۱۶ نمایش داده شود. در این پروژه از نرم افزار Google Voice Keyboard via a Android App (BlueTerm) برای دریافت صدای ورودی توسط موبایل استفاده می کنیم.ارتباط موبایل و رزبری پای را با استفاده از یک یو اس بی بلوتوث انجام می دهیم.
اتصال ال سی دی ۲ در ۱۶ با رزبری پای:
قبل از مرحله ی اتصال بلوتوث نیاز داریم تا ال سی دی را به رزبری پای متصل کنیم. در این پروژه از کی کتابخانهی خارجی برای را اندازی ال سی دی استفاده کرده ایم. برای استفاده از این کتابخانه نیاز داریم ابتدا آن را نصب کنیم. ابتدا باید دستورات زیر را وارد کنیم. با اینکار کتابخانه ی مورد نظر نصب می شود.
git clone https://github.com/adafruit/Adafruit_Python_CharLCD.git cd ./Adafruit_Python_CharLCD sudo python setup.py install
حال کتابخانه نصب شد حال با کد زیر این کتابخانه در کد پایتون فراخوانی خواهد شد.
import Adafruit_CharLCD as LCD
مثال هایی در پوشه ی examples که در پوشه ی کتابخانه ی Adafruit_Python_CharLCD قرار دارند . می توانید نصب را با اجرا کردن مثالی تست کنید. برای اینکار کد را وارد کنید. اما قبل از آن باید ال سی دی را به رزبری پای متصل کنید.
اتصالات بین ال سی دی و رزبری پای را انجام داده و کد زیر را باید بنویسید تا اتصالات بشناسد.
# Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2
حال می توانید مثال زیر را اجرا کنید
- lcd.message(message) = To print the text on LCD.
- lcd.clear() = To clear the LCD.
- lcd.set_cursor(col, row) = Move the cursor to any position at column and row.
- lcd.blink(True) = To blink the cursor (True or False)
- lcd.move_left() = To move the cursor to Left by one position.
- lcd.move_right() = To move the cursor to Right by one position.
نصب کتابخانه های لازم برای ارتباط بلوتوث بین موبایل و رزبری پای:
در این پروژه ما از رزبری پای ۲ مدل بی استفاده می کنیم. از یک USB Bluetooth dongle برای ایجاد ارتباط بلوتوث استفاده می کنیم. شما باید رزبین خود را با کد زیر آپدیت کنید :
sudo apt-get update sudo apt-get upgrade
سپس با کد زیر پکیج های لازمه ی بلوتوث را دانلود می کنیم
sudo apt-get install bluetooth blueman bluez
سپس با دستور زیر رزبری پای را ریبوت می کنیم
sudo reboot
سپس با دستور زیر کتابخانه ی مورد نیاز را دانلود می کنیم :
sudo apt-get install python-bluetooth
سپس کتابخانه ی GPIO پشتیبان را با کد زیر دانلود می کنیم.
sudo apt-get install python-rpi.gpio
اتصال موبایل به رزبری پای :
اتصال رزبری پای به موبایل از طریق بلوتوث خیلی آسان است. در این پروژه یک موبایل اندروید را به رزبری پای متصل کردیم. برای اینکار کافی ست کد زیر را تایپ کنید :
lsusb
حال bluetoothctl را با دستور زیر باز کنید :
sudo bluetoothctl
می توانید تمام دستورات bluetoothctl را با تایکپ کردن HELP مشاهده کنید :
[bluetooth]# power on [bluetooth]# agent on [bluetooth]# discoverable on [bluetooth]# pairable on [bluetooth]# scan on
بعد از آخرین دستور می توانید دستگاه بلوتوث خود را ببینید . مطمئن شوید بلوتوث دستگاه شما روشن است و قابل مشاهده برای دیگر دستگاه ها باشد. سپس mac آدرس دستگاه خود را بیابید و با استفاده کد زیر به سیستم متصل شوید:
pair <address of your phone>
شماتیک مدار تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید :
در شکل زیر تمامیه اتصالات لازم را مشاهده می کنید.
بعد از دانلود و نصب نرم افزار BlueTerm ، کد پایتون زیر را اجرا کنید و با استفاده از BlueTerm رزبری پای را به موبایل متصل کنید. سپس می توانید صحبت کید و بر روی ال سی دی صحبت خود را به صورت تایپ شده ببینید
دانلود کد تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید :
Code import bluetooth import RPi.GPIO as GPIO #calling for header file which helps in using GPIOs of PI import Adafruit_CharLCD as LCD # Raspberry Pi pin setup lcd_rs = 18 lcd_en = 23 lcd_d4 = 24 lcd_d5 = 16 lcd_d6 = 20 lcd_d7 = 21 lcd_backlight = 2 # Define LCD column and row size for 16x2 LCD. lcd_columns = 16 lcd_rows = 2 lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) server_socket=bluetooth.BluetoothSocket( bluetooth.RFCOMM ) port = 1 server_socket.bind(("",port)) server_socket.listen(1) client_socket,address = server_socket.accept() print "Accepted connection from ",address while 1: data = client_socket.recv(1024) print "Received: %s" % data if (data != ""): lcd.clear() print (len(data)) if (len(data) > 16): #breaking long strings into 2 parts i = len(data)-16 a,b = data[:16], data[16:] #first string will be of 16 char lcd.message(a) lcd.message('\n') lcd.message(b) print i print a print b else: lcd.message(data) if (data == "clear"): lcd.clear() if (data == "q"): print ("Quit") break client_socket.close() server_socket.close()
دیدگاهها (0)