در اين بخش مي‌توانيد در مورد تمامي مسائل مرتبط با سایر میکروکنترلرها به بحث بپردازيد
Novice Poster

Novice Poster



no avatar
پست ها

56

تشکر کرده: 0 مرتبه
تشکر شده: 89 مرتبه
تاريخ عضويت

سه شنبه 3 شهریور 1394 11:41

آرشيو سپاس: 0 مرتبه در 0 پست

روی رسپبری پای تان یک lcd درایو کنید. (قسمت اول)

توسط کافه ربات » پنج شنبه 8 بهمن 1394 14:08

    با عرض سلام خدمت دوستان عزیز
    امروز می خوایم قسمت اول از آموزش چند بخشی درایو کردن یک LCD رو روی رسپبری پای براتون بزاریم.
    در پایان این آموزش قادر خواهید بود تا یک LCD به رسپبری پای تان متصل کنید. با ما همراه باشید.
    آموزش کامل این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
     لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 



    اضافه کردن یک LCD به هر پروژه ای، ظاهر بهتری به آن می دهد. در این آموزش نحوه ی اتصال یک LCD ارزان قیمت HDD44780 به رسپبری پای با استفاده از 6 پین GPIO مورد بررسی قرار گرفته است. البته راه های دیگری، از جمله I2C و UART نیز برای اتصال این LCD وجود دارد، اما روشی که در این آموزش مطرح شده است، جز بهترین روش هاست.
    مزایای این روش این است که:

    میتوانید از LCDهای ارزان قیمت استفاده کنید
    به درایور I2C نیاز ندارد
    نیازی به پورت سریال بر روی رسپبری پای ندارد.
    کد پایتون زمان، تاریخ و آدرس ip رسپبری پای را به نمایشگر می فرستد. اگر از رسپبری پای در حالت بدون پوشش استفاده می کنید، تعیین آدرس ip بایک نگاه حسن بزرگی است.


    گام اول: قطعات مورد نیاز

    1. LCD استاندارد 16x2
    2. برد توسعه 40 پین رسپبری پای
    3. سیم برد بورد
    4. برد بورد سایز کوچک یا بزرگ
    5. رسپبری پای
    6. پتانسیومتر 10K
    7. پین هدر نری

برای این آموزش LCDهای 16x1، 16x2، 20x2، 20x نیز قابل استفاده هستند. اما LCDهای 40x4 کار نمی کنند.

ادامه این آموزش رو در قسمت بعد که هفته ی آینده اس، براتون میزاریم. آموزش کامل ساخت رو می تونید در سایت کافه ربات مشاهده کنید.
با آرزوی موفقیت
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

Mahdi1944 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

56

تشکر کرده: 0 مرتبه
تشکر شده: 89 مرتبه
تاريخ عضويت

سه شنبه 3 شهریور 1394 11:41

آرشيو سپاس: 0 مرتبه در 0 پست

روی رسپبری پای تان یک lcd درایو کنید. (قسمت دوم)

توسط کافه ربات » چهارشنبه 14 بهمن 1394 02:15

با عرض سلام خدمت دوستان عزیز
امروز می خوایم قسمت اول از آموزش چند بخشی درایو کردن یک LCD رو روی رسپبری پای براتون بزاریم.
آموزش کامل این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

گام دوم: سخت افزار

سیم کشی برد توسعه 40 پین به LCD


LCD شما دارای 16 کانکتور است که به احتمال زیاد از کنترل کننده های HD44780 استفاده می کند.

این تجهیزات دارای پین های خروجی (pinouts) یکسانی هستند به همین دلیل کار با آن ها آسان است. از آنجایی که این LCDها از رابط های موازی استفاده می کنند، برای کنترل آنها به اتصالات و پین های زیادی از رسپبری پای نیاز خواهد بود. در این آموزش از چهار پین داده (مد چهار بیتی) و دو پین کنترل استفاده شده است.
پین های داده (data pins) مستقیم هستند و داده ها را به نمایشگر می فرستند. در اینجا از حالت نوشتن (write mode) بر روی نمایشگر استفاده می کنیم و هیچ داده ای خوانده نمی شود.
پین register select دو کاربرد دارد. اگر منطق این پین صفر شود فرمان هایی را به سمت LCD می فرستد از جمله اینکه در چه مختصاتی از LCD قرار گیریم و یا اینکه صفحه را پاک کنیم . به این عمل ثبت فرمان گفته می شود. اگر منطق این پین یک شود ، پین به سمت مد داده می رود و برای ارسال داده به نمایشگر استفاده می شود.
با توجه به اینکه می خواهیم روی LCD بنویسیم پین read/write باید از لحاظ منطقی صفر شود (write only ) پین enable نیز برای ثبت داده ها در رجیستر باید toggle شود.

پین های خروجی LCD:
زمین
VCC 5 ولت نه 3/3 ولت
تنظیم کنتراست (VO) از پتانسیومتر
Register Select (RS)، RS=0 : دستور و RS=1 : داده.
Read/Write (R/W). R/W=0 : Write (نوشتن) و R/W=1 : Read (خواندن) . (در این آموزش از این پین استفاده نشده است)
Clock (Enable).
Bit 0 (در عملکرد چهار بیتی استفاده نمی شود)
Bit 1 (در عملکرد چهار بیتی استفاده نمی شود)
Bit 2 (در عملکرد چهار بیتی استفاده نمی شود)
Bit 3 (در عملکرد چهار بیتی استفاده نمی شود)
Bit 4
Bit 5
Bit 6
Bit 7
نور زمینه LED آند (+)
نور زمینه LED کاتد (-)
قبل از نوشتن، بررسی کنید که LCD نور زمینه LED داشته باشد نه نور زمینه EL . نور زمینه LED از 10 تا 40 mA استفاده می کند ، در حالی که EL از 200 mA به بالا استفاده می کند. نور زمینه EL راحت تر به دست می آید ولی قابل استفاده نیست. بنابراین از نور زمینه نمایشگر اطمینان حاصل کنید چون در غیر این صورت بار بیشتری را روی رسپبری پای تحمیل می کنید. بعضی از LED های ارزان قیمت که دارای نور زمینه LED هستند، روی ماژول LED برای نور زمینه مقاومت ندارند. اگر از وجود این مقاومت اطمینان ندارید، به جای اتصال مستقیم پین 15 و 5V ، یک مقاومت یک اهم را بین آن ها متصل کنید.



نوشتن دیاگرام


در ابتدا، پین های تغذیه برد توسعه را به ریل (rail) تغذیه برد بورد متصل کنید. +5V از برد توسعه به ریلی که راه قرمز دارد می رود (سیم قرمز) و GND از برد توسعه به ریلی که راه آبی دارد می رود(سیم مشکی).
برای فرستادن داده به LCD به طریق زیر عمل می کنیم:
- پین #1 LCD به زمین می رود (سیم سفید)
- پین #2 LCD به +5V می رود (سیم قرمز)
- پین #3 (Vo) به وسط پتانسیومتر وصل می شود(سیم نارنجی)
- پین #4 (RS) به #25 از Cobbler وصل می شود (سیم زرد)
- پین #5 (RW) به زمین می رود (سیم سیاه)
- پین #6 (EN) به #24 از Cobbler وصل می شود (سیم سبز)
- از پین های #7 ، #8 ، #9 و #10 LCD صرف نظر کنید
- پین #11 (D4) به #23 از Cobbler وصل می شود (سیم آبی)
- پین #12 (D5) به #17 از Cobbler وصل می شود (سیم بنفش)
- پین #13 (D6) به #21 از Cobbler وصل می شود (سیم خاکستری)
- پین #14 (D7) به #22 از Cobbler وصل می شود (سیم سفید)
- پین #15 (LED +) به +5V می رود (سیم قرمز)
- پین #16 (LED -) به زمین می رود (سیم سیاه)
سپس پتانسیومتر را متصل کنید، پین چپ به زمین وصل می شود (سیم سیاه) و پین راست به +5V (سیم قرمز).

ادامه اموزش رو هفته بعد براتون خواهیم گذاشت.
آموزش کامل این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

با آرزوی موفقیت

Mahdi1944 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

56

تشکر کرده: 0 مرتبه
تشکر شده: 89 مرتبه
تاريخ عضويت

سه شنبه 3 شهریور 1394 11:41

آرشيو سپاس: 0 مرتبه در 0 پست

روی رسپبری پای تان یک lcd درایو کنید. (قسمت سوم)

توسط کافه ربات » سه شنبه 20 بهمن 1394 11:43

با عرض سلام مجدد خدمت دوستان عزیز
امروز قسمت سوم  آموزش درایو کردن یک LCD روی رسپبری پای رو براتون میزاری
آموزش کامل ساخت این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


شماتیک




5v LCD vs 3.3v Pi
پین های GPIO رسپبری پای برای 3.3v طراحی شده اند، ولی LCD ما یک نمایشگر 5V است. )بهتر است از یک نمایشگر 5V استفاده کنید.( استفاده از یک نمایشگر 5V در صورتی مفید است که داده ها را به رسپبری پای ارسال کنید. از ریل تغذیه 3.3V روی Cobbler استفاده نمی شود و چون نمی خواهیم سیگنال 5V را که به رسپبری پای فرستاده می شود را نمایش دهیم، پین های RW (read/write) نمایشگر به GND وصل می کنیم.

Preparing the LCD
قبل از اینکه شروع کنید، اطمینان حاصل کنید که یک نوار 0.1 اینچی از هدر نری (strip of 0.1" male header) و پتانسیومتر 10K دارید.


اغلب LCD ها یک نوار باریک (strip) دارند که 16 پین در آن قرار می گیرد، اگر طول هدر (header) شما کمی بلندتر بود، می توانید برای رسیدن به طول دلخواه سر آن را بشکنید.


در ادامه هدر را به LCD لحیم کنید. باید این کار را انجام دهید. استفاده از روش "press fit" چندان مناسب نیست!


ادامه آموزش رو هفته بعد براتون خواهیم گذاشت.
آموزش کامل پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 
با آرزوی موفقیت دوستان

Novice Poster

Novice Poster



no avatar
پست ها

56

تشکر کرده: 0 مرتبه
تشکر شده: 89 مرتبه
تاريخ عضويت

سه شنبه 3 شهریور 1394 11:41

آرشيو سپاس: 0 مرتبه در 0 پست

روی رسپبری پای تان یک LCD درایو کنید. (قسمت چهارم)

توسط کافه ربات » يکشنبه 2 اسفند 1394 12:08

با عرض سلام مجدد خدمت دوستان عزیز
امروز قسمت چهارم اموزش درایور کردن LCD روی رسپبری پای رو براتون می زاریم.
آموزش کامل ساخت این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

با اتصال سیم های 5V و GND از برد توسعه به بردبورد آغاز کنید. سپس پین های #1، #2 و #15 ، #16 ریل تغذیه بردبورد را همان طور که نشان داده شده است، متصل کنید. حالا باید نور زمینه روی صفحه بیاید. اگر این اتفاق نیفتاده است، سیم کشی ها را دوباره چک کنید.


در ادامه ، همان طور که در شکل های بالا نشان داده شده است، سیمی از پتانسیومتر کنتراست به سه پین زیر وصل کنید:

- پین وسط که به پین #3 LCD متصل شده
- پینی که به 5V رفته است
- پینی که به زمین رفته است.
پتانسیموتر را آنقدر بچرخانید تا اولین خط را روی LCD ببینید که به صورت خطوط ضخیم مستطیل شکل هستند. اگر این خطوط را ظاهر نشدند مجددا سیم کشی ها را بررسی کنید.


همان طور که در دیاگرام بالا نشان داده شده است، سیم کشی را برای پین های RS، RW، EN، D4، D5، D6 و D7 به اتمام برسانید.


گام سوم: نرم افزار
برای استفاده از پین های GPIO رسپبری پای، مواردی که در ادامه آمده است باید نصب شود.
اضافه کنید آخرین پکیج (packages) dev را برای پایتون(2.x) :
$ sudo apt-get install python-dev


به روز رسانی distribute (مورد نیاز برای RPi.GPIO 0.3.1a)
$ sudo apt-get install python-setuptools
$ sudo easy_install -U distribute


$ sudo apt-get install python-pip


نصب rpi.gpio (0.3.1a) یا بالاتر:
$ sudo pip install rpi.gpio


پایتون اسکریپت
توجه داشته باشید که این قسمت، کد پایتون LCD است که مربوط به نسخه های قدیمی تر رسپبری پای می باشد.
می توانید از این لینک کتابخانه های جدیدتری که روی انواع پلتفرم ها کار می کند را پیدا کنید. بهتر است برای پروژه های جدید از کتابخانه های جدید استفاده شود.

کد

کد پایتون برای انواع مختلف LCD ها را می توانید از فایل زیر دریافت کنید.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

برای کار، به دو فایل زیر نیاز دارید:
1. Adafruit_CharLCD.py – که شامل دسته ای از پایتون ها برای کنترل LCD است.
2. Adafruit_CharLCD_IPclock_example.py – کدی برای آدرس ip ، زمان و تاریخ.
فایل اول ، Adafruit_CharLCD.py، تلفیقی از دو منبع متفاوت از کد LCD هست.
ساده ترین روش برای نصب کد بر روی رسپبری پای، استفاده از کابل اینترنت است و "git" است که به صورت پیش فرض روی بیشتر distrosها نصب شده است. به آسانی فرمان هایی که در ادامه آمده است را از مسیر تقریبی (ex. /home/pi): اجرا کنید.
1.     apt-get install git
2.     git clone git://github.com/adafruit/Adafruit-Rasp ... n-Code.git
3.     cd Adafruit-Raspberry-Pi-Python-Code
4.     cd Adafruit_CharLCD


آزمایش کردن

سیم کشی ها را با استفاده از اجرای کد پایتون Adafruit_CharLCD.py آزمایش کنید. این کد چون کد کوچکی است به راحتی نشان میدهد که سیم کشی ها درست انجام شده است.
می توانید از nano Adafruit_CharLCD.py برای ویرایش استفاده کنید.
1.     chmod +x Adafruit_CharLCD.py
2.     sudo ./Adafruit_CharLCD.py


ادامه آموزش رو هفته ی اینده براتون خواهیم گذاشت.
آموزش کامل ساخت این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

با آرزوی موفقیت

Mahdi1944 از این پست سپاسگزاري کرده است

Novice Poster

Novice Poster



no avatar
پست ها

56

تشکر کرده: 0 مرتبه
تشکر شده: 89 مرتبه
تاريخ عضويت

سه شنبه 3 شهریور 1394 11:41

آرشيو سپاس: 0 مرتبه در 0 پست

روی رسپبری پای تان یک lcd درایو کنید. (قسمت پنجم)

توسط کافه ربات » سه شنبه 11 اسفند 1394 13:44

با عرض سلام مجدد خدمت دوستان عزیز
امروز قسمت پنجم و پایانی درایو کردن یک LCD روی رسپبری پای روی براتون خواهیم گذاشت.
آموزش کامل ساخت این پروژه رو می تونید در سایت کافه ربات مشاهده کنید.

 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

مثال ساعت IP

این اسکریپ فرض می کند که می خواهید آدرس ip اترنت (eth0) را نشان دهید. برای آدرس ip وایرلس، باید eth0 را با wlan0 یا wlan1 جایگزین کنید.
1.     #!/usr/bin/python
2.     
3.     from Adafruit_CharLCD import Adafruit_CharLCD
4.     from subprocess import *
5.     from time import sleep, strftime
6.     from datetime import datetime
7.     
8.     lcd = Adafruit_CharLCD()
9.     
10.     cmd = "ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1"
11.     
12.     lcd.begin(16,1)
13.     
14.     def run_cmd(cmd):
15.             p = Popen(cmd, shell=True, stdout=PIPE)
16.             output = p.communicate()[0]
17.             return output
18.     
19.     while 1:
20.             lcd.clear()
21.             ipaddr = run_cmd(cmd)
22.             lcd.message(datetime.now().strftime('%b %d  %H:%M:%S\n'))
23.             lcd.message('IP %s' % ( ipaddr ) )
24.             sleep(2)


اجرا کردن کد
1.     $ sudo ./Adafruit_CharLCD_IPclock_example.py


چیزی که باید ببینید


init script
مزیت استفاده از کد Adafruit_CharLCD_IPclock_example.py این است که میتوان آن را به صورت دستی اجرا کرد، اما ضعف آن این است که وقتی که رسپبری پای بهش وصل می شود، که زمان و آدرس ip را روی نمایشگر نشان می دهد. این مشکل را میتوان با استفاده از init script حل کرد. که با استفاده از اجرای کد Adafruit_CharLCD_IPclock_example.py و بوت کردن سیستم قابل انجام است.
کد را در مسیر /etc/init.d/lcd کپی کنید(برای نوشتن این مسیر نیاز دارید که از sudo استفاده کنید):
1.     ### BEGIN INIT INFO
2.     # Provides: LCD - date / time / ip address
3.     # Required-Start: $remote_fs $syslog
4.     # Required-Stop: $remote_fs $syslog
5.     # Default-Start: 2 3 4 5
6.     # Default-Stop: 0 1 6
7.     # Short-Description: Liquid Crystal Display
8.     # Description: date / time / ip address
9.     ### END INIT INFO
10.     
11.     
12.     #! /bin/sh
13.     # /etc/init.d/lcd
14.     
15.     
16.     export HOME
17.     case "$1" in
18.         start)
19.             echo "Starting LCD"
20.             /home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD/Adafruit_CharLCD_IPclock_example.py  2>&1 &
21.         ;;
22.         stop)
23.             echo "Stopping LCD"
24.          LCD_PID=`ps auxwww | grep Adafruit_CharLCD_IPclock_example.py | head -1 | awk '{print $2}'`
25.          kill -9 $LCD_PID
26.         ;;
27.         *)
28.             echo "Usage: /etc/init.d/lcd {start|stop}"
29.             exit 1
30.         ;;
31.     esac
32.     exit 0


باید خط زیر را در کد به مسیری که پایتون اسکریپت IPclock را نگه میدارید تغییر دهید.
/home/pi/Adafruit-Raspberry-Pi-Python-Code/Adafruit_CharLCD/Adafruit_CharLCD_IPclock_example.py
init script قابل اجرا است
sudo chmod +x /etc/init.d/lcd


با استفاده از دستور update-rc.d ، lcd init script به سیستم شناسانده می شود:
sudo update-rc.d lcd defaults


اکنون با هر راه اندازی، LCD به صورت اتوماتیک زمان ، تاریخ و آدرس ip را نشان می دهد. این بدان معنی است که شما می توانید بدون نیاز به مانیتور بفهمید که رسپبری پای چه زمانی قابل دسترس هست و ip آدرس آن چیست.


برنامه ساعت را می توانید با اجرای کد زیر متوقف کنید:
sudo /etc/init.d/lcd stop


تایم زون (Time Zone)
رسپبری پای بر اساس زمان جهانی پیکربندی شده است. اما بهتر است بر اساس زمان منطقه خودتان تنظیم شود. با استفاده از این قسمت می توانید برای هر منطقه، زمان را روی رسپبری پای مشخص کنید.
$ sudo dpkg-reconfigure tzdata


در ادامه یک نمونه نشان داده شده است که به شما اجازه می دهد تا منطقه زمانی خود را انتخاب کنید.


 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

Mahdi1944 از این پست سپاسگزاري کرده است


 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان