Мазмұны:

Түс: 9 қадам
Түс: 9 қадам

Бейне: Түс: 9 қадам

Бейне: Түс: 9 қадам
Бейне: Өлді деп жерлемек болған еді. Бірақ Алланың қалауымен тірілген Бала 2024, Қазан
Anonim
Түс-пи
Түс-пи

Бұл нұсқаулық RGB жарықдиодты жолағын дауысты басқару үшін Raspberry Pi -ді веб -сайт арқылы SpeechRecognition және SpeechSynthesis үшін Web Speech API интерфейстерінің көмегімен қалай қолдануға болатынын көрсетеді.

Бұл мысал қалай жасау керектігін көрсетеді

  • HTTPS арқылы Node.js көмегімен негізгі веб -сайт жасаңыз
  • SpeechRecognition және SpeechSynthesis үшін Web Speech API интерфейстерін қолданыңыз.
  • Cylon.js негізін Raspberry Pi -дегі RGB жарықдиодты жолағын басқару үшін қолданыңыз
  • Жарықдиодты түстерді басқару үшін веб -беттен Cylon.js -ке WSS (Secure Web розеткалары) арқылы хабарласыңыз.

Ескерту

  • Сөйлеу синтезаторын тыңдау үшін динамиктер немесе құлаққап қажет болады
  • Дауысты тану жұмыс істеуі үшін сізге микрофонға рұқсат беру қажет
  • Бұл сіздің микрофонға кіруге мүмкіндік беретіндіктен, сайт HTTPS астында жұмыс істеуі керек
  • Cylon-api-socketio кітапханасы бұл уақытта https-ке қолдау көрсетпейді. Менде біріктіруді күтетін сұраныс бар, бірақ оған дейін /node_modules/cylon-api-socketio/lib/api.js файлын осы репозиторийдегі файлмен ауыстыру қажет
  • Бұл жұмысты орындау үшін pi-blaster қажет.

1 -қадам: Жабдық

  1. Raspberry Pi - Мен өзімде төселген Raspberry Pi 2B қолдандым, бірақ сіз CAD 100 шамасында Raspberry Pi 3 бастапқы жинағын ала аласыз.
  2. RGB светодиодты шам - Мен 32,8 фут/10М 600 л RGB SMD 5050 Minger LED жолақ жарығымен ойнадым. Бұл контроллермен және шамамен CAD 40 қуат көзімен келеді.
  3. Баррель Джек Коннектор - Мен оны жергілікті электроника дүкенінен сатып алдым, осындай. Тек қуат көзіне сәйкес келетініне көз жеткізіңіз
  4. Өткізгіш қосқыштар / сым - Менде әйел мен еркектің қосқыш кабельдері және айналасында 22 калибрлі қатты байланыс сымы болды.
  5. Пластикалық тақтаның дәнекерленген дәнекерленген тақтасы - осындай нәрсе
  6. 3 x 10 кОм резисторлар
  7. Жарықдиодты басқаруға арналған 3 x N -арналы MOSFET - мен жергілікті электронды дүкеннен IRL3303 сатып алдым. Қақпалардың шекті кернеуі максимум болуы маңызды. 3.3V, сондықтан оны RPi түйреуіштерімен басқаруға болады; әдетте атауында 'L' (логикалық деңгей) арқылы белгіленеді.

2 -қадам: Raspberry Pi орнату

Операциялық жүйе

Мен әдетте соңғы Raspbian конструкциясын қолданамын. Суретті жүктеп алып, оны SD картасына жазыңыз. Егер сіз Windows компьютерін қолдансаңыз, суретті SD картасына жазу үшін Win32 Disk Imager бағдарламасын пайдалануға болады.

Node.js

Node.js. соңғы нұсқасын орнатыңыз. Жазу кезінде мен 8.9.1 қолданамын

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

sudo apt-get nodejs орнатыңыз

Git орнатыңыз

sudo apt-get install git

3-қадам: Pi-blaster

Пи-жарғыш
Пи-жарғыш

pi-blaster сізге Raspberry Pi сұрайтын GPIO түйреуіштерінде PWM қосуға мүмкіндік береді. Қолданылатын әдіс өте тиімді: процессорды пайдаланбайды және өте тұрақты импульстар береді.

Бұл импульстік ен модуляциясы Raspberry Pi -ге қызыл, жасыл және көк арналардың әрқайсысы жарық диодты жолаққа қаншалықты жарқын екенін бақылауға мүмкіндік береді.

Біріншіден, репозиторийді клондау

cd /opt /

sudo git clone https://github.com/sarfata/pi-blaster.git sudo chown -R pi: pi pi-blaster

Содан кейін, құрастырыңыз және орнатыңыз

cd/opt/pi-blaster./autogen.sh &&./configure && make && sudo make install

Соңында, қандай түйреуіштерді қолданғыңыз келетінін конфигурациялаңыз

Түбірлік тіркелгі астында немесе sudo көмегімен файлды жасаңыз және өңдеңіз

/etc/default/pi-blaster

Келесі жолдарды қосыңыз

DAEMON_OPTS =-gpio 23, 24, 25

Бұл gpio түйреуіштері жарық диодты жолағына қосылатын түйреуіштерге сәйкес келуі керек.

ЕСКЕРТПЕ: GPIO мен PIN нөмірінің айырмашылығы бар. Бұл мысалда келесілер қолданылады

Жарықдиодты - көк, GPIO -23, түйреуіш - 16

Жарық диоды - қызыл, GPIO -24, түйреуіш - 18 жарық диоды - жасыл, GPIO -25, түйреуіш - 22

Қосымша твиттер

Pi-blaster іске қосыңыз

sudo қызметі pi-blaster іске қосылады

Pi-blaster қайта іске қосыңыз

sudo сервисін pi-blaster қайта іске қосу

Пи-бластерді тоқтатыңыз

sudo қызметі pi-blaster аялдамасы

Жүктеу кезінде pi-blaster автоматты түрде іске қосыңыз

sudo systemctl pi-blaster қосады

Ескертулер және басқа ескертулер

Pi-blaster көмегімен қолданылатын түйреуіштер шығыс ретінде конфигурацияланады. Кіріске бірдеңе қоспаңыз, әйтпесе оны бұзуыңыз мүмкін! Бұл демон дәл уақытты алу үшін таңқурай pi аппараттық PWM генераторын қолданады. Бұл дыбыстық картаның шығуына кедергі келтіруі мүмкін.

4 -қадам: Мысал кодын орнату

Мысал кодын клондау

1. Орнатылатын негізгі қалтаны орнатыңыз

cd /opt

sudo mkdir com.jonhaydock sudo chown pi: pi com.jonhaydockcd com.jonhaydock

2. Мысал git репозиторийін клондау

git clone

немесе

git clone [email protected]: haydockjp/color-pi.git

3. Тәуелділіктерді орнатыңыз

cd түсі-pi

npm орнату

Бұл 2-3 минутқа созылуы мүмкін

4. Бұл жоба HTTPS және WSS арқылы байланысуы қажет. Бұл кезде clilon-api-socketio SSL байланысын қолдамайды. Бұл қолдауды қосу үшін ашық сұрау бар, бірақ ол біріктірілгенге дейін бұл репозиторийде түзету файлы бар. Npm орнатудан кейін келесі пәрменді іске қосыңыз

git checkout node_modules/cylon-api-socketio/lib/api.js

5 -қадам: SSL сертификатын өзіңіз жасаңыз

1. Жеке кілт файлын жасаңыз

cd /opt/com.jonhaydock/colour-pi/certs

openssl genrsa -out color-pi-key.pem 2048

2. КӘЖ құру (Сертификаттарға қол қою сұранысы)

openssl req -new -key-color-pi-key.pem -out color-pi-csr.pem

Осы сәтте сізге сертификат сұрауына қатысты кейбір ақпарат қажет болады. Бұл өздігінен қол қойылған куәлік болғандықтан, мәліметтерді қаншалықты дәл толтыру сізге байланысты. Міне мысал

Ел атауы (2 әріптік код) [AU]: CA

Штат немесе провинция атауы (толық атауы) [Кейбір штат]: Британдық Колумбияның жергілікті атауы (мысалы, қала) : Ванкувер ұйымының атауы (мысалы, компания) [Internet Widgits Pty Ltd]: Color Pi ұйымдық бөлімшесінің атауы (мысалы, бөлім) : Жалпы атау (мысалы, FQDN сервері немесе сіздің атыңыз) : color-pi электрондық пошта мекенжайы : [email protected]

Күрделі пароль :

Қосымша компания атауы :

Бұл мысалда шақыру құпия сөзін бос қалдыру үшін қайтару түймесін басыңыз

3. Сертификатты жасаңыз

openssl x509 -req -days 1095 -color-pi-csr.pem -nignign-color-pi-key.pem -out color-pi-cert.pem

4. Қосымша қауіпсіздік үшін біз Diffie Hellman Parameters файлын жасаймыз

openssl dhparam -dh_2048.pem 2048

Бұл 15-20 минутқа созылуы мүмкін

6 -қадам: тізбекті қосу

Электр тізбегін қосу
Электр тізбегін қосу
Электр тізбегін қосу
Электр тізбегін қосу
Электр тізбегін қосу
Электр тізбегін қосу
Электр тізбегін қосу
Электр тізбегін қосу

Жарық диодты жолаққа қуат беру

Жарық диодты жолақ 12 вольттан тұрады. Raspberry Pi тек 3.3v немесе 5v шығара алады және көптеген жарықдиодты жүргізуге қажет күшейткіштерге жақын жерде шығара алмайды.

12 вольтты қуат көзін Raspberry Pi -ге қоспау маңызды. N арналы MOSFET транзисторлары RPi түйреуіштеріндегі 3.3в және жарықдиодты қуат көзінің 12в ажырату үшін қолданылады.

MOSFET -те Gate, Drain және Source үш штыры бар. Егер сіз қолданатын транзистордың деректер парағының қайсы Google екенін білмесеңіз, мысалы: IRL3303

Біз Raspberry Pi түйреуішін қақпаға, жарықдиодты сымды ағызуға және көзге ортақ жерді қосамыз. Ілмек жоғары көтерілгенде, ағызу мен көз арасындағы кернеу қақпаны іске қосады және қақпаны көзге қосады.

Біз сондай -ақ қақпа мен көзге 10 кО резисторлар қоямыз, осылайша біз RPi түйреуіші жоғары болған кезде, өтетін токты азайту арқылы түйреуішті қорғай аламыз.

Келесі қадамдарды өзіңізге тәуекел етіңіз. Мен қате кетуі мүмкін ештеңе үшін жауапкершілік алмаймын

Жоғарыда нақты тізбектің суреті мен суреті бар.

Мен мұны RPi мен жарық диодты жолақ үшін қуат өшірілген кезде жасауды ұсынар едім

Транзисторлық тізбектерді әр түсті арнаға орнатыңыз

  1. Диаграммада көрсетілгендей транзисторлардың бірін тақтаға салыңыз
  2. Транзистордың 10 кОм резисторларының біреуін ағызу мен бастапқы түйреуішке салыңыз. Бұл бірінші және соңғы түйреуіш
  3. Бастапқы түйреуішті (соңғы түйреуіш) нан тақтасындағы жерге қосу үшін бірнеше сымды қолданыңыз
  4. 1 - 3 қадамдарды тағы екі рет қайталаңыз, осылайша сізде үш жиын болады - бір түске (қызыл, жасыл және көк)

RPi түйреуіштерін тақтаға қосыңыз

  1. 16 -түйреуішті бірінші транзистордың шлюзіне (бірінші түйреуішке) жалғаңыз - бұл көк жарық диодты арна болады
  2. 18 -түйреуішті бірінші транзистордың қақпа түйреуішіне (бірінші түйреуішке) қосыңыз - бұл қызыл жарықдиодты арна болады
  3. 20 -түйреуішті тақтаның бүйіріндегі жер сызықтарының біріне қосыңыз
  4. 22 -түйреуішті бірінші транзистордың шлюзіне (бірінші түйреуішке) қосыңыз - бұл жасыл диодты арна болады

Мен светодиоды сәйкес келетін сым түстерін қолдандым: көк, қызыл және жасыл. Мен жерге қара түсті қолдандым

Бөшке ұясын қосыңыз

  1. Бөшке ұясының + ұшына ақ сымды жалғаңыз
  2. Бөшке ұясының ұшына қара сымды жалғаңыз
  3. Қара сымды RPi Pin 20 жалғанған тақтайшадағы негізгі жерге қосыңыз
  4. Ақ сымды нан тақтасындағы + сызығына қосыңыз

Жарық диодты жолақты қосу

Менің жарық диодты жолағым жеткілікті мөлшердегі қосқышпен келді, оны уақытша нанға қосуға болады. Мен коннекторды тақтаға итеріп, оны тізбектің сынағына жалғадым.

  1. 16 -пинге қосылған бірінші транзистор. Мен көгілдір сымды ағызу түйреуішінен (орта штырь) светодиодты жолақ коннекторындағы көк сымға жүргіздім.
  2. 18 -пинге қосылған екінші транзистор. Мен қызыл сымды өткіздім

    Дренаж

    түйреуішті (орта штырь) светодиодты жолақ коннекторындағы қызыл сымға бекітіңіз

  3. Үшінші транзистор 22 -ші пинге қосылған. Мен жасыл сымды өткіздім

    Дренаж

    түйреуішті (орта штырь) светодиодты жолақ коннекторындағы жасыл сымға бекітіңіз

  4. Ақырында мен баррель ұясына қосылған нан тақтасындағы + сызығынан ақ түсті сымды жарық диодты жолақ қосқышындағы ақ сымға өткіздім.

Қуат

Схеманы тексергеннен кейін сіз Raspberry Pi -ді қосып, баррель ұясына 12 вольтты қосыңыз.

7 -қадам: серверлік код

Серверлік код
Серверлік код

Серверлік кодты іске қосу

cd /opt/com.jonhaydock/colour-pi

sudo npm басталуы

Бұл веб -серверді іске қосады және HTTPS және WSS сұрауларын тыңдай бастайды.

ЕСКЕРТПЕ: алдымен pi-blaster іске қосылатынын ұмытпаңыз

Қоршаған ортаның айнымалылары

Веб -сайттың әдепкі порты - 443, бірақ сіз кодты бастамас бұрын оны қоршаған орта айнымалысын орнату арқылы қайта анықтай аласыз. Мысалға

COLOUR_PI_PORT = 2443 экспорттау

Әдепкі веб -розетка порты - 1443, бірақ сіз кодты бастамас бұрын ортаның айнымалы мәнін орнату арқылы оны ауыстыра аласыз. Мысалға

экспорттау COLOUR_PI_WSS_PORT = 3443

Ескерту: Веб -розетканы негізгі веб -сайт емес, cylinderon.js басқарады, сондықтан олар әр түрлі порттарда болуы керек.

Көк (түйреуіш 16), жасыл (түйреуіш 18) және қызыл (түйреуіш 22) үшін қолданылатын түйреуіштерді де қайта жазуға болады. Мысалға

экспорттау COLOUR_PI_PIN_BLUE = 36

экспорт COLOUR_PI_PIN_RED = 38 экспорт COLOUR_PI_PIN_GREEN = 40

Ескертпе: олар сіз қолданған физикалық түйреуіштерге сәйкес келуі керек. Егер сіз оларды өзгертсеңіз, сізге/etc/default/pi-blaster файлында анықталған GPIO жаңарту қажет болады. Мысалға

DAEMON_OPTS =-gpio 16, 20, 21

Негізгі сервер кодын app.js файлынан табуға болады. Бұл файл HTTPS веб -серверін іске қосады, сонымен қатар Cylon.js жүйесі арқылы бөлек порттағы веб -розеткалық сұраныстарды тыңдау үшін socket.io пайдаланады.

Веб -сайтқа кіру үшін негізгі компьютерде веб -шолғышты ашу керек (мен мұны тек Chrome -да тексердім) және Raspberry Pi -дің IP -мекен -жайын пайдалану керек, мысалы.

10.0.1.2/

IP мекенжайын Raspberry Pi пәрмен жолынан білуге болады.

ifconfig

Веб -сервер жалпы қалтадағы кез келген мазмұнға қызмет көрсетеді. Ол index.html бетін көрсету үшін әдепкі болып табылады.

Cylon.js Socket.io байланыстыратын соңғы нүктені жасайды.

10.0.1.2:1443/api/robots/colour-pi

Қызыл, Жасыл және Көк мәндерін орнату үшін розетка арқылы set_colour хабарламасын жіберуге болады

device.emit ('set_colour', r, g, b)

Бұл set_colour пәрменін шақырады, ол app.js. ішіндегі setColour функциясын шақырады. Бұл функция R, G және B мәндерінің әрқайсысы үшін жарықтық деңгейін 0 мен 255 аралығында орнатады. Бұл жерде 0 өшірулі және 255 толық қосулы.

мысалы

Қызыл r = 255, g = 0, b = 0

Жасыл r = 0, g = 255, b = 0 Көк r = 0, g = 0, b = 255 Ақ r = 255, g = 255, b = 255 Қара / Өшіру r = 0, g = 0, b = 0

8 -қадам: веб -сайт коды

Веб -сайт коды
Веб -сайт коды

Жалпы

Веб -сайт алдын ала анықталған тізімнен түстерді таңдау үшін дауысты тануды қолданады. Тізімге түс қосу үшін сервердегі файлды өңдеңіз: public/data/colours.json

мысалы

«қызыл»: «#FF0000», Түс табылғанда немесе ашылмалы тізімнен таңдалған кезде, шығыс терезесі сол түске орнатылады және хабар socket.io арқылы Raspnerry Pi -ге жіберіледі, ол светодиодтарды сол түске қояды.

ЕСКЕРТПЕ: светодиодтар қаншалықты жақсы екеніне байланысты, сіз ұқсас түсті көре аласыз немесе көрмеуіңіз мүмкін. Кейбіреулерін басқаларға қарағанда қайталау оңай

Сіз веб-сайтты бірінші рет жүктеген кезде, SSL сертификатын қолданған кезде, сіз оны браузерде растауыңыз керек. Сіз сертификат туралы қауіпсіздік ескертуін көруіңіз керек.

Дауысты тану

Бұл қорапта микрофон белгішесі бар. Егер белгіше жасыл болып тұрса, ол түстерді тыңдай бастайды. Ол тыңдап тұрғанда қызыл түске боялады. Ол қысқа уақыт тыңдайды, содан кейін тоқтайды. Микрофон белгішесін қызыл түспен басу оны тыңдауды да тоқтатады.

Бұл сайт сіздің микрофоныңызға қол жеткізуі керек болғандықтан, сізге рұқсат беру қажет болады

ЕСКЕРТПЕ: Бұл бөлікке микрофон қажет. Мен оны веб -камерада қолданамын.

Аралық транскрипт

Бұл қорапта сіз айтып отырған сөздердің болжамдарын қадағалап отырасыз.

Қорытынды транскрипт

Бұл қорапта сіз айтқан соңғы болжам бар.

Белгілі түстер

Бұл бет білетін барлық түстердің тізімі. Ол colours.json файлынан жасалған. Егер сіз осы түстердің біреуін таңдасаңыз, онда бет түсін айтып, шығыс түсін орнатады.

ЕСКЕРТПЕ: Дауысты тыңдау үшін динамиктер немесе құлаққап қажет

Түстер табылды

Бұл веб -бет қазіргі уақытта тек түске сәйкес келуді қолдайды. Егер сіз микрофонда айтқан сөз немесе сөздер белгілі түстің атауына сәйкес келсе немесе сіз белгілі түс тізімінен түс таңдасаңыз, ол журнал ретінде осында қосылады.

Шығу

Мұнда соңғы табылған түс көрсетіледі. Color Hex мәні (мысалы, #7cb9e8) мен RGB мәні (мысалы, 124, 185, 232) мәтін түрінде көрсетіледі және ортасындағы қораптың фоны нақты түске орнатылады.

Бұл түс Raspberry Pi -ге де жіберіледі және сіз жарық диодты жолақтың түсінің өзгеруін көресіз.

ЕСКЕРТПЕ: егер жарық диодты түсінің өзгеруін көрмесеңіз, pi-blaster және/немесе node.js қолданбасын қайта іске қосып көріңіз.

sudo сервисін pi-blaster қайта іске қосу

sudo npm басталуы

Белгілі дауыстар

Бұл терезеде қолдау көрсетілетін speechSynthesis -тен «Белгілі дауыстар» тізімі көрсетіледі. Осы дауыстардың біреуін таңдау дауысты және сіз еститін тілді өзгертеді және ол дауыстың атын айтады.

Ол сондай -ақ SpeechRecognition тілін тізімдегідей өзгертеді.

9 -қадам: Соңында

Image
Image

Міне, сіз көруіңіз керек нәрсенің мысалы.

Егер сізде қандай да бір мәселе болса, маған хабарлаңыз, мен қажет болған жағдайда жаңарта аламын.

Ұсынылған: