Mundarija:

Yaxshi Raspberry Pi quvvat tugmachasini yarating: 4 qadam
Yaxshi Raspberry Pi quvvat tugmachasini yarating: 4 qadam

Video: Yaxshi Raspberry Pi quvvat tugmachasini yarating: 4 qadam

Video: Yaxshi Raspberry Pi quvvat tugmachasini yarating: 4 qadam
Video: Как превратить Raspberry Pi Pico в ПЛК | Беремиз4Пико 2024, Iyul
Anonim
Image
Image

Raspberry-ni o'chirish yoki o'chirish tugmachasini bosish juda oson. Internetda bunday loyihalar juda ko'p, lekin bir nechtasi Instructables -da, lekin ularning hech biri (men ko'rib turganimdek) sizning Pi qachon yopilishini tugatganini aytmaydi, shuning uchun quvvatni tortib olish xavfsiz. Darhaqiqat, ular tugmachani bosish ko'rinmasligini ham tan olishmaydi.

Pi yopilgan loyihani qayta ishga tushirish loyihalari ham bor, lekin bu sizga hech qanday vizual fikr bildirmaydi.

Lekin kimga bunday tugma kerak? Agar siz menga o'xshagan zerikarli odam bo'lsangiz yoki hatto intiluvchan bo'lsangiz, siz har doim PI -ga mahalliy yoki tarmoq orqali kirishingiz va sudo shutdown -h ni yozishingiz mumkin. Ammo, agar siz texnik bo'lmagan foydalanuvchilar uchun loyiha qurayotgan bo'lsangiz, bunday bo'lmaydi. To'g'ri, siz deyarli har doim elektr simini tortib qutulishingiz mumkin, lekin e'tibor bering, men deyarli har doim aytganman! Hammaga omad ertami -kechmi tugaydi. Menda faqat o'tgan hafta SD -karta o'ldi, lekin men bu haqiqatan ham elektr quvvati keskin yo'qolganmi yoki yo'qligini hech qachon bilmayman.

Mening holatimda, men cherkovda madhiyalar va qo'shiqlarni yozib olish va ijro etish uchun midi sekvener sifatida ishlatiladigan Pi -ga quvvat tugmasini qo'shishim kerak edi, chunki bizda pianinochi yo'q. Men har doim o'chirish buyrug'ini yozishim mumkin, lekin men yo'q bo'lganimda uni mahoratdan mahrum qilishim kerak.

Bu erdagi niyatim sizga boshqa 3D ko'rsatmalar kabi chiroyli 3D bosma quti bilan to'ldirilgan tayyor mahsulotni berish emas. Har kim undan boshqacha foydalanadi yoki o'z loyihasiga qo'shishni xohlaydi. Aksincha, men sizga media -markaz, IoT qurilmasi yoki boshqa biror narsa bo'lsin, loyihangizga qo'shishingiz mumkin bo'lgan texnologiyani o'rnataman.

(Videoda men buni Pi Zero v1.2 va noutbukning qayta ishlangan ekrani va Uzoq Sharqdan kelgan boshqaruvchi yordamida ko'rsataman.)

1 -qadam: Dizayn

U qanday ishlaydi
U qanday ishlaydi

Quvvat tugmasi siz uchun shunday qiladi:

  • Pi ishlayotganda, LED doimiy yonib turadi. Agar u qo'lda o'chirilgan bo'lsa, LED faqat elektr tarmog'idan uzish xavfsiz bo'lganda o'chadi.
  • Ishlayotganda, agar siz tugmachani kamida bir soniya bosib tursangiz, o'chirish boshlanadi va LED har soniyada chorak soniya yonib -o'chadi.
  • O'chirish holatidan (agar quvvat o'chirilmagan bo'lsa), tugmani bosish uning yuklanishini boshlaydi va LED har soniyada chorak soniya yonib turguncha yonadi. (Ssh va vnc kabi barcha xizmatlar ishga tushguncha biroz ko'proq vaqt ketishi mumkin.)

Komponentlar juda arzon. Sizga kerak bo'lgan hamma narsa:

  • ATTiny85 (Arduino bilan mos keladigan chip)
  • 3 ta qarshilik: 2 x 330Ω va 1x10kΩ
  • 1 LED - men yashil yoki ko'k rangni taklif qilaman, lekin bu sizning tanlovingiz
  • non paneli va o'tish simlari yoki tasma, yoki siz baribir uni qurmoqchisiz.

2 -qadam: Bu qanday ishlaydi

Boshqa Pi tugmachalarida bo'lgani kabi, u ham GPIO pinini past holatiga o'tkazadi va Pi -da ishlaydigan yordamchi dasturga o'chirish so'rovini yuboradi. Men GPIO4 (7 -pin) dan foydalanardim, lekin siz boshqa pinni ishlatishingiz mumkin.

Pi yopilishini tugatganini aytishning yagona usuli - TxD pin 8 -ni ko'rish, keyin u past bo'ladi. Bu sukut bo'yicha yoqilgan ketma -ket konsolga bog'liq. Aslida, TxD ketma -ket konsolda ishlatilganda muntazam ravishda yuqoriga va pastga tushadi, lekin u hech qachon bir vaqtning o'zida 30 mS dan oshmaydi, hatto eng sekin tezlik tezligida ham. U seriyali konsolda ishlatilishi mumkin, chunki biz uni passiv kuzatamiz.

Qayta ishga tushirish uchun biz SCL1ni (pin 5) qisqacha pastga tortishimiz kerak. Bu pin har qanday I2C qurilmalarida (shu jumladan mening midi interfeysida) ishlatiladi, lekin yuklashni boshlaganimizdan keyin uni yolg'iz qoldiramiz.

Murakkablikning ko'p qismi biz ATTiny85 -ga yuklaydigan Arduino eskizida. Bu "davlat mashinasi" ni - bir qancha "shtatlar" bilan ifodalanishi mumkin bo'lgan har qanday muammoni kodlashning juda foydali va kuchli usulini amalga oshiradi. Kir yuvish mashinasi xuddi shunday ishlaydi. Shtatlar yuvish davrining bosqichlarini ifodalaydi va ularning har biri mashinaning nima qilishi kerakligini aniqlaydi (dvigatellar yoki nasoslar, vanalar ochilishi yoki yopilishi) va sensorning kirishi (harorat, suv sathi, taymerlar). keyingi holatga qachon o'tish kerakligini va qaysi davlatni tanlash kerakligini aniqlang.

Qo'l eskizi - bu mening barcha davlat o'tishlarini ko'rsatadigan holat diagrammasining birinchi loyihasi. Bu faqat sizning shtatlaringiz va shtatlaringizga o'tishni qanday rejalashtirishingiz mumkinligini ko'rsatish uchun - bu men disk raskadrovka qila boshlaganimdagidek to'liq aniq bo'lmasligi mumkin.

Bizning holatlarimizda bizda 6 ta holat bor, ularni men O'chirish, yuklash so'rovi, yuklash, yugurish, o'chirish so'rovi va o'chirish. (O'CHIRISHdan keyin u O'chirilgan holatiga qaytadi.) Bu eskizdagi izohlar bilan aniqlanadi va har bir kishi uchun qo'shimcha sharhlar nima qilish kerakligini va qanday hodisalar uni boshqa holatga o'tkazishini aytadi.

Pi -da ishlaydigan yordamchi dastur ko'pchilik o'chirish tugmalariga qaraganda biroz murakkabroq. U GPIO pinidagi past past pulsga yopilishni boshlash orqali javob beradi, lekin u qisqa pulsga ham javob beradi va GPIO pinini qisqartiradi. Shunday qilib, ATTiny85 ishlayotganini ayta oladi va shuning uchun BOOTINGdan RUNNING holatiga o'tishi mumkin.

3 -qadam: Demo prototipini yaratish

Demo prototipini yaratish
Demo prototipini yaratish
Demo prototipini yaratish
Demo prototipini yaratish
Demo prototipini yaratish
Demo prototipini yaratish

Namoyish uchun siz uni lehimsiz non panelida ko'rsatilgandek prototip qilishingiz mumkin, lekin men sizga sxemani ham berdim, shuning uchun siz o'zingizning sxemangizni striptiz yoki maxsus PCB yordamida ishlab chiqishingiz mumkin.

4 -qadam: ATTiny85 dasturlash

Arduino eskizi va yordamchi dasturi bu bosqichga biriktirilgan. Arduino eskizlar papkasida PiPwr nomli papkani yarating va unga PiPwr.ino faylini nusxa ko'chiring. Arduino IDE -ni ishga tushirgandan so'ng, siz uni eskiz daftarchasida topasiz.

ATTiny85 dasturlashning bir necha usullari mavjud. Agar sizda bootloader o'rnatilgan bo'lsa, atigi bir necha funt bo'lgan ATTiny85 ishlab chiqish kartasidan foydalanishingiz mumkin. Bu kompyuterga USB port orqali ulanadi. Men asosan bir xil bo'lgan, ammo prototiplash maydoniga ega bo'lgan Hidiotdan foydalandim.

Arduino IDE da Fayl - Tanlovlar ostida qo'shing

digistump.com/package_digistump_index.json

Qo'shimcha taxtalar menejerining URL manzillariga.

Asboblar - Kengash ostida siz Digispark -ning bir nechta variantini ko'rishingiz kerak. Digispark -ni tanlang (standart - 16,5 MGts).

Agar ATTiny85 -da bootloader bo'lmasa (yoki siz bilmasangiz), siz AVR -provayder dasturini bir necha funtga olishingiz mumkin. Yoki dasturchi sifatida Arduino Uno yoki undan arzonroq Pro Mini yoki Nano dan foydalanishingiz mumkin. Ko'rsatmalar uchun "arduino as isp attiny85" uchun Google (tirnoqsiz).

Agar siz eskizni o'zgartirmoqchi bo'lsangiz, uni to'liq izohlab topasiz va umid qilamanki, uni kuzatib borish oson. Nosozliklarni tuzatish uchun Arduino Pro Mini yoki Nano -dan foydalanish ancha oson. Ketma -ket monitor yordamida bajarilgan qadamlarni ko'rish uchun Setup -da serial.begin () va loop () -da chop etish haqidagi izohlarni qoldiring. Manbada Uno, Pro Mini yoki Nano uchun muqobil pin ta'riflari mavjud.

Raspberry Pi -da shutdown_helper.py faylini/etc/local/bin papkasiga nusxalash va uni buyruq yordamida bajariladigan qilib o'rnating.

sudo chmod +x /usr/local/bin/shutdown_helper.py

Endi /etc/rc.local faylini sevimli muharriri bilan tahrir qiling. (Siz buni root sifatida qilishingiz kerak bo'ladi.) Oxirgi satrdan oldin (0 chiqish) qatorni kiriting

nohup /usr/local/bin/shutdown_helper.py &

Qayta yuklang va yordamchi dastur avtomatik ravishda boshlanadi.

Tavsiya: