آموزش الکترونیکآموزش رزبری پایپروژه های رزبری پای

راه اندازی صفحه کلید لمسی (تاچ پد) با رزبری پای و پایتون (آموزش Raspberry Pi #11)

سلام. راه اندازی صفحه کلید لمسی (تاچ پد) با Raspberry Pi (آموزش رزبری پای #11) را آماده کردیم.

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

در این آموزش رزبری پای، ما یک تاچ پد خازنی را به Raspberry pi متصل میکنیم. صفحه کلید خازنی ما دارای 8 کلید است. این کلید ها در اصل صفحه های قابل لمسی هستند که روی PCB قرار گرفته اند. وقتی یکی از کلید ها لمس شوند، خازن ها تحریک میشوند و باعث تغییر ولتاژ در آن ها میشود. هنگامی که این تغییر ولتاژ رخ دهد، واحد کنترل تاچ پد این موضوع را متوجه میشود و یک پین خروجی را High میکند.

در قسمت قبلی آموزش رزبری پای ما به طور کامل با آنالوگ به دیجیتال آشنا شدیم. توجه داشته باشید در مورد پین های GPIO در آموزش های قبل بحث کردیم پس برای درک بهتر مطالب پیشنهاد میشود آموزش ها را از ابتدا بخوانید.

قسمت قبل : آموزش جامع آنالوگ به دیجیتال در Raspberry Pi (آموزش رزبری پای #10)

قسمت اول : رزبری پای Raspberry Pi چیست؟ (آموزش کامل رزبری پای #1)

نکته مهم در اجرای این پروژه این است که پین های GPIO رزبری پای تحمل ولتاژ بیشتر از 3.3 را ندارند و اگر به پین ها ولتاژ بیشتر به طور مثال 5 ولت بدهید، برد Raspberry pi شما آسیب میبینید. بنابراین برای بدست آوردن خروجی های مناسب برای رزبری پای، باید از صفحه کلید لمسی خازنی 3.3 ولت استفاده کنیم.

این آموزش را نیز با استفاده از یک پروژه به پیش میبریم.

توضیحات شماتیک مدار

در اینجا ما از رزبری پای 2 Model B با سیستم عامل Raspbian Jessie استفاده می کنیم. در قسمت های قبل، در مورد کلیه نیازهای اولیه سخت افزار و نرم افزار بحث کرده ایم. تصویر زیر شماتیک مدار پروژه را نشان میدهد. همانطور که در تصویر زیر میبنید، برای این پروژه به قطعات خاصی احتیاج نداریم.

شماتیک مدار  کیبرد لمسی با رزبری پای

اتصالات تاچ پد خازنی با Raspberry pi در شماتیک بالا نشان داده شده است.

حتما ببینید :  چگونه از PWM در رزبری پای استفاده کنیم؟ با پایتون ! (آموزش Raspberry Pi #6)

آموزش برنامه نویسی رزبری پای کیبورد لمسی

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

وقتی همه چیز را مانند شماتیک مدار متصل کردید، می توانیم 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 نمایش داده شود

برای تمامی دکمه ها این کار را تکرار میکنیم.

حتما ببینید :  آموزش کامل آنالوگ به دیجیتال در آردوینو - ADC Arduino (آموزش آردوینو #4)

کد کامل :

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 کلید مناسب را روی صفحه چاپ می کند. فیلم زیر به شما در درک نحوه عمل این کد و پروژه کمک میکند.

قسمت بعد : چطور سروو موتور را با رزبری پای کنترل کنیم ؟ (آموزش Raspberry Pi #12)

نظرتان را در مورد این مطلب با ستاره دادن اعلام کنید امیدوارم این مطلب برای شما مفید بوده باشد. نظرات ، مشکلات و پیشنهادات خود را در پایین صفحه اعلام کنید
برچسب ها

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن