راه اندازی صفحه کلید لمسی (تاچ پد) با رزبری پای و پایتون
سلام. راه اندازی صفحه کلید لمسی (تاچ پد) با Raspberry Pi (آموزش رزبری پای #11) را آماده کردیم.
محتویات
آموزش اتصال کیبورد لمسی به رزبری پای
در این آموزش رزبری پای، ما یک تاچ پد خازنی را به Raspberry pi متصل میکنیم. صفحه کلید خازنی ما دارای 8 کلید است. این کلید ها در اصل صفحه های قابل لمسی هستند که روی PCB قرار گرفته اند. وقتی یکی از کلید ها لمس شوند، خازن ها تحریک میشوند و باعث تغییر ولتاژ در آن ها میشود. هنگامی که این تغییر ولتاژ رخ دهد، واحد کنترل تاچ پد این موضوع را متوجه میشود و یک پین خروجی را High میکند.
در قسمت قبلی آموزش رزبری پای ما به طور کامل با آنالوگ به دیجیتال آشنا شدیم. توجه داشته باشید در مورد پین های GPIO در آموزش های قبل بحث کردیم پس برای درک بهتر مطالب پیشنهاد میشود آموزش ها را از ابتدا بخوانید.
- قسمت قبل : آموزش جامع آنالوگ به دیجیتال در Raspberry Pi
- قسمت اول : رزبری پای Raspberry Pi چیست؟
نکته مهم در اجرای این پروژه این است که پین های GPIO رزبری پای تحمل ولتاژ بیشتر از 3.3 را ندارند و اگر به پین ها ولتاژ بیشتر به طور مثال 5 ولت بدهید، برد Raspberry pi شما آسیب میبینید. بنابراین برای بدست آوردن خروجی های مناسب برای رزبری پای، باید از صفحه کلید لمسی خازنی 3.3 ولت استفاده کنیم.
این آموزش را نیز با استفاده از یک پروژه به پیش میبریم.
همچنین اگر میخواهید الکترونیک را با فیلم های آموزشی یاد بگیرید، روی دوره آموزش الکترونیک کلیک کنید.
مدار راه اندازی تاچ پد با رزبری پای
در اینجا ما از رزبری پای 2 Model B با سیستم عامل Raspbian Jessie استفاده می کنیم. در قسمت های قبل، در مورد کلیه نیازهای اولیه سخت افزار و نرم افزار بحث کرده ایم. تصویر زیر شماتیک مدار پروژه را نشان میدهد. همانطور که در تصویر زیر میبنید، برای این پروژه به قطعات خاصی احتیاج نداریم.
اتصالات تاچ پد خازنی با Raspberry pi در شماتیک بالا نشان داده شده است.
برنامه نویسی رزبری پای کیبورد لمسی
وقتی همه چیز را مانند شماتیک مدار متصل کردید، می توانیم Raspberry Pi را روشن کنیم تا برنامه را در پایتون (PYHTON) بنویسیم. کد کامل در انتهای صفحه قرار داده شده است. در اینجا در مورد قسمت های مهم کد صحبت میکنیم.
ما میخواهیم پرونده GPIO را از کتابخانه وارد کنیم. کد زیر باعث میشود بتوانیم پین های GPIO برد رزبری پای را برنامه ریزی کنیم. همچنین مانند قسمت قبلی آموزش، نام GPIO را به IO تغییر میدهیم. و هر بار بخواهیم به پین های GPIO مراجعه کنیم از کلمه IO استفاده میکنیم.
import RPi.GPIO as IO
بعضی اوقات، پین های GPIO که سعی در استفاده از آنها داریم، ممکن است عملکردهای دیگری را انجام دهند. در این حالت، هنگام اجرای برنامه، هشدارهایی دریافت خواهیم کرد. دستور زیر به PI می گوید هشدارها را نادیده گرفته و به برنامه ادامه دهد.
IO.setwarnings(False)
ما می توانیم پین های GPIO رزبری پای یا شماره پین آن یا شماره GPIO آن ها وارد کنیم. به طور مثال پین 35 روی برد Raspberry pi، همان پین GPIO 19 است. بنابراین ما میتوانیم آن را با 19 یا 35 معرفی کنیم.
IO.setmode (IO.BCM)
ما 8 پین را به عنوان پین ورودی تنظیم می کنیم. ما وضعیت 8 کلید صفحه کلید را توسط این 8 پین بررسی میکنیم.
IO.setup(21,IO.IN) IO.setup(20,IO.IN) IO.setup(16,IO.IN) IO.setup(12,IO.IN) IO.setup(25,IO.IN) IO.setup(24,IO.IN) IO.setup(23,IO.IN) IO.setup(18,IO.IN)
سپس برای هر پین، یک شرط تعیین میکنیم. به طور مثال برای پین GPIO 21 مینویسیم که فقط اگر این پین High شد، دستورات مربوطه یک بار اجرا شوند. توجه داشته باشید پین 21 طبق مدار، مربوط به کلید 8 است.
if (IO.input(21) == True): // اکر پین 21 فعال شد time.sleep(0.001) // تاخیر میلی ثانیه 0.001 if (IO.input(21) == True): // اکر پین 21 فعال شد print ( 8) // عدد 8 نمایش داده شود
برای تمامی دکمه ها این کار را تکرار میکنیم.
کد کامل :
import RPi.GPIO as IO # فراخوانی کتابخانه پین های GPIO import time # فراخوانی کتابخانه تاخیر IO.setwarnings(False) # عدم نمایش هشدار ها IO.setmode (IO.BCM) IO.setup(21,IO.IN) # initialize GPIO Pins as an Input. IO.setup(20,IO.IN) IO.setup(16,IO.IN) IO.setup(12,IO.IN) IO.setup(25,IO.IN) IO.setup(24,IO.IN) IO.setup(23,IO.IN) IO.setup(18,IO.IN) while 1: if (IO.input(21) == True): time.sleep(0.001) if (IO.input(21) == True): print ( 8) # اگر پین 21 بالا رفت روی صفحه بنویس 8 if (IO.input(20) == True): time.sleep(0.001) if (IO.input(20) == True): print ( 7) # اگر پین 20 بالا رفت روی صفحه بنویس 7 if (IO.input(16) == True): time.sleep(0.001) if (IO.input(16) == True): print ( 6) # اگر پین 16 بالا رفت روی صفحه بنویس 6 time.sleep(0.001) if (IO.input(12) == True): if (IO.input(12) == True): print ( 5) # اگر پین 12 بالا رفت روی صفحه بنویس 5 if (IO.input(25) == True): time.sleep(0.001) if (IO.input(25) == True): print ( 4) # اگر پین 25 بالا رفت روی صفحه بنویس 4 if (IO.input(24) == True): time.sleep(0.001) if (IO.input(24) == True): print ( 3) # اگر پین 24 بالا رفت روی صفحه بنویس 3 if (IO.input(23) == True): time.sleep(0.001) if (IO.input(23) == True): print ( 2) # اگر پین 23 بالا رفت روی صفحه بنویس 2 if (IO.input(18) == True): time.sleep(0.001) if (IO.input(18) == True): print ( 1) # اگر پین 18 بالا رفت روی صفحه بنویس 1 time.sleep(0.2)
فیلم عملکرد و توضیحات کار با پروژه
هنگامی که برنامه بالا را در PYTHON می نویسیم و آن را اجرا می کنیم، همه کار انجام شده است. هنگامی که پد لمس می شود، ماژول پین مربوطه را بالا می برد و این ماشه توسط PI شناسایی می شود. پس از تشخیص ، PI کلید مناسب را روی صفحه چاپ می کند. فیلم زیر به شما در درک نحوه عمل این کد و پروژه کمک میکند.
قسمت بعد : چطور سروو موتور را با رزبری پای کنترل کنیم ؟