Мазмұны:
- 1 -қадам: бөлшектер
- 2 -қадам: Процедура
- 3 -қадам: бағдарламалау
- 4 -қадам: Ақаулықтарды жою және өзгерту
- 5 -қадам: Жабдық
Бейне: Dog Mood Detector (Raspberry Pi): 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл нұсқаулық ит шығаратын дыбыстарды қабылдауға және жарық диодты индикаторлармен оларға жақындау керек пе, жоқ па екенін анықтауға арналған. Ит иелерінің көпшілігі үй жануарларын біледі және олар беретін сигналдарды оқи алады, сондықтан бұл нұсқаулық көбінесе сіздің итіңізбен байланыста болатын бейтаныс адамдарға бағытталған.
1 -қадам: бөлшектер
Саған қажет болады:
- Raspberry Pi
- Қызыл/жасыл жарық диодтары (X2)
- Монитор
- USB бар пернетақта/тінтуір
- WiFi Dongle
- Сыртқы USB микрофон
- 330 Ом резисторы (X2)
Қосымша бөлшектер
- Сыртқы Raspberry Pi қуат көзі
- Ит жағасы
2 -қадам: Процедура
Бұл жобаны бастаудың алғашқы қадамы - сіздің итіңізге байланысты мінез -құлық пен заңдылықтарды бақылау. Сіз бұл жерден нені іздеу керектігін білуге болады. Менің жағдайда, менің итім біреуді көргенде қуанғанда немесе қуанғанда жылайды, жүйкесі нашарлаған кезде мезгіл -мезгіл үреді. Келесі бірнеше қадамдарда мен сіздің итіңіздің мінез -құлқына сәйкес болу үшін бағдарламамды қалай өзгерту керектігін түсіндіремін.
3 -қадам: бағдарламалау
Төменде мен итіме қолданған Python бағдарламасы. Келесі қадамда мен сіздің итіңіздің мінез -құлқына арналған бағдарламаны қалай өзгерту керектігін түсіндіремін. Бағдарламаны әлі іске қоспаңыз, себебі ол келесі қадамды жасамайынша жұмыс істемейді.
№!
қабық = 0
howl = Жалған ұстау = 0 barkLength = 5 кешіктіру = 0 күту = 2 жалауша = 0 қызыл = 7 жасыл = 5 шығуFlag = Жалған
def toggleLightRed (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (қызыл, GPIO. OUT) GPIO.output (c, True) ұйқы (10) GPIO.output (c, False) басып шығару («Қызыл ауысқан»)
def toggleLightGreen (c):
GPIO.setmode (GPIO. BOARD) GPIO.setup (жасыл, GPIO. OUT) GPIO.output (c, True) ұйқы (10) GPIO.output (c, False) басып шығару («Жасыл ауысқан»)
def main ():
жаһандық қабық жаһандық жылау жаһандық қабық
дана = 8192
FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 шектік = 3000 max_value = 0 p = pyaudio. PyAudio () ағын = p.open (формат = FORMAT, арналар = АРНАЛАР, жылдамдық = RATE, енгізу = Дұрыс, шығыс = True, frames_per_buffer = chunk) GPIO.setmode (GPIO. BOARD) GPIO.setup (қызыл, GPIO. OUT) GPIO.setup (жасыл, GPIO. OUT) көріңіз: «Анықтау инициализацияланды» деп басып шығарыңыз, ал True: try: data = stream.read (chunk) IOError дан басқа ex: if ex [1]! = pyaudio.paInputOverflowed: data = '\ x00' * бөлшегін as_ints = массив ('h', деректер) max_value = max (as_ints) көтеру кезінде max_value> threshold: delay = 0 hold = hold+1 try: data = stream.read (chunk) from IOError as ex: if ex [1]! = Pyaudio.paInputOverflowed: data = '\ x00' * жинағын as_ints = массив ('h', деректер)) max_value = max (as_ints) if hold> = barkLength: howl = True print «HOWL DETECTED» toggleLightGreen (жасыл) GPIO.cleanup () elif hold> 0 ұстап тұрыңыз
егер _ аты _ == '_ негізгі _':
негізгі ()
4 -қадам: Ақаулықтарды жою және өзгерту
Орнату
Бағдарламаны іске қоспас бұрын, PyAudio орнату үшін Терминалға келесіні енгізу қажет:
sudo apt-get intall python-pyaudio
Осыдан кейін сіз бағдарламаның дұрыс жұмыс істейтініне көз жеткізу үшін оны тексере аласыз.
Ақаулық себебін іздеу және түзету
Сіз келесі қатені сезінуіңіз мүмкін:
IOError: [Errno Input толып кетті] -9981
Мұны түзету үшін, қате пайда болмайынша, айнымалы бөлікке тағайындалған санды көбейтіңіз.
Өзгертілуде
BarkLength айнымалысы шудың қабық ретінде емес, жылау ретіндегі бағдарламаның айналу санын анықтайды. Егер сіздің иттер жыласа, бірақ ол қысқа жарылыс үшін ғана болса, онда бұл санды азайту керек.
Қызыл және жасыл айнымалы мәндер жарықдиодты индикаторлар үшін қолданылатын шығыс порттарына жатады. Оларды сіздің қажеттіліктеріңізге сәйкес өзгертуге болады.
Мен өз бағдарламамда ауыспалы кідірісті белсенді қолданбасам да, оның үру немесе жылау жиілігін көрсететінін байқауға болады.
Айнымалы ұстау шудың деңгейі шекті мәннен жоғары болатын бағдарламаның неше рет айналатынын білдіреді және ол айқайдың бар -жоғын анықтау үшін қолданылады. Бұл айнымалы мәнді өзгертуге болмайды, өйткені barkLength айнымалысы арқылы жылау анықталады.
Егер қабық өте қатты болмаса немесе көтерілмесе, шекті айнымалы мәнді төмендетуге болады, егер иттен шыққан шу деп қате түсіндірілсе.
5 -қадам: Жабдық
Дәл осы сәтте сізде аппараттық құрал не істейтінін экранға шығаратын толық жұмыс істейтін бағдарлама болуы керек. Жобаның бұл нүктесі - бұл бір жерде орнатылатын стационарлық микрофон болатынын (мысалы, ит жиі келетін немесе келушілермен байланысатын үйдегі орын) немесе жобаны барынша азайтуды шешу керек. және итпен қарым -қатынас жасайтын адамға тез арада кері байланыс жасау үшін иттің мойнына бекітілген.
Стационарлық
Ең оңай нәрсе - бәрін тақтаға қалдыру, өйткені сымдарды ажырататын қозғалыс болмайды. Қызыл светодиодтардың катодтарын Raspberry Pi мен анодтардың жерге тұйықтауышына 330 Ом резистор арқылы немесе тікелей Raspberry Pi 7 істігіне қосыңыз. Жасыл светодиодтармен де осылай жасаңыз, бірақ анодтарды 5 -істікке жалғаңыз. Бағдарламаны іске қосыңыз және кодты сіздің қажеттіліктеріңізге өзгерткеннен кейін сізде аяқталған жоба болуы керек.
Тұрақты емес
Мен алдымен стационарлық нұсқаны аяқтауды ұсынамын, бәрі жұмыс істеп тұрғанына көз жеткізіңіз, содан кейін иттердің қозғалысынан сымдар қосылмайтындай етіп бәрін дәнекерлеп жалғастырыңыз.
Светодиодтарды жағасына бекітіңіз, сонда олар ыңғайлы күйде болады және жақындаған кезде біреуге көрінуі мүмкін.
Содан кейін сыртқы қуат көзін, мында мына жерден таңқурайға қосыңыз және оны итке ыңғайлы етіп жағасына бекітіңіз.
Барлығы бекітілгеннен кейін, бағдарламаны іске қосыңыз, мойынтіректі итке бекітіңіз, сіз аяқтадыңыз!
Ұсынылған:
Arduino MOOD-LAMP: 4 қадам (суреттермен)
Arduino MOOD-LAMP: көңіл-күй лампасының түсі мен түсі біркелкі емес. Көңіл күй лампасы микроконтроллерлер мен бағдарламалық жасақтаманы жаңартуға мүмкіндік береді. Орташа сұр түске боялған қарапайым түс
Galaxy Mood шамы: 10 қадам (суреттермен)
Galaxy Mood шамы: Ғарыш жұлдыздар мен планеталармен таң қалдырады. Бірақ мөлдір жұлдызды аспанға қарап, кеңдікке қарағаннан гөрі сиқырлы және босаңсытатын ештеңе жоқ. Бұл жобада біз галактиканы құру арқылы осы керемет тәжірибені жаңғыртуға тырысамыз
ESP 8266 Nodemcu Ws 2812 Neopixel негізіндегі LED MOOD лампасы жергілікті веб -сервермен басқарылады: 6 қадам
ESP 8266 Nodemcu Ws 2812 Neopixel негізіндегі LED MOOD шамы жергілікті веб -сервермен басқарылады: ESP 8266 Nodemcu Ws 2812 Neopixel негізіндегі LED MOOD шамы веб -сервер көмегімен басқарылады
Dog Bot: Веб -камерасы бар Lego Robot Rover: 17 қадам (суреттермен)
Dog Bot: Веб -камерасы бар Lego Robot Rover: Мұнда Wi -Fi арқылы кез келген экраннан басқаруға болатын Lego роботы қалай жасалады. Оның веб -камерасы бар, сондықтан сіз қайда бара жатқаныңызды көре аласыз және көзге арналған жарықдиодты шамдар! Бұл сіздің балаларыңызбен жасалатын тамаша жоба, өйткені олар логотип құруды жасай алады, және сіз оған
Қарапайым Minecraft Dog (Mods жоқ): 9 қадам
Майнкрафтқа арналған қарапайым ит (Mods жоқ): Бұл оқулықта мен сізге сауытты тіректерден жасалған Minecraft -та керемет ит жасауды үйретемін! Бұл өте қарапайым және қарапайым, сонымен қатар ешқандай модульдер мен текстуралық пакеттер жоқ. ЗЕРГІ СТАНДАРЫНЫҢ АРТЫҚШЫЛЫҚТАРЫ: Сіздің достарыңызға ешнәрсе жүктеудің қажеті жоқ