Mundarija:

Bir pinli klaviatura Raspberry Pi foydalanish bo'yicha qo'llanma: 9 qadam
Bir pinli klaviatura Raspberry Pi foydalanish bo'yicha qo'llanma: 9 qadam

Video: Bir pinli klaviatura Raspberry Pi foydalanish bo'yicha qo'llanma: 9 qadam

Video: Bir pinli klaviatura Raspberry Pi foydalanish bo'yicha qo'llanma: 9 qadam
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Iyul
Anonim
Bir pinli klaviatura Raspberry Pi -dan foydalanish bo'yicha qo'llanma
Bir pinli klaviatura Raspberry Pi -dan foydalanish bo'yicha qo'llanma

Ogohlantirish: bu ochiq manba mahsuloti uchun qo'llanma: bitta pinli kalit. Bu DIY loyihasi emas. Agar siz taxtalarni o'zingiz qilishni xohlasangiz, burgut fayllari dars oxirida topilishi mumkin

Bir pinli klaviatura nima?

Bir pinli klaviatura matritsali klaviaturani ishlatishni ancha osonlashtiradi va qimmatli kirish -chiqish pinlarini boshqa maqsadlar uchun zaxiralash imkonini beradi. 16 tugmachali matritsali klaviatura, odatda, mikrokontroller yoki bitta platali kompyuterda 8 ta raqamli kirishni talab qiladi. Eng mashhur Arduinos sizni faqat 14 ta raqamli pin bilan cheklaydi, shuning uchun 16 tugmachali klaviatura sizga loyihangizning qolgan qismi uchun atigi 6 ta pinni qoldiradi. Bu manba etishmasligi dizaynning qimmatga tushishiga yoki qimmatroq mikrokontrollerni yangilashiga olib kelishi mumkin. Bir pinli klaviatura moduli bu raqamli kirishga bo'lgan ehtiyojni yo'q qiladi. Nomidan ko'rinib turibdiki, bitta pinli klaviatura faqat bitta pinli (analogli kirish) va GND va VCC ulanishlaridan foydalanadi, shuning uchun klaviaturani ulash juda oson! Raspberry Pi foydalanuvchilari uchun (bu o'quv qo'llanma uchun maqsadli auditoriya), shuningdek, ADS1115 analogini raqamli konvertorga o'tkazish talab qilinadi, bu simni ulash juda oson. Bir pinli klaviatura Python to'plami (shu jumladan) klaviatura kirishini qayta ishlash uchun zarur bo'lgan dasturlashni soddalashtirib, ko'proq vaqt va kuchingizni tejaydi.

Arduino -dan foydalanish bo'yicha qo'llanma uchun bu erni bosing.

1 -qadam: Barcha qismlarni yig'ing

Barcha qismlarni yig'ing!
Barcha qismlarni yig'ing!

Bir pinli klaviatura bilan ishlashni boshlash uchun sizga kerak bo'ladi:

  • Bir pinli klaviatura paneli
  • Arduino o'ziga xos ta'mga ega (bu holda Arduino Nano ishlatilgan)
  • 3 ta M/F o'tish kabeli,
  • Raspberry Pi -dagi sarlavhalar turiga qarab 4 ta M/M OR 4 ta qo'shimcha M/F o'tish kabeli
  • 16 tugmachali membranali klaviatura
  • Non paneli (bu erda kichkinasi ishlatiladi)
  • ADS1115 moduli (Adafruit yoki klondan)
  • Internetga ulangan Raspberry Pi va Raspbian OS (men Stretch -dan foydalanganman)
  • Raspberry Pi aksessuarlari (HDMI kabeli, quvvat manbai, dongles, monitor va boshqalar Raspberry Pi -ning ta'miga bog'liq)

2 -qadam: simlarni ulash

Ulanish!
Ulanish!
Ulanish!
Ulanish!

Bir pinli klaviaturani Fritzing diagrammasi, fotosurat yoki ikkalasiga ko'ra, xohlaganingizcha ulang.

E'tibor bering: Fritzing diagrammasidagi yozuv bitta pinli klaviaturani ifodalaydi (va GND VCC va AOUT qisqartmalari bitta pinli klaviatura taxtasini belgilaydi)

3 -qadam: Python paketini o'rnatish

Python paketini o'rnatish!
Python paketini o'rnatish!
Python paketini o'rnatish!
Python paketini o'rnatish!

Terminal oynasini oching va quyidagi buyruqlarni kiriting:

sudo apt-get yangilanishi

keyin

pip3 Progetto-One-Pin-Keypad-ni o'rnating

paketni va uning zarur bog'liqliklarini o'rnatish

4 -qadam: misollarni o'rnatish

Misollarni o'rnatish
Misollarni o'rnatish

Men omborni home/pi ostida saqlash uchun dev papkasini yaratdim, agar siz ham shunday qilishni xohlasangiz (bu mutlaqo ixtiyoriy), bu buyruqni bajaring:

mkdir dev

keyin papkaga o'tish uchun quyidagilarni kiriting:

CD dev

Nihoyat, omborni klonlash uchun quyidagi buyruqni kiriting:

git klon

5 -qadam: I2C -ni yoqish

I2C yoqish
I2C yoqish
I2C yoqish
I2C yoqish
I2C yoqish
I2C yoqish

ADS1115 ADC (Analog to Digital Converter) Raspberry Pi bilan muloqot qilish uchun I2C (Inter-Integrated Circuit) protokoliga tayanadi, sukut bo'yicha I2C avtobusi o'chirilgan, uni yoqish uchun quyidagilarni yozing:

sudo raspi-config

sizni ko'k konfiguratsiya oynasiga olib boradi, u erdan o'q tugmachalari va kirish tugmachasi yordamida tanlang

  1. Interfeys imkoniyatlari
  2. I2C
  3. Keyin pastga tushing

Maslahat: Yuqoridagi skrinshotlarga murojaat qilish biroz yordam berishi mumkin! Agar siz hali ham tiqilib qolsangiz, qo'rqmang! Sparkfun-dan olingan ajoyib usulga qarang!

6 -qadam: Calibratethresholds -ni ishga tushiring

Calibratethresholds -ni ishga tushiring!
Calibratethresholds -ni ishga tushiring!

Agar siz hali bo'lmasa, omborga o'ting va quyidagi buyruqlar yordamida misollar papkasiga o'ting:

Maslahat: 'cd Prog' yozing va Tab tugmachasini bosing, u ombor nomini avtomatik to'ldirishi kerak!

CD Progetto_One_Pin_Keypad_Python_Package

keyin yozing:

cd misollar

Keyin, ushbu buyruq yordamida calibratethresholds misolini ishga tushiring:

python3 kalibrlash chegaralari

va taxtangizni sozlash uchun konsolda ko'rsatilgan ko'rsatmalarga amal qiling. Kalibrlash barcha tugmachalarni bosib o'tgandan so'ng, "boshlash" so'ralganda, ba'zi tugmachalarni bosib ishlashini tekshirish uchun yangi analog qiymatlaringizni tekshiring, agar yangi qiymatlar noto'g'ri ekanligi isbotlansa, dasturni o'chirish va ishga tushirish uchun Ctrl C tugmachasidan foydalaning. yana

Kalibrlash misoli sizga keyingi misolda kerak bo'ladigan 2 qatorli kodni berishi kerak, konsolni ochiq saqlashga va/yoki ikkalasini ham nusxalashga ishonch hosil qiling!

7 -qadam: O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring

O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring
O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring
O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring
O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring
O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring
O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring

Endi bitta pinli klaviatura sozlanganda, uni ishlatish vaqti keldi. Siz buni vi yordamida buyruq satridan qilishingiz mumkin bo'lsa -da, men shaxsan IDLE kabi IDE dan foydalanishni afzal ko'raman.

IDLE -ni oching (sizga python3 versiyasi kerak bo'ladi) va quyidagi qatorlarni o'zgartiring:

Siz nusxa ko'chirgan analog qiymatlar qatorini eslaysizmi? 13 -qatorni (pastga qarang) yangi kalibrlangan analog qiymatlar bilan almashtiring.

# ex: my_thresholds = [sozlangan qiymatlar shu erda bo'ladi]

bu bilan almashtiriladi:

my_thresholds = [225, 2116, 3904, 5200, 6300, 7350, 8450, 9325, 10000, 10750, 11500, 12100, 12550, 13100, 13800, 14250]

Keyin, keyingi qatorni 23 -qatordan keyin qo'shing (pastga qarang):

keypad.useCalibratedThresholds (my_thresholds)

23 -qatordan keyin qo'shiladi:

# ex: keypad.use_calibrated_thresholds (sizning qator nomingiz)

oxirigacha 22 dan 24 gacha qatorlarni shunday qilish:

# Agar kalibrlangan qiymatlar ishlatilayotgan bo'lsa, quyida_kalibratsiyalangan_to'laklardan foydalaning:

# ex: keypad.use_calibrated_thresholds (sizning qator nomingiz)

keypad.use_calibrated_thresholds (my_thresholds)

Bu tugagandan so'ng, kodni ishga tushiring va ba'zi tugmachalarni bosib sinab ko'ring! Namunaviy eskizni o'z loyihalaringizga moslashtirishga jur'at eting! Esda tutingki, read_keypad_with_timeout tugmachasini char sifatida qaytaradi va tanaffus millisekundlarda o'rnatiladi! Vaqt tugashini xohlamasangiz, klaviaturadan foydalaning. NO_TIMEOUT doimiy.

8 -qadam: Bir pinli klaviatura qanday ishlaydi

Bir pinli klaviatura qanday ishlaydi
Bir pinli klaviatura qanday ishlaydi
Bir pinli klaviatura qanday ishlaydi
Bir pinli klaviatura qanday ishlaydi

Bir pinli klaviatura dizaynining ko'p qismi Xari Vigunaning 16 pinli klaviaturadagi har bir kalit uchun o'ziga xos analog qiymatini olish uchun kuchlanish bo'linishini amalga oshirishga asoslangan. Bir pinli klaviatura dizayni deyarli bir xil o'zgarishlarga ega. Agar siz bitta pinli klaviatura qanday ishlashini bilishni xohlasangiz, Xari Vigunaning ajoyib videosini bu erda ko'rishingiz mumkin!

9 -qadam: Xulosa

Xulosa
Xulosa

Ushbu qo'llanmada biz bir pinli klaviatura bilan ishlashni qanday boshlashni ko'rib chiqdik. Sizni qiziqtirganlar, nima uchun readKeypadInstantaneous misol eskizining hech qachon ishlatilmagani haqida o'ylayotgandirsiz, chunki bu unchalik foydali emas, chunki tugma chaqirilganda uni bosish kerak, readKeypadInstantaneous () funktsiyasi asosan soddalashtirish uchun ishlatiladi. kutubxonada readKeypadWithTimeout (). Agar u sizning ko'zingizga tushsa, uni aylantirish uchun o'zingizni erkin his qiling. Baxtli xakerlik!

Agar sizda biron bir savol bo'lsa, quyida izoh qoldiring yoki [email protected] elektron pochta manziliga elektron pochta orqali yuboring. Hamma yaxshi, Progetto Company P. S. Va'da qilinganidek, boshqaruv kengashi burgut fayllariga havola.

Tavsiya: