رباتیک و هوافضا

تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید

به نام خدا

تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید

در این پروژه قصد داریم با استفاده از رزبری پای و یک نرم افزار اندروید سیستمی بسازیم که هر آنچه که صحبت می کنیم بر روی ال سی دی ۲ در ۱۶ نمایش داده شود. در این پروژه از نرم افزار 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 قرار دارند . می توانید نصب را با اجرا کردن مثالی تست کنید. برای اینکار کد را وارد کنید. اما قبل از آن باید ال سی دی را به رزبری پای متصل کنید.

 

 

اتصالات بین ال سی دی و رزبری پای را انجام داده و کد زیر را باید بنویسید تا اتصالات بشناسد.

بیشتر بخوانید...  سرعت سنج با GPS با قابلیت فعال سازی رله

# 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)

*
*