Мазмуну:

Жакшыраак Raspberry Pi Power баскычын куруңуз: 4 кадам
Жакшыраак Raspberry Pi Power баскычын куруңуз: 4 кадам

Video: Жакшыраак Raspberry Pi Power баскычын куруңуз: 4 кадам

Video: Жакшыраак Raspberry Pi Power баскычын куруңуз: 4 кадам
Video: BTT Manta M8P v2 - CM4 with Fluidd Pi 2024, Июль
Anonim
Image
Image

Raspberryди өчүрүү же өчүрүү баскычын жасоо абдан оңой. Интернетте мындай долбоорлор көп, ал эми инструкциялар боюнча бир нече, бирок алардын бири да (мен көрүп тургандай) сиздин Пиңиз качан жабылганын айтпайт, демек, кубатты тартып алуу коопсуз. Чынында алар кнопканы басуу көрүнгөнүн моюнга алышпайт.

Жабылган Пиди кайра баштоо үчүн дагы долбоорлор бар, бирок булар сизге эч кандай визуалдык жооп бербейт.

Бирок мындай баскыч кимге керек? Эгер сиз мага окшогон бирөө болсоңуз, же жөн эле умтулган адам болсоңуз, сиз дайыма Пиңизге жергиликтүү же тармак аркылуу кирип, sudo shutdown -h азыр тере аласыз. Бирок эгер сиз техникалык эмес колдонуучулар үчүн долбоор куруп жатсаңыз, анда андай болбойт. Туура, сиз дээрлик дайыма электр шнурун тартып эле кутула аласыз, бирок көңүл буруңуз, мен дээрлик дайыма айткам! Ар кимдин бактысы эртеби -кечпи түгөнөт. Өткөн аптада менде SD карта өлдү, бирок бул чынында электр энергиясынын кескин өчүшүнөн улам болгон -болбогонун эч качан билбейм.

Менимче, чиркөөдө гимндерди жана ырларды жаздыруу жана ойнотуу үчүн midi секвенер катары колдонгон Пи -ге күч баскычын кошушум керек болчу, анткени бизде пианист жок. Мен ар дайым өчүрүү буйругун жаза алам, бирок мен жокто аны чеберчиликтен ажыратышым керек.

Менин бул жердеги ниетим, сизге көптөгөн башка Instructables сыяктуу эле, кооз 3D принти менен толукталган даяр продукт бербөө. Ар ким ар кандай колдонот же өз долбооруна кошууну каалайт. Тескерисинче, мен медиа борбору болобу, IoT түзмөгүбү же башка нерсе болобу, сиз долбооруңузга кошо турган технологияны орнотом.

(Видеодо мен муну Pi Zero v1.2 жана ноутбуктун экраны менен жасалган монитор жана Ыраакы Чыгыштан келген контролер менен көрсөтүп жатам.)

1 -кадам: Дизайн

Бул кантип иштейт
Бул кантип иштейт

Бул менин кубат баскычы сиз үчүн эмне кылат:

  • Pi иштеп жатканда, LED дайыма күйүп турат. Эгерде ал кол менен өчүрүлсө, анда электр жарыгын өчүрүү коопсуз болгондо гана өчөт.
  • Иштеп жатканда, эгер сиз баскычты жок дегенде бир секундага бассаңыз, өчүрүү башталат жана LED ар бир секундада чейрек секундага чейин өчүп калат, бул кубаттуулукту өчүрүү коопсуз болгонго чейин.
  • Өчүрүү абалынан (эгерде кубат өчүрүлбөсө), баскычты басуу анын жүктөлүшүн баштайт жана ар бир секундада чейрек секундасына чейин LEDди күйгүзөт. (Ssh жана vnc сыяктуу бардык кызматтар иштей электе бир аз убакыт талап кылынышы мүмкүн.)

Компоненттери абдан арзан. Сизге керектүү нерселердин бардыгы:

  • ATTiny85 (Arduino менен шайкеш чип)
  • 3 резистор: 2 x 330Ω жана 1 x 10kΩ
  • 1 LED - Мен жашыл же көк түстү сунуштайм, бирок бул сиздин тандооңуз
  • нан жана секиргич зымдары, же стриптиз, же ошентсе да аны кургусу келет.

2 -кадам: Бул кантип иштейт

Бардык Pi кубат баскычтарындагыдай эле, бул GPIO пинин төмөн абалга алып келет, Piде иштеп жаткан жардамчы программасына өчүрүү өтүнүчүн билдирет. Мен GPIO4 (пин 7) колдондум, бирок сиз башка пин колдоно аласыз.

Pi жабылганын айтуунун бирден -бир жолу - TxD pin 8ди көрүү, андан кийин төмөндөйт. Бул демейки боюнча иштетилген сериялык консолго байланыштуу. Чындыгында TxD сериялык консол катары колдонулуп жатканда дайыма өйдө -ылдый түшөт, бирок ал эң жай таралган байдын ылдамдыгында, бир убакта 30 мСтен ашык төмөн түшпөйт. Аны дагы эле сериялык консол үчүн колдонсо болот, анткени биз аны пассивдүү көрөбүз.

Кайра жүктөө үчүн, биз SCL1ди (пин 5) кыска тартышыбыз керек. Бул пин каалаган I2C түзмөктөрү тарабынан колдонулат (анын ичинде менин midi интерфейси), бирок жүктөөнү баштагандан кийин аны жалгыз калтырабыз.

Татаалдыктын көбү ATTiny85ке жүктөлгөн Arduino эскизинде. Бул "мамлекеттик машинаны" ишке ашырат - бир катар "мамлекеттер" тарабынан көрсөтүлө турган кандайдыр бир маселени коддоонун абдан пайдалуу жана күчтүү ыкмасы. Кир жуугуч машина дал ушундай иштейт. Штаттар жуу циклинин этаптарын билдирет жана алардын ар бири машинанын ошол учурда эмне кылышы керектигин аныктайт (моторлор же насостор иштеши керек, клапандар ачылып же жабылышы керек) жана кайсы сенсордун кириши (температура, суунун деңгээли, таймерлер) кийинки абалга качан өтүү керектигин жана кайсы мамлекетти тандоо керектигин аныктаңыз.

Кол эскизи - бул мамлекеттик диаграмманын биринчи долбоору, бардык абалдын өтүүсүн көрсөтөт. Бул сиздин штаттарыңызды жана штаттык өткөөлдөрүңүздү кантип пландаштыра алаарыңызды көрсөтүү үчүн гана - бул мен мүчүлүштүктөрдү оңдоону баштагандай так эмес болушу мүмкүн.

Биздин учурда, бизде 6 штаттар бар, аларды мен ӨЧҮРҮҮ, ЖҮКТӨӨНҮ КАЙРУУ, ЖҮКТӨӨ, ЖҮГҮРҮҮ, ӨЧҮРҮҮНҮН СУРАНУУСУ ЖАНА ӨЧҮРҮҮ деп атадым. (ӨЧҮРҮҮДӨН кийин ал ӨЧҮРҮҮГӨ кайра которулат.) Бул эскиздеги комментарийлер аркылуу аныкталат, жана ар бири үчүн андан аркы комментарийлер эмне кылуу керектигин жана кандай окуялар аны башка мамлекетке жылдыраарын айтышат.

Piде иштеген жардамчы программа көпчүлүк өчүрүү баскычтарына караганда бир аз татаалыраак. Бул GPIO пиндин узак импульсуна өчүрүүнү баштоо менен жооп берет, бирок кыска импульсага GPIO пинин төмөн тартып кыска жооп берет. Мына ушинтип ATTiny85 анын иштеп жаткандыгын айта алат жана ушундан улам ЖҮКТӨӨДӨН ЧЫГАРУУ абалына өтөт.

3 -кадам: Demo прототипин түзүү

Демо прототипин түзүү
Демо прототипин түзүү
Демо прототипин түзүү
Демо прототипин түзүү
Демо прототипин түзүү
Демо прототипин түзүү

Көрсөтүү максатында сиз аны протоколго салып көрсөңүз болот.

4 -кадам: ATTiny85ти программалоо

Arduino эскизи жана жардамчы программасы бул кадамга тиркелет. Сиздин Arduino эскиздер папкасында PiPwr деп аталган папканы түзүңүз жана ага PiPwr.ino файлын көчүрүңүз. Arduino IDEди иштетүү менен сиз аны эскиз китебиңизден таба аласыз.

ATTiny85ти программалоонун бир нече жолу бар. Эгерде сиздикинде жүктөгүч орнотулган болсо, анда бир нече фунт турган ATTiny85 өнүктүрүү тактасын колдоно аласыз. Бул USB порт аркылуу компьютериңизге туташат. Мен негизи бирдей, бирок прототиптөө аймагы бар Хидиотту колдондум.

Ардуино IDEде Файл - Тандоолор астына кошуңуз

digistump.com/package_digistump_index.json

Кошумча такталар менеджеринин URL'дерине.

Куралдар астында - Тактада сиз азыр Digisparkтин бир катар параметрлерин көрүшүңүз керек. Тандоо Digispark (Демейки - 16.5MHz).

Эгерде сиздин ATTiny85те жүктөгүч жок болсо (же сиз билбесеңиз), анда сиз бир нече фунтка AVR ISP программистин ала аласыз. Же сиз Arduino Uno же арзаныраак Pro Mini же Nano программист катары колдоно аласыз. Нускамалар үчүн "arduino as isp attiny85" үчүн Google (тырмакчасыз).

Эгерде сиз эскизди өзгөрткүңүз келсе, анда аны толугу менен комментарийлеп таба аласыз жана аны ээрчүү оңой деп үмүттөнөбүз. Мүчүлүштүктөрдү оңдоо үчүн Arduino Pro Mini же Nano колдонуу оңой. Сериалдык монитордун жардамы менен өтүүчү кадамдарды көрүү үчүн, Setup'тогу serial.begin () жана loop () басылмасындагы билдирүүлөрдү комментарийлебеңиз. Булакта Uno, Pro Mini же Nano үчүн кошумча пин аныктамалары бар.

Сиздин Raspberry Piде, shutdown_helper.py файлын/etc/local/bin папкасына көчүрүп, аны буйрук менен аткарылуучу кылып коюңуз

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

Эми /etc/rc.local файлын сүйүктүү редакторуңуз менен түзөтүңүз. (Сиз муну root катары жасашыңыз керек.) Акыркы саптын алдында (0 чыгуу) сапты киргизиңиз

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

Кайра жүктөө, жана жардамчы программа автоматтык түрдө башталат.

Сунушталууда: