Uyni avtomatlashtirish uchun Raspberry Pi. Strukturaviy sxema. Raspberry Pi asosidagi aqlli uy boshqaruv tizimi

Tugmaning asosiy ulanish sxemasi 12-rasmda ko'rsatilgan. Yoqilganligini unutmang non taxtasi maqolaning birinchi qismidagi misoldagi LED ulangan bo'lib qoladi, lekin u joriy diagrammada ko'rsatilmagan.

Diagrammadan ko'rinib turibdiki, agar tugma bosilmasa, GPIO5 kirish rezistor orqali 3,3V relsga ulanadi.RPi ning kirish porti yuqori kirish empedansiga ega, shuning uchun kirish liniyasidagi kuchlanish 3,3V ga yaqin bo'ling. "log" sifatida kirish holati. bitta". Tugma bosilganda, kirish kuchlanishi 0V bo'ladi, bu "log. 0".

Ushbu oddiy sxema uchun R1 rezistorining qiymati juda muhim emas va 1 kŌ dan 47 kŌ gacha bo'lishi mumkin, ammo past qiymatlardan qochish kerak, chunki bu tugma bosilganda chiqarilgan oqimni oshiradi.

Tugma holatini o'quvchi uchun manba kodi yuklab olish bo'limida mavjud (fayl nomi Listing_4(Button).txt). Kodni nomli faylga saqlang button-test.py va buyruq bilan ishga tushiring

sudo python button-test.py.

Dasturning bajarilishi natijasi ekranda tugmaning joriy holati va uni bosish soni haqida xabar sifatida ko'rsatiladi. Ushbu misolni ishga tushirganda, ba'zida hisoblagich qiymati tugmani bosgan haqiqiy sonidan kattaroq bo'lishini sezasiz va bu kontaktlarning "sakrashi" bilan bog'liq. Xuddi shu narsa tugma bo'shatilganda sodir bo'ladi. Yechim kontaktlarning ajralish mexanizmidan foydalanishdir. Ushbu mexanizm apparat yoki dasturiy ta'minot bo'lishi mumkin, ikkinchisi esa keng tarqalgan. Faylda taqdim etilgan manba kodida Listing_5(Button_Debounce).txt, tugma kontaktining sakrashini bostirish amalga oshiriladi va tugmani bosish sonini hisoblash aniqroq bo'ladi. Oldingi koddan yagona farq shundaki, endi 20 ms kechikish bilan kirish holatining ikkinchi tekshiruvi amalga oshiriladi - bu vaqt ichida kontaktning sakrashi to'xtaydi.

Yana bir misol: voltmetr

Ma'lumki, RPi platalarida faqat raqamli I/U portlari mavjud, ammo haqiqiy dunyoda analog qiymatlar qo'llaniladi, ularni o'lchash yoki nazorat qilish kerak bo'lishi mumkin. Quyidagi misolda analog qiymatni qanday aylantirish mumkinligi ko'rsatilgan raqamli signal, bu RPi ning kirishlari yordamida o'qilishi mumkin.

Misol tariqasida 0 ... 1 V o'lchov diapazoni bo'lgan juda oddiy, ammo aniq voltmetrni keltirish mumkin (13, 14-rasmlar). E'tibor bering, u qo'l multimetrini almashtira olmaydi, chunki u zarur himoya sxemasiga ega emas va bu erda tasvirlangan misollar doirasidan tashqarida ishlatilsa, o'z-o'zidan ishlamay qolishi yoki RPi platasini shikastlashi mumkin.

O'chirish AD654 chipidan (kuchlanishni chastotaga o'zgartiruvchi) ishlatadi, u kirish kuchlanishiga bog'liq bo'lgan chastotali to'rtburchaklar impulslarni hosil qiladi. Mikrosxemaning Fout raqamli chiqishi GPIO5 kirishiga (GPIO ulagichining 29-pin) ulangan. Diagrammada ko'rsatilgan elementlarning qiymatlari bilan to'rtburchaklar impulslarning maksimal chastotasi 10 kHz ni tashkil qiladi, shuning uchun kirish kuchlanishini aniqlash uchun bizga aniq vaqt mos yozuvlar tizimi kerak. Ushbu misol uchun kod (fayl Listing_6(Voltmetr).txt) C tilida yozilgan va Gordon Xenderson tomonidan yozilgan wiringpi kutubxonasidan foydalanadi. Birinchidan, kutubxonani o'rnating wiringpi Buning uchun quyidagi buyruqlarni bajaring:

mkdir rivojlanishi
CD ishlab chiqish
git clone git://git.drogon.net/wiringPi
CD simlariPi
./qurmoq

Kodni nomli faylga saqlang voltmetr.c va uni buyruq bilan kompilyatsiya qiling

gcc -o voltmetr -lrt -lwiringPi voltmetr.c.

Dasturni ishga tushirish uchun quyidagi buyruqni bajaring:

sudo ./voltmetr.

O'lchov aniqligini oshirish uchun dastur ma'lumotlarni o'rtacha hisoblashdan foydalanadi. Kiritilgan kvadrat to'lqinli impulslarning davomiyligi 64 marta tezda o'lchanadi, so'ngra olingan qiymatlar yig'iladi va 64 ga bo'linadi. Hisoblash tugagandan so'ng, boshqa jarayonlarni bajarish uchun bir soniya kechikish yoqiladi va keyin o'lchash davri takrorlanadi

Voltmetr pallasida bir nechta elementlar ham o'lchov aniqligiga ta'sir qiladi. Kondansatör C1 va rezistor R1 konversiya xususiyatlarini o'rnatadi, shuning uchun polipropilen plyonkali kondansatör va 1% bardoshlik bilan aniq qarshilikni tanlash tavsiya etiladi. Siz sozlash rezistoridan foydalanishingiz mumkin. O'chirish uchun 5V kuchlanish kuchlanishi GPIO ulagichidan keladi, lekin uning haqiqiy qiymati 5V dan bir oz farq qilishi mumkin, shuning uchun alohida, aniqroq quvvat manbaidan foydalanish yaxshiroqdir.

Uchun tez tekshirish sxema, siz ikkita rezistordan tashkil topgan kuchlanish bo'luvchidan foydalanishingiz mumkin. Ajratuvchi kommutatsiya davri voltmetr pallasining chap tomonida ko'rsatilgan (12-rasm). Agar rezistorlar nozik rezistorlar bo'lsa va besleme zo'riqishida to'liq 5V bo'lsa, ajratuvchi chiqish kuchlanishini hisoblash 0,04950V. Haqiqiy dasturiy ta'minot o'lchovi 0,04991V. Bunday oddiy loyiha uchun yomon emas!

Zanjirdagi D1 va D2 Schottky diodlari ixtiyoriy, lekin juda tavsiya etiladi, chunki ular kirishga tasodifan 0 ... 1 V diapazonidan tashqarida kuchlanish qo'llanilsa, mikrosxemani himoya qiladi.

Xavfsiz kirishlar

RPi ishlatilgan kirishlarga qo'shimcha sxema qo'shish orqali tasodifiy yuqori kuchlanishdan himoyalanishi mumkin. Ba'zi hollarda, quyida ko'rsatilgan sxemaga juda yaxshi va arzon alternativa (15-rasm) RPi kirishlarini 60 V gacha bo'lgan kuchlanishdan himoya qiladigan va polaritning teskari o'zgarishi bilan kurashadigan optokupl bo'lishi mumkin. 14-rasmdagi BC547B tranzistorini 2N3904 yoki BC549 bilan almashtirish mumkin. R1 rezistorining ruxsat etilgan quvvat sarfi 50 V gacha bo'lgan kirish kuchlanishlari uchun 0,25 Vt bo'lishi mumkin, aks holda 0,5 Vt dan foydalanish yaxshiroqdir.

Sxema kirish signalini o'zgartiradi va "log" ga o'tadi. 2 V dan yuqori kirish kuchlanishida 0".

5V Logic ga ulanish

RPi ning kirishlariga 5V mantiqiy chiqishlari bo'lgan qurilmalarni to'g'ridan-to'g'ri ulash plataga zarar etkazishi mumkin. Bunday holda, ko'plab echimlar mavjud.

Agar 5V mantiqiy chiqish holati nisbatan sekin o'zgarsa, siz RPi kirishida rezistorli ajratgichdan foydalanishni ko'rib chiqishingiz mumkin, ammo bu usul tez zanjirlar uchun qo'llanilmaydi. Keyin ko'proq yaxshi qaror bufer chipidan foydalanadi. O'rtacha tezlikda (100 kHz gacha) N-kanalli MOSFET ZVN2110A sxemasi juda mos keladi (16-rasm). Ushbu sxema kirish signalini ham o'zgartiradi.

Diagrammada ko'rsatilgan tranzistor ZVNL120A yoki VN10LP bilan almashtirilishi mumkin.

FETlarni lehimlashda asosiy ehtiyot choralariga rioya qilish kerak. Qurilmani yig'ishda birinchi navbatda R3 rezistorini o'rnating va shundan keyingina MOSFETni himoya o'ramidan chiqarib oling va uni kontaktlarning zanglashiga olib lehimlang. Rezistor R3 ba'zi himoya qiladi.

Ishlash tezligi va jitter

Tugmalarning holatini so'rov qilish va LEDlarni boshqarish o'nlab va yuzlab millisekundlarda o'lchanadigan nisbatan sekin hodisalardir. Ba'zan ancha yuqori tezlikdagi signallarga duch keladi. Misol uchun, televizorning masofadan boshqarish pulti soniyasiga 40 000 marta infraqizil nur pulslarini chiqaradi. RPi ning asosiy protsessori 1 gigagertsli chastotada ishlayotgan bo‘lsa-da, kiritish-chiqarish quyi tizimi bir qancha sabablarga ko‘ra bu tezlikni qo‘llab-quvvatlamaydi, ham apparat, ham dasturiy ta’minot. Maqolaning mavzusi bilan bog'liq ba'zi dastur jihatlarini ko'rib chiqamiz.

RPi ko'p vazifani bajaradi operatsion tizim(OT) Linux. Tizim boshqa vazifalarni bajarish uchun dasturingizni oldindan nazorat qilishi mumkin. Bularning barchasi juda tez sodir bo'ladi, shuning uchun dasturingiz ishlayotgan paytda sichqoncha ishlayotganga o'xshaydi, lekin aslida OS sizning dasturingiz va sichqoncha drayverini kodini qisqa vaqt ichida taqdim etadi.

Bu odatda muhim emas, lekin qisqa yoki yuqori aniqlikdagi hodisalarni hal qilish kerak bo'lganda, bu jitter shaklida (masalan,) o'zini namoyon qiladigan muammoga aylanishi mumkin.

Bundan tashqari, dasturlash tilini tanlash muhim, chunki ba'zi kutubxonalar boshqalarga qaraganda yaxshiroq mos keladi. Sharhlangan va kompilyatsiya qilingan kodlar turli tezliklarda ishlashi mumkin. Muxtasar qilib aytganda, agar sizga voqealar vaqtini aniq belgilash kerak bo'lsa, siz Linux drayverini yozishingiz yoki tashqi uskunadan (masalan, boshqa mikrokontroller yoki mantiqiy sxemalar va generator) foydalanishingiz mumkin.

RPi imkoniyatlaridan toʻliq foydalanish uchun muhim boʻlgan yaxshi savollardan biri Python, C kutubxonalari va yuqorida tavsiflangan buyruq skriptidan foydalangan holda GPIO chiqishlarining mantiqiy holatini qanchalik tez oʻzgartirishingiz mumkinligidir.

Buni bilish uchun osiloskop ulangan chiqish portining mantiqiy holatini vaqti-vaqti bilan almashtirish uchun kod yozilgan. Natija 1-jadvalda keltirilgan.

1-jadval. Chiqishlarning maksimal almashinish chastotasi da
turli dasturlash tillaridan foydalanish
Til
dasturlash
Chastotasi Davomiyligi
yuqori daraja
Davomiyligi
past daraja
Python 71,2 kHz 3,9 mks 10,1 mks
Xi 5,8 MGts 85 ns 85 ns
buyruq skripti 3,9 kHz 115 mks 139 mks

Biroq, Linux operatsion tizimi bilan birga keladigan jitterni doimo yodda tutish kerak. Oddiy LEDni almashtirish holati uchun bu, albatta, muammo emas. Jitterning tabiati umumiy signal tomonidan ishga tushirilganda ko'p kanalli qoplama rejimida osiloskopda ko'rish mumkin (17-rasm). E'tibor bering, RPi ning apparat xususiyatlari tufayli signallar 4 ns (250 MGts) bilan diskret ravishda ajratilganligiga qaramay, jitter ko'p qiymatlarni olishi mumkin.

Xulosa

Endi siz RPi platalaridagi 40 pinli GPIO sarlavhasidan analog qiymatlarni o'lchash uchun LEDlarni boshqarishdan tortib elektron sxemalargacha bo'lgan turli loyihalar uchun ishlatilishi mumkinligini ko'rdingiz. Bir oz qo'shimcha mantiqiy darajadagi moslashuv sxemasi bilan RPi 5V qurilmalar bilan interfeysga kirishi mumkin. Python bilan chiqishlarni boshqarish juda oson, xuddi kirishlar holatini o'qish qiyin emas va wiringpi kutubxonasi C dasturchilari uchun boshqaruvni ancha osonlashtiradi.

Nuqtai nazaridan tashqi interfeyslar Raspberry Pi, boshqa kichik bitta taxtali kompyuterlar kabi, oddiy ish stoli kompyuteridan unchalik farq qilmaydi. RPi taxtasi taqdim etadi USB portlari klaviatura va sichqoncha ulanishi uchun, displey ulanishi uchun HDMI porti. Biroq, RPi shaxsiy kompyuterlarga qaraganda ancha kichik va arzon bo'lganligi sababli, ulardan foydalanish mumkin bo'ladi. turli tizimlar va shaxsiy kompyuterlar yoki noutbuklar mos bo'lmagan ilovalar.

Ko'pincha har qanday nostandart "narsalarni" shaxsiy kompyuterga ulash istagi bor. Siz, masalan, yorug'lik darajasini o'lchash va yorug'likni avtomatik ravishda boshqarish yoki tajovuzkor aniqlanganda signal berish uchun kompyuterdan foydalanishni xohlashingiz mumkin.

Kengroq qilib aytganda, gaplashamiz elektron sxemalarni (chiqishlarni) boshqarish va sxemalar yoki qurilmalardan (kirishlar) ma'lumot olish uchun kompyuterdan foydalanish istagi haqida.

Bu erda RPi va boshqa SBC larning aniq afzalligi SBC va shaxsiy kompyuterlar o'rtasidagi asosiy farq tufayli paydo bo'ladi: SBC'larda I/U portlari mavjud. umumiy maqsad, - katta shaxsiy kompyuterlarda bo'lmagan narsa (1-rasm).

Ushbu pinlar (pin sarlavhalari) orqali RPi (boshqa narsalar qatorida) sensorlar, indikatorlar va aktuatorlardan tashkil topgan elektron dunyo bilan bog'lanishi mumkin.

Ushbu maqolada biz bir nechta dasturlash tillaridagi kod misollari bilan birga "xuddi shunday" (yoki o'zgartirilgan va kengaytirilgan) ishlatilishi mumkin bo'lgan sxemalar misollarini ko'rib chiqamiz.

Raspberry Pi kengaytirish ulagichi

2-rasmda Raspberry Pi kengaytirish ulagichining joylashuvi va pin tayinlanishi ko'rsatilgan. Bosilgan elektron platalardagi ushbu ulagichlarning birinchi pinlari odatda taxtaning pastki qatlamidagi kvadrat yostiq bilan aniqlanishi mumkin. 40-pinli RPi kengaytirish sarlavhasi 3,3V mantiqiy darajalarga mos keladigan raqamli kirish va chiqishlarni ta'minlaydi.

3.3V mantiqiy darajalari bilan moslik RPi 0V ga yaqin kirish darajasini mantiqiy "0" deb talqin qilishini anglatadi va 2V dan yuqori darajani mantiqiy "1" sifatida izohlaydi. Kirish uchun 3,3 dan yuqori kuchlanishni qo'llash RPi ga zarar etkazishi mumkin. Shunga ko'ra, GPIO porti chiqish sifatida sozlanganda, RPi undagi kuchlanishni 0 ga yaqin yoki 3,3 V ga o'rnatadi.

Maqolada biz 2-rasmda pushti, oq, qizil va to'q sariq ranglarda belgilangan xulosalar haqida gapiramiz. Qolgan portlar ketma-ket ma'lumotlar interfeyslari tomonidan ishlatiladi.

RPi raqamli chiqishlari

Birinchi qadamlar: LED boshqaruvi

Chiqishlardan foydalanishning eng oddiy misoli LED yoki lampochkani yoki qandaydir haydovchi yoki motorni boshqarishdir. RPi chiqishini kerakli qurilmani boshqaradigan narsaga aylantirish uchun odatda elektron sxema kerak bo'ladi. Kichkina LEDga kerak bo'lgan barcha narsa - bu LED va RPi chiqishini himoya qiluvchi oqim cheklovchi rezistor. Rezistorning qarshiligi 100 Ohm ... 1 kOm oralig'idan tanlanadi, bu chiqish mantiqiy "1" ga o'rnatilganda ishlatiladigan LEDga va kerakli yorqinlikka bog'liq.

LEDni lehimsiz plata yordamida GPIO ulagichining pinlariga ulash 3-rasmda, sxemaning o'zi esa 4-rasmda ko'rsatilgan. GND (0 V) ulanishi GPIO ulagichining 6-pinidan olingan, GPIO22 porti (pin 15) LEDni boshqarish uchun ishlatiladi. 2-rasmda pushti rang bilan belgilangan har qanday GPIO portidan foydalanish mumkin.

Barcha ulanishlar amalga oshirilgandan va tasdiqlangandan so'ng, siz LEDni boshqarish uchun kod yoki skript yozishni boshlashingiz mumkin. Til tanlash sizga bog'liq. Mashhur Python tilidagi misollardan biri (1-listing) da keltirilgan.

Ro'yxat 1. LEDni shunchaki miltillash uchun Python dasturiga misol.


import vaqti
RPi.GPIO ni GPIO sifatida import qiling
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT)
GPIO.output(22, rost)
vaqt. uyqu(3)
GPIO.cleanup()

Kodni nomli faylga saqlang led-test.py ni bosing va keyin buyruqni ishga tushirish orqali uni ishga tushiring:

sudo python led-test.py

Boshqa dastur (2-ro'yxat) LEDni haydash misolini ko'rsatadi. LED 10 marta yonadi. (Eslatma: Python-da, boshqa dasturlash tillaridan farqli o'laroq, kod chegarasidan foydalanish muhim ahamiyatga ega.)

Ro'yxat 2. Python manba kodi (LED 10 marta miltillaydi).

# LED GPIO22 ga ulangan (15-pin)
import vaqti
RPi.GPIO ni GPIO sifatida import qiling
GPIO.setmode(GPIO.BCM)
(0,10) oraliqdagi x uchun:
GPIO.setup(22, GPIO.OUT)
GPIO.output(22, rost)
vaqt.uyqu(0,05)
GPIO.output(22, noto'g'ri)
vaqt. uyqu (0,45)

GPIO.cleanup()

GPIO portlarini boshqarishning yana bir usuli Shell skriptidan (qobiq skripti) foydalanishga asoslangan. Bu usul biroz murakkabroq ko'rinadi (agar siz skript yozishni yoqtirmasangiz), lekin bu sizning ufqingizni kengaytirish uchun yaxshi, chunki ko'plab dasturlash tillari ko'pincha buyruq skriptlarini ishga tushirishga imkon beradi va agar kerak bo'lsa, bu bitta bo'lishi mumkin. ning tezkor usullar boshqa tillardan GPIO portlarini boshqarish. Bundan tashqari, Listing 3da tavsiflangan usul platformalar bo'ylab standartdir, shuning uchun kodingizni boshqa platalarga ko'chirish mumkin.

Ro'yxat 3. GPIO22 Raspberry Pi ga ulangan LEDni boshqarish uchun buyruq skripti (Shell skripti).

#!/bin/sh
GPIO_PATH=/sys/class/gpio
LED_PIN=22 #GPIO 22 - pin 15
echo "$LED_PIN" > $GPIO_PATH/eksport
echo "chiqish" > $GPIO_PATH/gpio$LED_PIN/yo'nalish
echo "1" > $GPIO_PATH/gpio$LED_PIN/qiymat
uxlash 1
echo "$LED_PIN" > $GPIO_PATH/eksportdan chiqarish

Skriptning birinchi qatori sharhga o'xshaydi, lekin u Linux qobig'iga skript bajarilganda u bilan nima qilish kerakligini aytadi, shuning uchun uni o'zgartira olmaysiz. Skriptning qolgan satrlari mos keladigan GPIO portini boshqarish, uni chiqish sifatida sozlash, uni yuqori darajaga qo'yish va 1 soniyaga kechiktirish uchun ishlatiladi. Oxirida port boshqa dasturlarga foydalanishi uchun bo'shatiladi.

Siz uchratish mumkin bo'lgan yana bir keng tarqalgan dasturlash tili C yoki uning katta akasi C++. Misollar manba kodi C yoki C++ tillarida biz raqamli kirishlar bilan ishlashni boshlaganimizda keyinroq beriladi.

Ohang generatori

Yana qiziqarli misol - ohang generatorini boshqarish uchun bir nechta GPIO portlaridan foydalanish. RPi naushnik uyasiga ega, lekin ko'pincha oddiy signal yoki turli ohanglarning bir qator signallari sizni voqealar haqida xabardor qilish uchun etarli bo'ladi (masalan, budilnik uchun).

Oddiy generatorning sxematik diagrammasi tovush signallari, Integratsiyalashgan taymer chipi ICM7555 da ishlab chiqarilgan, 5-rasmda ko'rsatilgan. Non taxtasida yig'ilgan strukturaning ko'rinishi 6-rasmda ko'rsatilgan. Rezistor va kondansatör qiymatlarini o'zgartirib, siz turli xil ohanglar va tovushlarni yaratishingiz mumkin.

Jeneratör ikkita RPi GPIO porti orqali boshqariladi. Bitta chiqish (GPIO22) tovushni yoqish yoki o'chirish uchun, ikkinchisi (GPIO27) ikkita muqobil signal chastotalari o'rtasida almashish uchun ishlatiladi. Agar xohlasangiz, C1, R1 va R2 komponentlarining qiymatlarini o'zgartirib, boshqa ohanglarni tanlashingiz mumkin.

Bir nechta tovush effektlarini yaratuvchi Python dasturining manba kodi 4-roʻyxatda koʻrsatilgan. Kodni nomli faylda saqlang. tone-test.py va keyin buyruq bilan ishga tushiring

sudo python tone-test.py.

Ro'yxat 4. Ovoz signallari generator uchun nazorat qilish dasturi.

import vaqti
RPi.GPIO ni GPIO sifatida import qiling
GPIO.setmode(GPIO.BCM)
GPIO.setup(22, GPIO.OUT) # Osilatorni yoqing/o'chiring
GPIO.setup(27, GPIO.OUT) # O'zgartirish tugmasi

GPIO.output(22, rost)
diapazondagi x uchun (0,5):
GPIO.output(27, rost)
vaqt. uyqu (0,1)
GPIO.output(27, noto'g'ri)
vaqt. uyqu (0,2)
GPIO.output(22, noto'g'ri)
vaqt.uyqu(0,5)

X diapazonidagi (0,5) uchun:
GPIO.output(22, rost)
vaqt. uyqu (0,1)
GPIO.output(22, noto'g'ri)
vaqt. uyqu (0,2)
GPIO.output(27, rost)
vaqt. uyqu (0,2)

X diapazonidagi (0,5) uchun:
GPIO.output(22, rost)
vaqt.uyqu(0,05)
GPIO.output(22, noto'g'ri)
vaqt.uyqu(0,05)

(0,10) oraliqdagi x uchun:
GPIO.output(22, rost)
vaqt. uyqu (0,1)
GPIO.output(22, noto'g'ri)
vaqt. uyqu (0,1)
vaqt. uyqu(1)

GPIO.cleanup()

E'tibor bering, sxema 3.3V (GPIO sarlavhasining 1-pin) bilan quvvatlanadi. Ushbu manbadan faqat kontaktlarning zanglashiga olib kelmasligiga ishonchingiz komil bo'lsa, foydalaning. 3,3 V kuchlanishli rels 50 mA gacha yuklanishi mumkin. Agar kerak bo'lsa, siz 5 V - 3.3 alohida voltaj regulyatoridan foydalanishingiz mumkin. V ga ulang va uni GPIO sarlavhasining 2-pinida mavjud bo'lgan 5V quvvat manbaiga ulang.

Yuqorida muhokama qilingan sxemalar past kuchlanish bilan quvvatlanadi va kam oqim iste'mol qiladi, lekin ba'zida etarlicha kuchli tashqi qurilmalarni boshqarish kerak bo'ladi. Bunday muammolarni hal qilishning bir necha tipik usullari quyida tavsiflanadi.

5V mantiqiy qurilmalarga ulanish

5V qurilmalarni boshqarish uchun RPi dan foydalanish qo'shimcha sxemalarni talab qilmaydi. Qurilmaning 5V mantiqiy kirishlari RPi portlarining 3,3V chiqishlari bilan normal ishlaydi.

Kam quvvatli LEDlar

Kam quvvatli ko'k va oq LEDlar 3,3V dan yuqori kuchlanishni talab qilishi mumkin.Yagona LEDni boshqarishning eng oson yo'li avtobus oqimini 5V ga o'tkazadigan tranzistorli kalitdir (7-rasm). R1 rezistorining qarshiligi ma'lum bir LEDning texnik xususiyatlariga qarab hisoblanadi, tranzistor - har qanday n-p-n turi.

Kuchli qurilmalar

AC yoki quvvat bilan ishlaydigan kuchli qurilmalarni boshqarishning eng oson va eng keng tarqalgan usuli to'g'ridan-to'g'ri oqim(lekin tarmoqdan emas) tranzistorli kalit bilan o'rni ishlatishdir (8-rasm). Deyarli har qanday npn tranzistori, xususan, mashhur BC547B, 2N3904 va BC549 ni bajaradi. Bunday holda, agar tashqi qurilma 5 V dan ishlay oladigan bo'lsa, siz GPIO ulagichining 2-pinidan o'rni quvvat bilan ta'minlashingiz mumkin. Ammo bu holda, joriy iste'mol haqida unutmaslik kerak. Aks holda, RPi ga tashqi kuchlanishni qo'llamaslik uchun o'rni tashqi quvvat manbaiga ulanishi mumkin.

Elektr tarmog'idan quvvat oladigan qurilmalar

Tarmoqqa ulangan qurilmalarni bevosita boshqaradigan har qanday sxemalar yoki qurilmalar bilan ishlash o'zgaruvchan tok, alohida e'tibor talab qiladi. Ba'zi ishlab chiqaruvchilar boshqacha da'vo qilishlariga qaramay, ularning aksariyati xavfsizlik standartlariga javob bermaydi. Etarlicha xavfsiz yondashuv - bu tayyor echimni topish masofaviy boshqarish infraqizil yoki foydalanadigan taniqli yetkazib beruvchi tomonidan taqdim etilgan taniqli ishlab chiqaruvchi simsiz texnologiyalar. Misol uchun, Energenie to'g'ridan-to'g'ri RPi ning GPIO sarlavhasiga ulanadigan kichik radio uzatgich moduli (9-rasm), shuningdek, namunaviy Python dasturlari bilan jihozlangan radio boshqariladigan elektr rozetkalarini taklif qiladi.

O'rni, LED yoki boshqa qurilmalar guruhi

12V quvvatga ega va 200mA dan kam quvvat oladigan bir nechta LED, o'rni yoki boshqa qurilmalarni boshqarish uchun siz qadimiy (25 yoshdan oshgan) ULN2803 chipidan foydalanishingiz mumkin. Mikrosxema Darlington tranzistoriga asoslangan sakkizta kalitdan iborat. ULN2803 chipini RPi ga ulash variantlaridan biri 10-rasmda ko'rsatilgan.

Kam quvvatli shahar dvigatellari

DC motorlarini RPi bilan haydashning eng yaxshi yechimi maxsus drayverlarni yoki kengaytirish platalarini ishlatishdir, ularning ba'zilari step motorlariga yoki bir nechta cho'tkasiz motorlarga ulanishi mumkin.

Hammaga salom! Bugun men sizga Raspberry Pi-da portlarni qanday saqlashga muvaffaq bo'lganimni aytib beraman. Men uzoq vaqtdan beri ushbu bitta taxtali kompyuterga chiziqli displeyni ulashni xohlardim va hatto wiringpi kutubxonasi yordamida buni qilishga harakat qildim, lekin bunday ulanish juda ko'p natijalarni oladi. Aqlga kelgan birinchi narsa shift registrlaridan foydalanish edi, lekin baribir men I2C yoki SPI avtobusiga qarashga qaror qildim. Internetdagi mavzularni o'qib chiqqach, men ajoyib yechim topdim - RGB LCD SHIELD KIT W/ 16X2 CHARACTER DISPLAY - FAQAT 2 PINS ISHLATILADI! . Kengash I2C avtobusi orqali SDL va SCK ni boshqarish uchun faqat ikkita pindan foydalanadi, bundan tashqari, beshta tact tugmasi uchun etarli joy bor edi. IN bu qurilma tezlik unchalik muhim emas, shuning uchun I2C avtobusi menga juda mos keldi. Kengashning "yuragi" Microchip chipi, MCP23017 port kengaytirgichidir.

Hammaga salom!

Vaqti-vaqti bilan amaliyotda shunday vaziyatlar paydo bo'ldiki, men o'zimning oddiy loyihalarim uchun veb-serverni backend sifatida taqdim qilsam yaxshi bo'lardi, deb orzu qilardim. Xo'sh, shunday bo'lishi kerak bo'lgan xost nomiga ega bo'lish uchun va siz unga tashqaridan ma'lumot berishingiz va ba'zi ma'lumotlarni olishingiz uchun, ehtimol API-rozetkani burab qo'ying yoki umuman olganda - o'zingizning qulay blogingizni o'sha erda joylashtiring.

Pichoqlari bo'lgan qandaydir tokchalar darhol tasavvurga tushdi, Digital Ocean-da virtual mashinani ijaraga oldi yoki, eng yomoni, stol ostida tunu-kun shovqinli kompyuter.

Lekin siz sokin, oqlangan, jim va afzalroq bepul narsani xohlaysiz ...

STOP! Axir, hamma narsa bizdan oldin ixtiro qilingan!

Bugun men bir tiyin evaziga minimal bilimga ega bo'lgan holda, sizning (yaxshi, meniki - aniq) backend ehtiyojlaringizning 90 foizini ta'minlaydigan mashinani qanday qilib kesishingiz mumkinligi haqida gapirmoqchiman.
Hikoya o'zi uchun yozuvlar xarakteriga ega bo'ladi - nima qilishni unutmaslik uchun, masalan, keyingi safar uni takrorlang)

Kimga g'amxo'rlik qiladi - kesma ostiga o'ting (darvoqe, taxtadagi chiplar sendvich bilan qanday lehimlanganiga e'tibor bering).

Raspberry Pi - ingliz ishlab chiqaruvchilarining innovatsion mahsulotidir. Ularning asosiy maqsadi kompyuter ta’limini keng aholi o‘rtasida ommalashtirish, dasturlashni yanada kengroq va qulayroq fanga aylantirish va ko‘proq odamlarni yangi texnologiyalar yordamida yangi narsalarni yaratishga undash edi.

Raspberry Pi mahsulot nomi degan ma'noni anglatadi "malinali pirog", ishlab chiqaruvchi kompaniya shu tariqa ushbu kompyuter birinchi navbatda bolalar uchun mo'ljallanganligini ta'kidladi.

Bu ixtiro nima va Raspberry Pi qanday qo'llanilishi zamonaviy dunyo, bu haqda quyida gaplashamiz.

Raspberry Pi kompyuter xususiyatlari

Raspberry Pi bu a kichik kompyuter korpussiz bitta taxta shaklida. Ishlab chiquvchilar bolalar va kattalarni nafaqat kompyuterdan foydalanishga, balki uni ichkaridan o'rganishga e'tibor berishni taklif qilishadi, shuningdek, o'z tasavvurlarini ishga solishni va ushbu kompyuter asosida boshqalarni o'ziga xos narsa qilishni taklif qilishadi.

Ishlab chiquvchilarning fikriga ko'ra, Raspberry Pi qurilmasi ishlashi kerak Ushbu ta'lim maqsadlari:

  • talabalarni dasturlash ko'nikmalarini rivojlantirishga undash;
  • yosh dasturchilarning tashabbuslariga hissa qo'shish;
  • tajribali kompyuter olimlariga yangi ufqlarni ochishga va dasturlash sohasida yangi yutuqlarga erishishga yordam berish.

Raspberry Pi-ning vatani Buyuk Britaniyada to'liq to'plamni 75 funt sterlingga sotib olish mumkin. To'plamning o'zi quyidagi tarkibiy qismlardan iborat:

  • Raspberry Pi modeli B mini-kompyuterining o'zi;
  • mikro CD (8 gigabayt);
  • klaviaturalar;
  • optik sichqoncha;
  • micro CD karta adapteri;
  • quvvatlantirish manbai;
  • HDMI va mikro USB kabellari.

Raspberry Pi ning birinchi partiyasi O'rta Qirollikda ishlab chiqarilgan, ammo 2012 yil oxiridan boshlab ishlab chiqarish butunlay Buyuk Britaniyaga, Penkoiddagi (Uels) zavodga o'tkazildi. Zavod haftasiga o'rtacha 40 mingtaga yaqin Raspberry Pi mini-kompyuterlarini ishlab chiqaradi.

Raspberry Pi texnik xususiyatlari

Xo'sh, nimalar spetsifikatsiyalar Ushbu noyob korpussiz kompyuter haqida bilib olaylik:

Uy uchun Raspberry Pi kompyuter ilovasi

Raspberry Pi mini kompyuterining eng ko'p ishlatiladigan modeli 215 MB modeli B tasodifiy kirish xotirasi Ethernet qo'llab-quvvatlashi bilan. Qurilmaning yana bir modifikatsiyasi ham mavjud, unda komponentlar ixchamroq joylashtirilgan, u ham to'rttaga ega USB port, undagi kirish va chiqish GPIO portlarining soni sezilarli darajada kattaroq, bundan tashqari, kompozit video chiqishi yo'q.

Raspberry Pi kompyuterining qamrovi ancha keng. Ushbu qurilma unchalik kuchli emasligiga qaramay, lekin ayni paytda u juda to'laqonli kompyuterdir. Agar sizga kuchli hisoblash resurslaridan foydalanishni talab qilmaydigan eng oddiy vazifalarni hal qilish uchun mashina kerak bo'lsa, u holda siz Raspberry Pi qurilmasiga xavfsiz ulanishingiz mumkin. Mashinaning standart elementlari:

  • monitor;
  • sichqoncha;
  • klaviatura
  • har qanday Linux tarqatish ulanishi.

Uyda siz Raspberry Pi qurilmasidan quyidagi maqsadlarda foydalanishingiz mumkin:

  • uy media serverini yaratish;
  • ma'lumotlarni saqlash serveri sifatida;
  • avtomatlashtirilgan mashinalar yoki robotlar uchun "aql markazi" sifatida;
  • uyni avtomatlashtirish serveri (yoki aqlli uy tizimi) sifatida.

Ko'rib turganimizdek, sharlar Raspberry ilovalari Shaxsiy ehtiyojlar uchun Pi boshqacha bo'lishi mumkin. Asosan, bu dasturchilar yoki boshqa ishlab chiquvchilarning ishi bilan bog'liq tor profilli vazifalar. Va agar biz keng qo'llanilishi haqida gapiradigan bo'lsak, unda siz Raspberry Pi-dan uy avtomatizatsiya tizimlari yoki shunday deb ataladigan tizimlar uchun foydalanish xususiyatlari bilan tanishishingiz kerak. aqlli uy. Keling, ushbu masalaning amaliy tomonini ko'rib chiqaylik.

Har qanday uyni avtomatlashtirish tizimi yoki aqlli uy juda murakkab va ko'p tizimli. U foydalanuvchi tomonidan berilgan muayyan stsenariylarni bajarish uchun mo'ljallanganligiga qo'shimcha ravishda, u ma'lum bir favqulodda vaziyatda o'z qarorlarini qabul qilish qobiliyatiga ega. Ishonch bilan aytish mumkinki, bunday tizim mavjud sun'iy intellektning yaratilishi.

Bugungi kunda ko'pchilik "aqlli uy" tushunchasini hamma narsaga qo'llaydi, masalan:

  • GSM signallari;
  • suv oqimi sensori;
  • yorug'likni boshqarish harakat sensorlari va boshqalar.

Bu hodisalarning barchasini uy avtomatizatsiyasi tarkibiga kiritish mumkin, ammo ular alohida bo'lishi mumkin emas.

Uyni avtomatlashtirish tizimi ("aqlli uy") quyidagi komponentlarni o'z ichiga oladi:

  • markaziy server;
  • u RS485 interfeysi orqali uyning har bir xonasi va xonasida joylashgan kontrollerlarga ulangan;
  • tizimning ishlashini himoya qilish, nazorat qilish va tartibga solish uchun boshqaruvchilarga ma'lum boshqaruv qurilmalari ulangan.

Ushbu tizimning bunday tarmoq arxitekturasi yaxshi, chunki uy egasi noqulay simlarni har bir qurilmadan serverga uzatmasligi kerak, faqat bitta orqali ulangan kontrollerlarni ulash kerak. UTP kabeli. Uning bir juft simi RS485 interfeysi uchun ishlatiladi, qolganlari quvvat sensorlari va kontrollerlar uchun. Shuni ta'kidlash kerakki, ishning tuzilishi shunday ta'minlanadiki, agar kontrollerlardan biri yoki bir nechta kontrollerlar ishlamay qolsa yoki hatto markaziy serverning ishlashi buzilgan bo'lsa, bu butun tizimning ishlashiga ta'sir qilmaydi.

Va bu tizimdagi Raspberry Pi mini kompyuteri va markaziy server hisoblanadi. Unga veb-serverni o'rnatishingiz kerak, uning yordamida har qanday foydalanuvchi o'zi orqali mobil qurilma(smartfon, planshet yoki noutbuk) uyda sodir bo'ladigan barcha jarayonlar haqida ma'lumotlarga ega bo'lish va bu jarayonlarni boshqarish uchun oddiy brauzerdan foydalanish imkoniyatiga ega bo'ladi. Foydalanuvchi bosh sahifa orqali login va parol orqali serverga kirish huquqiga ega. mahalliy tarmoq yoki global tarmoq orqali, agar siz uni Wi-Fi qurilmasi orqali kiritsangiz.

Tekshirish moslamalari UART qurilmasining ketma-ket portiga RS485 interfeysi orqali mos keladigan moslama yordamida ulanadi, ular boshqa chiqish yoki kirishlar to'plami bilan jihozlangan. Shuningdek, siz GPS modelini bir xil interfeysga ulashingiz va undan mobil yoki statsionar orqali tizimga kirish uchun foydalanishingiz mumkin telefon aloqasi agar foydalanuvchi Internetga kirish imkoni bo'lmagan zonada bo'lsa. Kirish, avvalgi holatda bo'lgani kabi, parol orqali ham ruxsat etiladi. Tarmoqdagi boshqa qurilma radio moduli ga bog'lanish uchun ishlatilishi mumkin umumiy tizim barcha radio sensorlar va masofadan boshqarish pultlari.

Shunday qilib, Raspberry Pi asosidagi uyni avtomatlashtirish tizimining joriy versiyasi server bilan aloqa qilish uchun zarur bo'lgan RS485 interfeysiga ega markaziy server va kontrollerlardan iborat. Ularning tavsifi quyidagicha ko'rinadi:

Endi esa Raspberry Pi qurilmasidan ixtirochilar tomonidan qanday foydalanilganligini bilib olaylik innovatsion mahsulotlar yaratish. Keling, ulardan ba'zilarini ko'rib chiqaylik.

Konstruktor Kano

Bolalar uchun Kano konstruktori oddiy konstruktor emas, u modulli kompyuter, hatto bola ham bunday jumboqni yig'ishi mumkin. Konstruktorlar to'plamiga quyidagilar kiradi:

Shunday qilib, hatto bola ham kompyuterni o'zi yig'ishi mumkin, keyin u monitor yoki televizorga ulanadi HDMI porti orqali.

Ushbu qurilish to'plami dastlab bolalar uchun yaratilgan, ammo kattalar orasida ham mashhur bo'ldi. Ushbu loyihani ishlab chiqish va amalga oshirish uchun mablag‘ Creative Ivention Fundraising Platformasi orqali to‘plangan. Rahmat yig'ilgan kompyuter mumkin quyidagi amallarni bajaring:

  • musiqa yozish;
  • HD video tomosha qilish;
  • dasturlarni yozish;
  • o'z o'yinlaringizni yarating.

SkyJack uchuvchi qurilma

Raspberry Pi kompyuteriga asoslangan boshqa ixtirochilar Wi-Fi ulanishi orqali boshqariladigan SkyJack dronini yaratdilar. Bunday qurilma vertolyot balandligini olish, harbiy vertolyotlarning yo'llarini kuzatish va ularni boshqarishga qodir, shuningdek, radio signallarini ushlab turish va xalaqit berish uchun ham ishlatilishi mumkin. Biroq, bunday imkoniyatlarga qaramay, qurilma kichik ta'sir radiusi tufayli ommaviy foydalanishga ruxsat beriladi.

Ko'knori: Robot Alien

Poppy roboti 3D bosib chiqarish orqali yaratilgan Frantsiyaning INRIA Flowers kompaniyasi. Robot Raspberry Pi mini kompyuteri tomonidan boshqariladi. Robotning dizayni insonning biologik tuzilishini takrorlaydi, uning bo‘g‘imlari, umurtqa pog‘onasi va paylari bor, yurishi odamnikiga o‘xshaydi, yuradi, tovondan burungacha qadam qo‘yadi va og‘irlik markazini bir tekis boshqaradi.

No More Woof nima?

No More Woof - bu hali ishlab chiqilayotgan va Raspberry Pi-ga asoslangan qurilma. Uning yordami bilan egasi itining nima istayotganini tushunadi. Shunday qilib, qurilma hayvonning boshiga biriktiriladi va elektroansefalograf printsipi asosida ishlaydi, ya'ni itning boshidan ma'lumotni o'qish va Raspberry Pi orqali egasiga o'tkazing. Bunday qurilma qachon tayyor bo'lishi va uni qanday ishlatishi hali noma'lum, ammo shunga o'xshash minigarnituralar, garchi unchalik mukammal bo'lmasa ham, professional itlarni qayta ishlash bilan shug'ullanganlar tomonidan allaqachon qo'llanilgan.

Yangi ming yillikning kelishi bilan yangi avlod kompyuterlariga qiziqish nafaqat iste'molchi ekanligini hamma ko'rmoqda. Bolalar dasturlashni va yangi narsalarni yaratishni o'rganishni xohlamaydilar, lekin ular faqat "foydalanuvchi" bo'lishni xohlashadi. Raspberry Pi ni ishlab chiquvchilari ularning qurilmasi odamlarning hisoblash fanlarini o'rganishga bo'lgan avvalgi qiziqishlarini qaytarishiga va ularni nafaqat yangi texnologiyalardan foydalanishga, balki ularni yaratishga ham majbur qilishiga ishonchlari komil.

Raspberry PI - bu etarli ishlashga ega bo'lgan qurilma bo'lib, uning asosida tasvirlarni taniy oladigan, odamlarning ishini bajaradigan robotlar va murakkab hisoblash harakatlarini avtomatlashtirish va bajarish uchun boshqa shunga o'xshash qurilmalarni qurish mumkin. Chunki soat chastotasi protsessor Raspberry PI 3 m.b. 1,2 gigagertsli va uning bit chuqurligi 32 bit, keyin Raspberry PI 3 odatdagi Arduinodan sezilarli darajada ustundir, qoida tariqasida soat chastotasi 16 MGts va mikrokontroller bitining kengligi 8 bit, Arduino, albatta, operatsiyalarni bajarishda o'z o'rnini egallaydi. Bu yuqori unumdorlikni talab qilmaydi, lekin u endi Raspberry PI uchun etarli bo'lmaganda "yordamga keladi" va shu qadar keng ko'lamli mumkin bo'lgan ilovalarni qamrab oladiki, siz ushbu Raspberry PI 3 bitta taxtali sotib olishning maqsadga muvofiqligiga to'liq amin bo'lishingiz mumkin. kompyuter (havoladan buyurtma berish mumkin) . Chunki Raspberry PI - bu kompyuter, uni ishlatish uchun siz unga operatsion tizimni o'rnatishingiz kerak (garchi vaqtinchalik echimlar mavjud bo'lsa-da, operatsion tizimni o'rnatish hali ham yaxshiroq va osonroq (quyida operatsion tizim)). Raspberry Pi-ga o'rnatilishi mumkin bo'lgan juda ko'p operatsion tizimlar mavjud, ammo eng mashhurlaridan biri (Raspberry Pi bilan foydalanish uchun) va yangi boshlanuvchilar uchun eng mos bo'lgan Raspbian OS hisoblanadi. Raspberry Pi-ga operatsion tizimni o'rnatish uchun sizga kengaytirgichli micro SD-karta kerak bo'ladi, shunda uni o'rnatish mumkin. oddiy kompyuter va unga OS yozing. Raspbian-ning to'liq versiyasini o'rnatishda SD-kartada kamida 4 Gb xotira va Raspbian-ning minimal versiyalarini o'rnatish uchun kamida 8 Gb xotira bo'lishi kerak. Minimal versiyalar bo'lmasligi mumkin (va, ehtimol, yo'q) GUI va ortiqcha deb hisoblanishi mumkin bo'lgan va joy egallaydigan ko'plab boshqa narsalar. Yo'qotish bilan bog'liq muammolarni oldini olish uchun kerakli fayllar, qo'yishingiz mumkin to'liq versiya. Siz 32 Gb xotiraga ega 10-sinf SD-kartadan foydalanishingiz mumkin (u ishlayotganini tekshiring (quyidagi videoga qarang)). Xotira kartasini sotib olgandan so'ng, siz uni kompyuterga tegishli uyaga kiritishingiz kerak, so'ngra "mening kompyuterim" bo'limida disk qaysi harf bilan paydo bo'lganini ko'rib chiqing va esda tuting, keyin siz OSni rasmiy veb-saytidan yuklab olishingiz kerak https: //www.raspberrypi.org/downloads/raspbian / toʻliq versiyani yuklab olish uchun “RASPBIAN JESSIE” ostidagi “ZIP-ni yuklab olish” tugmasini bosish orqali yoki Lite versiyasini yuklab olish uchun “RASPBIAN JESSIE LITE” ostida, lekin yangi boshlanuvchilar uchun bu yaxshiroqdir. "RASPBIAN JESSIE" ni tanlash, ya'ni to'liq versiya. "RASPBIAN JESSIE" arxivini yuklab olgandan so'ng, siz uni ochishingiz kerak, keyin dasturni yuklab oling (yoki bu yerdan https://yadi.sk/d/SGGe1lMNs69YQ), o'rnating, oching, so'ngra haydovchi harfini ko'rsatishingiz kerak. yuqori o'ng burchakda (ilgari eslab qolgan), ochilmagan OS tasvirini toping

Va "yozish" tugmasini bosing.

Shundan so'ng, ogohlantirish oynasi paydo bo'ladi va bu oynada siz "Ha" tugmasini bosishingiz kerak,

Yozish tugallangandan so'ng va muvaffaqiyatli yozib olish haqida ma'lumot beruvchi oyna paydo bo'ladi (Muvaffaqiyatli yozish), ushbu oynada "Ok" tugmasini bosishingiz kerak.

Keyin dasturni yoping, SD kartani chiqarib oling xavfsiz tarzda va Raspberry Pi-ga joylashtiring.

Keyinchalik, siz Raspberry Pi-ga ulanishingiz mumkin usb klaviatura(yoki ps2 orqali), usb sichqoncha va monitor yoki televizor orqali hdmi kabeli yoki chekilgan kabelni ulashingiz mumkin (lekin bu ilg'or foydalanuvchilar uchun, shuning uchun biz quyida birinchi variantni ko'rib chiqamiz). Shundan so'ng, quvvatni mikro usb orqali, masalan, dan ulashingiz kerak zaryadlovchi smartfondan. Quvvatni ulagandan so'ng, operatsion tizimni o'rnatish boshlanadi. Qoida tariqasida, OT ning yangi (ushbu yozish vaqtida) versiyalarida Raspberry Pi bilan SSH orqali bog'lanish imkoniyati allaqachon sozlangan va shuning uchun Raspberry Pi 3 bilan Wi-Fi orqali aloqani sozlash uchun bu etarli. faqat Wi-Fi-ni sozlash uchun.Buni amalga oshirish uchun ekranning yuqori o'ng burchagida siz bosishingiz va Wi-Fi-ni tanlashingiz kerak bo'lgan belgi mavjud,

Keyin paydo bo'lgan matn maydoniga ushbu Wi-Fi uchun parolni kiriting,

Ushbu bosqichlardan so'ng Raspberry Pi 3 da Wi-Fi sozlanadi va keyin Raspberry Pi 3 ni simlardan foydalanmasdan Wi-Fi orqali masofadan dasturlash mumkin bo'ladi. Raspberry Pi 3 ni o'rnatganingizdan so'ng, uni kiritish orqali o'chirib qo'yishingiz mumkin buyruq qatori(ochilishi mumkin bo'lgan LXTerminal dasturida ikki marta bosing dastur belgisi bo'yicha) sudo to'xtatish buyrug'i yoki grafik rejimda tegishli o'chirish tugmachalarini bosish orqali yakuniy o'chirilgandan so'ng, Raspberry Pi 3 ni keyingi safar yoqqaningizda quvvatni o'chirib, Wi-Fi orqali yoqishingiz mumkin. Endi Raspberry Pi 3-ni wi-fi orqali dasturlash uchun uning IP-manzili nima ekanligini bilib olishingiz kerak. Buni amalga oshirish uchun siz Raspberry Pi 3-ni yoqishingiz, OT yuklanishini kutishingiz, yo'riqnoma veb-interfeysiga o'tishingiz kerak (brauzer qatoriga 192.168.1.1 kiritib yoki veb-interfeysga nima kirishingiz kerak, login va parolingizni kiriting), DHCP yorlig'ini Lizing yoki shunga o'xshash narsalarni toping, malina bilan chiziqni va Raspberry Pi 3 ning IP manzilini toping.

Keyinchalik, siz PuTTY dasturini ochishingiz kerak (agar u mavjud bo'lmasa, yuklab oling (yoki) oldin o'rnating) 22-portni o'rnating, SSH orqali ulang, "Xost nomi (yoki IP)" da Raspberry Pi 3 IP-manzilini kiriting. Manzil)" maydoni,

Keyin oynaning pastki qismidagi "Ochish" tugmasini bosing, keyin sizdan login kiritishingizni so'rab qora oyna paydo bo'ladi. Odatiy bo'lib, login "pi" - siz uni kiritishingiz va Enter tugmasini bosishingiz kerak. Keyinchalik, parolni kiritishingiz kerak, standart "malina". Parolni kiritishda u ko'rsatilmaydi - bu normal holat. Parol ko'rinmas harflar bilan kiritilgandan so'ng, siz Enter tugmasini bosishingiz kerak va agar hamma narsa to'g'ri bajarilgan bo'lsa, biz Raspberry Pi 3-ga kira olamiz, agar bo'lmasa, amallarni takrorlashingiz kerak. Raspberry Pi 3-ga kirish huquqiga ega bo'lganingizdan so'ng, siz uni dasturlashingiz mumkin, avval siz "pi" jildiga kirishingiz kerak, buning uchun buyruqni kiritishingiz kerak.

Va Enter tugmasini bosing (CD dan keyin albatta bo'sh joy kerak).
Endi siz ochishingiz mumkin matn muharriri nano. Nano - bu Raspberry Pi uchun dasturlar yozish imkonini beruvchi ko'pgina Linux-ga o'xshash operatsion tizimlarda joylashgan maxsus matn muharriri. Ushbu muharrirni ochish va bir vaqtning o'zida "birinchi" nomi va "py" kengaytmali fayl yaratish uchun siz buyruqni kiritishingiz kerak.

Va Enter tugmasini bosing. Nano muharriri ochiladi va siz uning interfeysi biroz boshqacha ekanligini sezishingiz mumkin, lekin asosan bu buyruqlarni kiritishingiz kerak bo'lgan bir xil qora quti. Chunki biz umumiy kirish chiqish portlarini (GPIO) boshqarishni xohlaymiz, keyin ushbu portlarni boshqarish uchun dasturni ishga tushirishdan oldin, boshqaruvning chiqqanligini ko'rishingiz uchun ularga biron bir qurilmani ulashingiz kerak. Shuni ham ta'kidlash kerakki, Raspberry Pi-da chiqish sifatida sozlangan pinlar juda kichik oqim hosil qilishi mumkin (menimcha, 25 mA gacha) va Raspberry Pi hali ham eng ko'p emas. arzon qurilma chiqishlardagi yuk juda katta bo'lmasligiga e'tibor berish qat'iy tavsiya etiladi. Kam quvvatli indikatorli LEDlar odatda Raspberry Pi bilan ishlatilishi mumkin. Ularni yoqish uchun faqat oz miqdorda oqim kerak bo'ladi. Birinchi marta siz konnektor, qarama-qarshi yo'nalishda parallel ravishda ulangan ikkita LED va LEDlar bilan ketma-ket ulangan 220 Ō qarshilik bilan armatura qilishingiz mumkin. Chunki rezistorning qarshiligi 220Ō, oqim bu rezistordan majburiy ravishda o'tadi va uning o'tishi uchun parallel yo'llar mavjud emas, terminallardagi kuchlanish 3,3V, keyin oqim 3,3/220=0,015A=15mA dan oshmaydi. . Siz buni bepul GPIO-larga, masalan, diagrammadagi kabi 5 va 13-ga ulashingiz mumkin

(pinout https://en.wikipedia.org/wiki/Raspberry_Pi dan olingan), u shunday ko'rinishi mumkin:

Har bir narsa aniq va to'g'ri ulangandan so'ng va hech narsa yonib ketmasligiga ishonch paydo bo'lgandan so'ng, siz birinchi oddiy Python dasturini NANO muharririga nusxalashingiz mumkin.

RPi.GPIO ni GPIO sifatida import qiling
import vaqti
GPIO.setmode(GPIO.BCM)
GPIO.setup(13, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)
GPIO.output(13, rost)
GPIO.output(5, noto'g'ri)
vaqt. uyqu(1)
GPIO.output(13, noto'g'ri)
GPIO.output(5, rost)
vaqt. uyqu(1)
GPIO.output(13, rost)
GPIO.output(5, noto'g'ri)
vaqt. uyqu(1)
GPIO.output(13, noto'g'ri)
GPIO.output(5, rost)
vaqt. uyqu(1)
GPIO.output(13, rost)
GPIO.output(5, noto'g'ri)
vaqt. uyqu(1)
GPIO.output(13, noto'g'ri)
GPIO.output(5, rost)
vaqt. uyqu(1)
GPIO.cleanup()

Keyin bosing

NANO muharriridan chiqqandan so'ng siz buyruqni kiritishingiz mumkin

sudo python first.py

Shundan so'ng, LEDlar ma'lum bir necha marta miltillaydi. Bular. Wi-Fi orqali umumiy maqsadli kirish/chiqish portlarini boshqarish uchun chiqdi! Endi dasturni ko'rib chiqamiz va bu qanday sodir bo'lganini bilib olamiz.
Qator:

RPi.GPIO ni GPIO sifatida import qiling

Bu pinni boshqarish uchun "GPIO" kutubxonasining ulanishi.
Qator:

Bu kechikishlar uchun "vaqt" kutubxonasiga ulanish.
Keyingi GPIO rejimini sozlash:

GPIO.setmode(GPIO.BCM)

Chiqish sifatida 5 va 13 pinlarining konfiguratsiyasi:

GPIO.setup(13, GPIO.OUT)
GPIO.setup(5, GPIO.OUT)

13-pinda mantiqiy birlikni o'rnatish, 5-pinda mantiqiy nolni o'rnatish:

GPIO.output(13, rost)
GPIO.output(5, noto'g'ri)

Kechikish

13-pinda mantiqiy nolni o'rnatish, 5-pinda mantiqiy nolni o'rnatish:

GPIO.output(13, noto'g'ri)
GPIO.output(5, rost)

Barcha pinlarni tiklaydi va dastur tugaydi. Bu. Wi-Fi orqali har qanday bepul pinlarni boshqarishingiz mumkin va agar siz batareyadan 5V quvvat oladigan bo'lsangiz, u holda siz allaqachon avtonom robot yoki statsionar hech narsaga ulanmagan qurilma yasashingiz mumkin. Til Python dasturlash(python) C-ga o'xshash tillardan farq qiladi, masalan, nuqta-vergul o'rniga, buyruqni tugatish uchun python chiziqli tasmadan foydalanadi, jingalak qavslar o'rniga chap chetidan chekinadi, bu Tab tugmasi yordamida amalga oshiriladi. . Umuman olganda, Python juda yaxshi qiziqarli til oson o'qiladigan oddiy kodni ishlab chiqaradi. Raspberry PI 3 bilan ishlash (yoki o'yin) tugagandan so'ng, uni buyruq bilan o'chirib qo'yishingiz mumkin.

Va to'liq o'chirilgandan so'ng, quvvatni olib tashlang. Quvvat yoqilganda, Raspberry PI 3 yoqiladi va yana ishlashga (yoki o'ynashga) tayyor bo'ladi. Raspberry pi 3 ga http://ali.pub/91xb2 orqali buyurtma berishingiz mumkin. Raspberry PI 3-ni qanday sozlash va uning pinlarini boshqarishni videoda ko'rish mumkin:

LEDlarni muvaffaqiyatli miltillagandan so'ng, siz to'liq miqyosli tadqiqotga o'tishingiz mumkin bu kompyuter va faqat sizning tasavvuringiz bilan cheklangan Raspberry PI 3 imkoniyatlaridan foydalangan holda loyihalar yarating!