Mundarija:
- 1 -qadam: qismlar
- 2 -qadam: protsedura
- 3 -qadam: dasturlash
- 4 -qadam: Nosozliklarni tuzatish va o'zgartirish
- 5 -qadam: Uskuna
Video: Itlarning kayfiyatini aniqlash vositasi (Raspberry Pi): 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:27
Bu ko'rsatma itning ovozini qabul qilish va ularga LED indikatorlari bilan yaqinlashish kerak yoki yo'qligini aniqlash uchun mo'ljallangan. Ko'pchilik it egalari o'z uy hayvonlarini bilishadi va ular bergan signallarni o'qiy olishadi, shuning uchun bu ko'rsatma asosan sizning itingiz bilan aloqa qiladigan begonalarga qaratilgan.
1 -qadam: qismlar
Sizga kerak bo'ladi:
- Raspberry Pi
- Qizil/Yashil LEDlar (X2)
- Monitor
- USB bilan sichqoncha/klaviatura
- WiFi Dongle
- Tashqi USB mikrofon
- 330 ohmli rezistor (X2)
Ixtiyoriy qismlar
- Tashqi Raspberry Pi quvvat manbai
- It yoqasi
2 -qadam: protsedura
Loyihani boshlash uchun birinchi qadam - itingiz bilan bog'liq xatti -harakatlar va naqshlarni kuzatish. Siz qidirmoqchi bo'lgan narsalar haqida oddiy ko'rsatma olish uchun BU YERNI bosishingiz mumkin. Mening holatimda, itim kimnidir ko'rganidan hayajonlanganida yoki xursand bo'lganida yig'laydi va asabiylashganda yoki vaqti -vaqti bilan baqiradi. Keyingi bir necha qadamda men sizning itingizning xatti -harakatlariga moslashish uchun dasturimni qanday o'zgartirish kerakligini tushuntiraman.
3 -qadam: dasturlash
Quyida men itim uchun ishlatgan Python dasturi. Keyingi bosqichda men sizning itingizning xatti -harakatlari uchun dasturni qanday o'zgartirish kerakligini tushuntiraman. Dasturni ishga tushirmang, chunki u keyingi bosqichga o'tguncha ishlamaydi.
№!
qobig'i = 0
howl = False hold = 0 barkLength = 5 kechikish = 0 kutish = 2 bayroq = 0 qizil = 7 yashil = 5 chiqishFlag = Noto'g'ri
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (qizil, GPIO. OUT) GPIO.output (c, True) uyqu (10) GPIO.output (c, False) chop etish ("Qizil o'chirilgan")
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (yashil, GPIO. OUT) GPIO.output (c, True) uyqu (10) GPIO.output (c, False) chop etish ("Yashil almashtirilgan")
def main ():
global qobiq global qichqiriq global tutish global qobiq Uzunlik global kechikish global bayroq global qizil global yashil
qism = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 pol = 3000 max_value = 0 p = pyaudio. PyAudio () oqim = p.open (format = FORMAT, kanallar = KANALLAR, tezlik = RATE, kirish = To'g'ri, chiqish = To'g'ri, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (qizil, GPIO. OUT) GPIO.setup (yashil, GPIO. OUT) urinib ko'ring: "Aniqlash ishga tushirildi" ni chop eting, True: harakat qiling: data = stream.read (chunk) IOError tashqari, ex: if ex [1]! = pyaudio.paInputOverflowed: data = '\ x00' * chunk as_ints = array ('h', data) max_value = max (as_ints) while max_value> threshold: delay = 0 hold = ushlab turish+1 urinish: data = stream.read (chunk) IOError tashqari ex: if ex [1]! = Pyaudio.paInputOverflowed: data = '\ x00' * chunk as_ints = array ('h', data)) max_value = max (as_ints) hold hold> = barkLength: howl = "HOWL DETECTED" haqiqiy bosimi toggleLightGreen (yashil) GPIO.cleanup () elif ushlab turing> 0
agar _name_ == "_main_" bo'lsa:
asosiy ()
4 -qadam: Nosozliklarni tuzatish va o'zgartirish
Sozlash
Dasturni ishga tushirishdan oldin PyAudio -ni o'rnatish uchun terminalga quyidagilarni kiritish kerak bo'ladi:
sudo apt-get intall python-pyaudio
Shundan so'ng siz dasturning to'g'ri ishlashini tekshirish uchun uni ishga tushirishingiz mumkin.
Muammolarni bartaraf qilish; nosozliklarni TUZATISH
Siz quyidagi xatolarga duch kelishingiz mumkin:
IOError: [Errno Input overflowed] -9981
Buni tuzatish uchun, xato paydo bo'lmaguncha, o'zgarmaydigan qismga berilgan sonni ko'paytirish kifoya.
O'zgartirish
BarkLength o'zgaruvchisi shovqinni qobiq sifatida emas, balki yig'lash sifatida ko'rishidan oldin dasturning necha marta aylanishini belgilaydi. Agar sizning itlaringiz qichqirsa, lekin faqat qisqa vaqt ichida shunday qilsa, bu sonni kamaytirish kerak.
Qizil va yashil o'zgaruvchilar LED ko'rsatkichlari uchun ishlatiladigan chiqish portlarini bildiradi. Bular sizning ehtiyojlaringizga mos ravishda o'zgartirilishi mumkin.
Men o'z dasturimda o'zgarmaydigan kechikishni faol ishlatmasam -da, u baqirish yoki yig'lashning tezligini ko'rsatadi.
O'zgaruvchan ushlab turish shovqin darajasi ostonadan yuqori bo'lgan dasturning necha marta aylanayotganini bildiradi va yig'layotganini aniqlash uchun ishlatiladi. Bu o'zgaruvchini hech qanday tarzda o'zgartirish mumkin emas, chunki barkLength o'zgaruvchisining manipulyatsiyasi orqali yig'lar aniqlanadi.
Agar qobiq juda baland bo'lmasa yoki baland ko'tarilmasa, pol qiymatini pasaytirish mumkin.
5 -qadam: Uskuna
Aynan shu vaqtda sizda apparat nima qilayotganini ko'rsatadigan to'liq ishlaydigan dastur bo'lishi kerak. Loyihaning bu nuqtasi - bu bitta joyga o'rnatilgan statsionar mikrofon bo'ladimi yoki yo'qmi (masalan, it odatda tashrif buyuradigan yoki tashrif buyuruvchilar bilan aloqa qiladigan uydagi joy) yoki loyihani minimallashtirish to'g'risida qaror qabul qilish kerak. va it bilan muloqotda bo'lgan odamga zudlik bilan javob berish uchun itning yoqasiga bog'langan.
Statsionar
Eng oson narsa - hamma narsani non taxtasida qoldirish, chunki simlarni ajratib oladigan harakat bo'lmaydi. Qizil LEDlarning katodlarini Raspberry Pi va Anodlarning Ground piniga 330 ohmli rezistor orqali yoki to'g'ridan -to'g'ri Raspberry Pi ning 7 -piniga ulang. Yashil LEDlar bilan ham shunday qiling, lekin Anodlarni 5 -pinga ulang. Dasturni ishga tushiring va kodni o'z ehtiyojlaringizga o'zgartirib bo'lgach, sizda tugallangan loyiha bo'lishi kerak.
Statsionar bo'lmagan
Men hamma narsani ishlayotganiga ishonch hosil qilish uchun avval statsionar versiyani to'ldirishni maslahat berardim, so'ngra itning harakatidan simlar uzilmasligi uchun hamma narsani bir -biriga lehimlab qo'yish kerak edi.
LEDlarni yoqaga ulang, shunda ular ikkalasi ham qulay holatda bo'ladi va yaqinlashganda kimdir ularni ko'ra oladi.
Keyin tashqi quvvat manbaini mana bu erda malina pi ga ulang va uni yoqaga itga qulay qilib mahkamlang.
Hammasi joyiga qo'yilgach, davom eting va dasturni ishga tushiring, yoqani itga mahkamlang, shunda ishingiz tugadi!
Tavsiya:
Suv sathini aniqlash vositasi: 7 qadam
Suv sathini aniqlash vositasi: Ultrasonik sensor radar tizimi bilan bir xil printsipda ishlaydi. Ultrasonik sensor elektr energiyasini akustik to'lqinlarga aylantirishi mumkin va aksincha. Mashhur HC SR04 ultratovush sensori 40 kHz chastotada ultratovush to'lqinlarini hosil qiladi
LLDPi - Raspberry Pi tarmoq vositasi (Kolorado shtati universiteti): 7 qadam
LLDPi - Raspberry Pi tarmoq vositasi (Kolorado shtati universiteti): LLDPi loyihasi - bu Raspberry Pi va LCD -dan yasalgan, tizimdagi qo'shni qurilmalardan LLDP (Link Layer Discovery Protocol) ma'lumotlarini olish mumkin bo'lgan tizim. , port nomi va tavsifi, VLA
Qo'l harakatini aniqlash vositasi: 5 qadam
Qo'llarning harakatini aniqlash vositasi: Umumiy nuqtai nazar, ushbu loyihada biz MicroBit va bir nechta datchiklar yordamida qo'llarning asosiy harakatlarini taniy oladigan qo'lqop tayyorlaymiz. Biz Android ilovasi va veb -server bilan birgalikda MicroBit -dagi Bluetooth imkoniyatlaridan foydalanamiz
Yuzni aniqlash va aniqlash - OpenCV Python va Arduino yordamida Arduino Face ID: 6 qadam
Yuzni aniqlash va aniqlash | OpenCV Python va Arduino yordamida Arduino Face ID: yuzni aniqlash AKA yuz identifikatori hozirgi vaqtda mobil telefonlarning eng muhim xususiyatlaridan biridir. Shunday qilib, menda "Arduino loyihasi uchun yuz identifikatori bo'lishi mumkinmi?" Degan savol bor edi. va javob ha … Mening sayohatim quyidagicha boshlandi: 1 -qadam: Bizga kirish
Nutqni aniqlash vositasi: 12 qadam
Nutqni tanib oluvchi: Salom hammaga ….. Menimcha, siz arduino cho'chqasi bilan tajribaga egasiz