کنترل پایه های orangepi با استفاده از Echo
کنترل پایه های بورد orangepi
یکی از کاربردی ترین ویژگی رایانه های تک برد مانند Orange Pi امکان پیکربندی و کنترل تعداد زیادی پین GPIO (ورودی / خروجی هدف کلی) است. به عنوان مثال امکان هدایت led ، خواندن مقدار دکمه فشار ، رابط با دستگاه I2C یا SPI ، ایجاد اتصال UART وجود دارد ...
تعداد پایه های GPIO به مدل بورد Orange Orange بستگی دارد. تصاویر زیر پین های GPIO را برای Orange Pi Zero و برای بردهای دارای پردازنده Allwinner H3 مثل (Orange Pi One ، Orange PI PC ، Orange PI PC 2 ، Orange PI PC Plus) توصیف می کند.
برای کنترل و پیکربندی پین های GPIO به دو روش وجود دارد:
- استفاده از کتابخانه (apposite C ، C ++ ، Python یا زبان برنامه نویسی دیگر)
- GPIO را از فضای کاربری لینوکس کنترل کنید
کنترل پایه ها با استفاده از کتابخانه
اگر می خواهید پایه های GPIO یک برد Orange Pi را با استفاده از کتابخانه apposite کنترل کنید ، اولین قدم انتخاب کتابخانه مناسب است. بنابراین شما باید تصمیم بگیرید که از کدام زبان برنامه نویسی می خواهید استفاده کنید. در لیست زیر برخی از کتابخانه های پرکاربرد وجود دارد:
- WiringOP (کتابخانه C)
- GPIO_pyH3 (کتابخانه پایتون برای تابلوهای H3)
- OPi.GPIO (کتابخانه پایتون برای Orange Pi Zero)
روش استفاده از کتابخانه GPIO کاملاً ساده است. شما باید کتابخانه را بارگیری و با استفاده از فایل README که توسط نویسندگان کتابخانه داده شده است ، نصب کنید. سپس می توانید نحوه مشاهده کتابخانه را با مشاهده نمونه های ذکر شده درک کرده و شروع به نوشتن کد برای برنامه GPIO خود کنید. برای مراحل ساخت نیز دستورالعمل های مربوطه را دنبال کنید.
پین های GPIO را از فضای کاربران Linux کنترل کنید
روش دوم برای مدیریت پین های GPIO استفاده از دستورات هسته کاربر فضای لینوکس است.
مرحله اول فعال کردن این گزینه در پیکربندی هسته است. به طور کلی ، در iso های رسمی ، به طور پیش فرض انجام می شود. اگر از هسته سفارشی استفاده می کنید می توانید از ابزار menuconfig برای فعال کردن آن استفاده کنید. به درایورهای دستگاه بروید ، پشتیبانی GPIO را فعال کنید و سپس از منوی پشتیبانی GPIO فعال / sys / class / gpio / ... (رابط sysfs).
تصویر زیر نمای موجود در menuconfig را نشان می دهد.
اکنون می توانید پین های GPIO را کنترل کنید. با دستور زیر به دایرکتوری sysfs بروید:
cd /sys/class/gpio
برای دیدن محتوای دایرکتوری از دستور ls استفاده کنید:
ls
# output : export gpiochip0 unexport
export و unexport پرونده هایی برای پیکربندی و عدم پیکربندی پین GPIO استفاده می شود. کافی است که به دنبال آن عدد پین مد نظر استفاده شود. برای محاسبه تعداد پین GPIO باید از دستورالعمل زیر استفاده کنید:
(position of letter in alphabet - 1) * 32 + pin number
به عنوان مثال ، برای استفاده از پین PA12 به عنوان خروجی و کنترل دستور زیر استفاده می شود:
echo "12" > export
# or if your not in same directory:
# echo "12" > /sys/class/gpio/export
پس از export شدن پین ، دایرکتوری ایجاد می شود. در این حالت نام دایرکتوری gpio12 خواهد بود. با دستور ls مشاهده محتوای پوشه امکان پذیر است:
ls gpio12
# output: direction power subsystem uevent value
دایرکتوری direction برای تثبیت وضعیت و نحوه استفاده از پین را مشخص می نماید.
تغییر وضعیت و تثبیت نحوه استفاده به عنوان خروجی از پین نامبرده:
echo "out" > gpio12/direction
# or if your not in same directory:
# echo "out" > /sys/class/gpio/gpio12/direction
تغییر وضعیت پین به روشن و یا خاموش با استفاده از 0 و 1:
# to set HIGH pin 12
echo "1" > gpio12/value
# to set LOW the pin 12
echo "0" > gpio12/value
برای خواندن وضعیت پین ها می توانید از دستور زیر استفاده نمایید:
cat > gpio12/value
# output : 1 or 0
در پایان باید پین GPIO را unexport کنید:
echo 12 > unexport
نکته: برای سایر اطلاعات در مورد کنترل پین های GPIO از فضای کاربر لینوکس ، می توانید در اسناد هسته لینوکس جستجو کنید. به ویژه فایل Documentation / gpio / sysfs.txt از هسته بارگیری شده خود را بخوانید.
در صورتی که مایل به بردن پین به وضعیت input و خواندن مقادیر هستید می توانید به طور کلی به روش زیر عمل کنین:
# preparing pin 12
echo "12" > /sys/class/gpio/export
# changing pin mode to input
echo "in" > /sys/class/gpio/gpio12/direction
# reading the value of pin
cat /sys/class/gpio/gpio12/value
# release the pin when your done
echo "12" > /sys/class/gpio/unexport