Mundarija:
- 1 -qadam: Barcha qismlarni yig'ing
- 2 -qadam: simlarni ulash
- 3 -qadam: Python paketini o'rnatish
- 4 -qadam: misollarni o'rnatish
- 5 -qadam: I2C -ni yoqish
- 6 -qadam: Calibratethresholds -ni ishga tushiring
- 7 -qadam: O'zgartiring va keyin Readkeypadwithtimeout -ni ishga tushiring
- 8 -qadam: Bir pinli klaviatura qanday ishlaydi
- 9 -qadam: Xulosa
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
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
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
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
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
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:
5 -qadam: I2C -ni 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
- Interfeys imkoniyatlari
- I2C
- 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
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
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 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
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.