Мазмұны:
- 1 -қадам: Жабдық
- 2 -қадам: Raspberry Pi орнату
- 3-қадам: Pi-blaster
- 4 -қадам: Мысал кодын орнату
- 5 -қадам: SSL сертификатын өзіңіз жасаңыз
- 6 -қадам: тізбекті қосу
- 7 -қадам: серверлік код
- 8 -қадам: веб -сайт коды
- 9 -қадам: Соңында
Бейне: Түс: 9 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Бұл нұсқаулық 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 -қадам: Жабдық
- Raspberry Pi - Мен өзімде төселген Raspberry Pi 2B қолдандым, бірақ сіз CAD 100 шамасында Raspberry Pi 3 бастапқы жинағын ала аласыз.
- RGB светодиодты шам - Мен 32,8 фут/10М 600 л RGB SMD 5050 Minger LED жолақ жарығымен ойнадым. Бұл контроллермен және шамамен CAD 40 қуат көзімен келеді.
- Баррель Джек Коннектор - Мен оны жергілікті электроника дүкенінен сатып алдым, осындай. Тек қуат көзіне сәйкес келетініне көз жеткізіңіз
- Өткізгіш қосқыштар / сым - Менде әйел мен еркектің қосқыш кабельдері және айналасында 22 калибрлі қатты байланыс сымы болды.
- Пластикалық тақтаның дәнекерленген дәнекерленген тақтасы - осындай нәрсе
- 3 x 10 кОм резисторлар
- Жарықдиодты басқаруға арналған 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 мен жарық диодты жолақ үшін қуат өшірілген кезде жасауды ұсынар едім
Транзисторлық тізбектерді әр түсті арнаға орнатыңыз
- Диаграммада көрсетілгендей транзисторлардың бірін тақтаға салыңыз
- Транзистордың 10 кОм резисторларының біреуін ағызу мен бастапқы түйреуішке салыңыз. Бұл бірінші және соңғы түйреуіш
- Бастапқы түйреуішті (соңғы түйреуіш) нан тақтасындағы жерге қосу үшін бірнеше сымды қолданыңыз
- 1 - 3 қадамдарды тағы екі рет қайталаңыз, осылайша сізде үш жиын болады - бір түске (қызыл, жасыл және көк)
RPi түйреуіштерін тақтаға қосыңыз
- 16 -түйреуішті бірінші транзистордың шлюзіне (бірінші түйреуішке) жалғаңыз - бұл көк жарық диодты арна болады
- 18 -түйреуішті бірінші транзистордың қақпа түйреуішіне (бірінші түйреуішке) қосыңыз - бұл қызыл жарықдиодты арна болады
- 20 -түйреуішті тақтаның бүйіріндегі жер сызықтарының біріне қосыңыз
- 22 -түйреуішті бірінші транзистордың шлюзіне (бірінші түйреуішке) қосыңыз - бұл жасыл диодты арна болады
Мен светодиоды сәйкес келетін сым түстерін қолдандым: көк, қызыл және жасыл. Мен жерге қара түсті қолдандым
Бөшке ұясын қосыңыз
- Бөшке ұясының + ұшына ақ сымды жалғаңыз
- Бөшке ұясының ұшына қара сымды жалғаңыз
- Қара сымды RPi Pin 20 жалғанған тақтайшадағы негізгі жерге қосыңыз
- Ақ сымды нан тақтасындағы + сызығына қосыңыз
Жарық диодты жолақты қосу
Менің жарық диодты жолағым жеткілікті мөлшердегі қосқышпен келді, оны уақытша нанға қосуға болады. Мен коннекторды тақтаға итеріп, оны тізбектің сынағына жалғадым.
- 16 -пинге қосылған бірінші транзистор. Мен көгілдір сымды ағызу түйреуішінен (орта штырь) светодиодты жолақ коннекторындағы көк сымға жүргіздім.
-
18 -пинге қосылған екінші транзистор. Мен қызыл сымды өткіздім
Дренаж
түйреуішті (орта штырь) светодиодты жолақ коннекторындағы қызыл сымға бекітіңіз
-
Үшінші транзистор 22 -ші пинге қосылған. Мен жасыл сымды өткіздім
Дренаж
түйреуішті (орта штырь) светодиодты жолақ коннекторындағы жасыл сымға бекітіңіз
- Ақырында мен баррель ұясына қосылған нан тақтасындағы + сызығынан ақ түсті сымды жарық диодты жолақ қосқышындағы ақ сымға өткіздім.
Қуат
Схеманы тексергеннен кейін сіз 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 -қадам: Соңында
Міне, сіз көруіңіз керек нәрсенің мысалы.
Егер сізде қандай да бір мәселе болса, маған хабарлаңыз, мен қажет болған жағдайда жаңарта аламын.
Ұсынылған:
Vex үшін Modkit -те түс сұрыптаушыны қалай кодтауға болады: 7 қадам
Vex үшін Modkit -те түс сұрыптаушыны қалай кодтауға болады: Сәлеметсіз бе, бұл оқулықта Modkit -те түсті шарды сұрыптауды VexHode үшін қалай кодтау керектігін үйренесіз, сіз оны жасайсыз және ләззат аласыз! Pls маған дауыс беріңіз
Оңай еңкейтуге негізделген түс сымсыз кубикті кубик шамының өзгеруі: 10 қадам (суреттермен)
Оңай көлбеу түсі бар кубикті сымсыз кубик шамы: Бүгін біз тек кубик тәрізді Рубик шамын жасаймыз, ол түсі қай жағына қарай өзгереді. Текше шағын LiPo батареясымен жұмыс істейді, ол стандартты микро-USB кабелімен зарядталған, мен тексерген кезде батареяның қызмет ету мерзімі бірнеше күнге жетеді. Бұл
Magicbit -тен қарапайым DIY түс сенсоры: 5 қадам
Magicbit -тен қарапайым DIY түс сенсоры: Бұл оқулықта біз Arduino көмегімен Magicbit көмегімен қарапайым түсті сенсорды қалай жасау керектігін білеміз
Үстелден түс! Макей Макеймен: 4 қадам
Үстелден түс! Макей Макеймен: Егер сіз LEGO League Challenge бірінші командасын жаттықтыратын болсаңыз, сіздің командаңыз (тіпті жаттықтырушыларыңыз да) үстелге сүйеніп, көңіліңіз қалуы мүмкін. Ол миссияның нәзік модельдерін бұзуы мүмкін, сіздің роботтарыңыздың жүгіруіне, тіпті сіздің әріптесіңіздің роботына кедергі келтіруі мүмкін! U
Оқулық: Arduino UNO көмегімен RGB түс детекторы сенсоры TCS230 қалай қолданылады: 3 қадам
Оқу құралы: Arduino UNO көмегімен RGB түс детекторының сенсоры TCS230 қалай қолдану керек: Сипаттама: Бұл оқулықта Arduino Uno көмегімен RGB түс детекторы сенсорын пайдалану туралы бірнеше қарапайым қадамдар көрсетіледі. Бұл оқулықтың соңында сіз бірнеше түстерді салыстыратын көптеген нәтижелерді аласыз