Мазмұны:
- 1 -қадам: Ескерту: Мұны үйде байқап көріңіз
- 2 -қадам: компоненттер
- 6 -қадам: Pi мекенжайы
- 7 -қадам: Жоспар
- 8 -қадам: физикалық жаттығулар
- 9 -қадам: Raspberry Pi автоматты түрде іске қосылады
- 10 -қадам: Хоестон, бізде проблема болды … DC моторлары бір модель емес
- 11 -қадам: [TCP]: Неліктен Tcp және Shell қауіпсіз емес? TCP дегеніміз не?
- 12 -қадам: [TCP]: Клиент жасауға рұқсат етіңіз
- 13 -қадам: Tcp хабарламаларын қолданып көріңіз
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Мен @RedPhantom (aka LiquidCrystalDisplay / Itay), Израильден келген 14 жасар студент, Макс Шейн атындағы орта білім беру мен математика орта мектебінде оқиды. Мен бұл жобаны барлығына үйренуге және бөлісуге жасаймын!
Сіз өзіңіз ойлаған шығарсыз: хмм … Мен геикпін … Ал менің балаларым олармен жоба жасауымды қалайды … Ол робот жасағысы келді. Ол оны кішкентай күшік сияқты киіндіргісі келді. Демалыс күндері жақсы жоба!
Raspberry Pi кез келген жағдайда қолдануға жарамды: бүгін біз бұл микро компьютердің робот жасау қабілеттерін ашамыз. Бұл робот жасай алады:
- Айдап жүріңіз және Raspberry Pi сияқты бір WiFi желісіне қосылған кез келген компьютерді LAN (WiFi) арқылы басқарыңыз.
- Raspberry Pi камера модулінің көмегімен бейнені тікелей эфирде көрсетіңіз
- Сенсорлық деректерді Arduino көмегімен жіберіңіз
Бұл жақсы жарық жобасына не қажет екенін білу үшін келесі қадамды (ескертулерді) оқыңыз, содан кейін Қажетті: компоненттер қадамын оқыңыз.
Міне GitHub репо: GITHUB РЕПО МЕНІҢ
Міне, жоба сайты: ЖОБАЛЫҚ САЙТ МЕНІҢ
1 -қадам: Ескерту: Мұны үйде байқап көріңіз
ЕСКЕРТУ:
ОСЫНЫҢ АВТОРЫ сізде электр энергиясы мен электр қондырғыларының негізгі жұмысы туралы жеткілікті білімге ие. ЕСКЕРТПЕСЕҢІЗ, ОСЫ НҰСҚАУЛАРДЫ ОРЫНДАМАСАҢЫЗ: ЭЛЕКТРОНДЫҚ ЖАБДЫҚТАРҒА ЗАҢ келтіріңіз, ӨЗІҢІЗДІ КҮНДІРЕҢІЗ ЖӘНЕ ОТТЫ САҚТАҢЫЗ. Егер сізде бұл оқулыққа қажетті білім болмаса (дәнекерлеу, электроника негіздері), білетін адаммен бірге орындаңыз. Рақмет сізге.
БҰЛ НҰСҚАУЛЫҚТЫҢ АВТОРЫ ҚАНДАЙ ЖАУАПКЕРШІЛІКТІ ӨЗІНЕН ЖАУАПТАУҒА ЖӘНЕ ЖОҚТАЛУЫНА ЖӘНЕ ФИЗИКАЛЫҚ ЗЫЯНҒА АРНАЛДЫ. ЖАЛПЫ СЕНІМДІ ПАЙДАЛАНУ
2 -қадам: компоненттер
Дәнекерлеу үтікті қыздырмас бұрын, немен байланыстыру керектігін қарастыру керек. Мен осы қарапайым диаграмманы жасадым (MS Paint мені ешқашан төмендетпейді), онда белгілі бір бөлік роботтың ішінде орналасқан.
Сурет үлкейтілген, толық ажыратымдылықта көруге және мәтінді оқуға мүмкіндік береді.
6 -қадам: Pi мекенжайы
Ардуино Пи -мен жоспар бойынша сөйлеседі. Ал Pi компьютермен сөйлеседі, осының бәрі қалай жұмыс істейді?
Қосылымды бастау тізбегін қарастырайық:
- Raspberry Pi басталады
- Ардуино басталады
- Raspberry Pi TCP клиентін іске қосады. Ол өзінің IP -адресін светодиод арқылы шығарады.
- Raspberry Pi сериялық байланыс қызметін бастайды және Arduino -ға қосылады
Сондықтан біз қандай да бір байланыс орнаттық:
Компьютер Raspberry Pi Arduino
Мен Arduino/Raspberry Pi хаттамасын жазу үшін Raspberry Pi және Python -мен сөйлесетін бағдарламаны жазу үшін Visual Basic. NET (Microsoft Visual Studio 2013 қауымдастығы) қолдандым.
Pi IP мекенжайын білу үшін сізге оны HDMI экранына қосу, Shell -ге кіру және пәрменді енгізу жеткілікті:
хост атауы -I.
7 -қадам: Жоспар
Бізде Pi -дің IP -адресі бар болса, біз оған SSH енгіземіз (SSH - бұл қауіпсіз қабық - біз Linux қабығына қашықтан қосыламыз) және сервердің IP -адресін көрсететін файлды жазамыз. Пи, іске қосылған кезде де солай жасайды және тыңдайтын портты жазады. Мұнда мен кодтан бірнеше мысал келтіремін, бірақ оны осы қадамнан және мен жасаған GitHub филиалынан жүктеуге болады. Бұл туралы толығырақ кейінірек.
Ол келесідей жұмыс істейді:
- RPi іске қосылады.
- RPi Tcp бағдарламасын жергілікті IP -де және тағайындалған портта бастайды.
- RPI бейне ағынын бастайды
- RPI жабылады.
8 -қадам: физикалық жаттығулар
Енді біз бәрін физикалық түрде құруға дайынбыз. Егер сіз 1 -қадамды (ескерту мәтіні мен лицензиялау) оқымаған болсаңыз, оны жалғастырмас бұрын орындаңыз. Мен келтірілген зиян үшін жауап бермеймін. Егер күмән туындаса, бұл роботты зомби апокалипсисі болмаса, әскери мақсатта қолдануға болмайды. Содан кейін де ақылға қонымды түрде қолданыңыз.
Нұсқаулықтарды оқу тізімінде оқу ұсынылады.
Қосылым схемасын «Қосылымдар» қадамынан жүктеп алыңыз.
МОТОРЛАР
Сіз сатып алған қозғалтқыштар, бәлкім, осылай көрінеді, егер олар болмаса, бұл жақсы: егер оларда тек екі сым болса (көп жағдайда қара және қызыл), ол жұмыс істеуі керек. Олардың жұмыс кернеуі мен токын білу үшін олардың онлайн кестесін қараңыз. Пікір бөлімінде сұрақтар қоюдан тартынбаңыз. Мен оларды үнемі оқимын.
H-BRIDGE
Мен бұрын H-Bridge-пен жұмыс істеген емеспін. Мен аздап гугл жасадым және HB принциптерін түсіндіретін жақсы нұсқаулық таптым. Сіз ол жаққа қарай аласыз (Оқу тізімі қадамын қараңыз) және өзіңізге де іліңіз. Мен көп түсіндірмеймін. Сіз бұл жерден оқи аласыз және осы схема туралы бәрін біле аласыз.
ЖАРЫҚ ДИОДТЫ ИНДИКАТОР
Бұл шам шам шамасы логикалық кернеуден жұмыс істей алады, себебі оған ток қажет емес, кернеуі 3В-5В 4мА-18мА. Қосымша.
ARDUINO
Arduino сигналдар мен командаларды Raspberry Pi -ден сериялық байланыс арқылы алады. Біз Arduino -ны қозғалтқыштарды басқару үшін қолданамыз, себебі Raspberry Pi аналогты мәндерді GPIO арқылы шығара алмайды.
9 -қадам: Raspberry Pi автоматты түрде іске қосылады
Сіз Raspberry Pi қосқан сайын пайдаланушы аты мен құпия сөзді теруіңіз керек болады. Біз мұны жасағымыз келмейді, себебі кейде біз Пи-ге пернетақтаны байланыстыра алмаймыз, сондықтан біз Пиді дайындайтын бағдарламаны автоматты түрде бастау үшін осы оқулықтағы келесі қадамдарды орындаймыз. Егер ол циклде қалса, біз оны үзу үшін әрқашан Ctrl+C пернелер тіркесімін қолдана аламыз.
- sudo crontab -e
- Содан кейін біз cron менеджерінде бұл файлды автоматты түрде қосуға қосатын пәрменді енгіземіз.
Біз pibot.sh файлын шақырамыз, ол роботты басқару үшін барлық питон сценарийлерін іске қосуға пәрмен береді. Мұны қарастырайық: (Біз бағдарламаға GPIO -ға кіруге рұқсат беру үшін Python перделері бар sudo)
raspivid -o --t 0 -hf -w 640 -h 360 -fps 25 | cvlc -vvv ағыны: /// dev/stdin --sout '#rtp {sdp = rtsp: //: 8554}': demux = h264
Pi жағындағы барлық жұмыстарды орындайтын код on_startup.sh деп аталады.
Бұл бәрін басқаратын қарапайым қабық сценарийі.
10 -қадам: Хоестон, бізде проблема болды … DC моторлары бір модель емес
Мен H-Bridge-ді сынап көрдім және ол жақсы жұмыс істейді, бірақ мен робот платформасынан алған қозғалтқыштарды қосқанда, мен желіге тапсырыс бердім, бұл екі қозғалтқыш әр түрлі жылдамдықта айналады және әртүрлі дыбыстар шығарады. Мен дроссельді қозғалтқыштарда 100% -ға ауыстырдым. Екеуі де максималды мүмкіндігімен жүгіре алмады.
Бұл екі түрлі қозғалтқыш сияқты. Біреуінде үлкен момент бар, бұл робот үшін өте қолайлы, бірақ екіншісі роботты қозғалтпайды. Ол шеңберлерге айналады.
Бұл жерде менде бар нәрсе - Arduino сериялық бағдарламасы өте жақсы жұмыс істейді, бірақ компьютердегі Tcp сервері мен Piдегі Tcp клиенті әлі кодталмаған. Мен конкурсқа осы жазбаны толтыруым керек. Маған не істеу керек?
- Біріншіден, мен қозғалтқыштардың кернеуін үш есе арттырамын. Деректер кестесінде 3V, 6V оларды қозғалтпады деп жазылған. Ол кезде 9В болады. Мен аккумуляторды токты екі есеге параллель қостым, кернеу өзгеріссіз қалады.
- Менде платформаға бекітілген басқа қозғалтқыштар бар ма? Мүмкін, егер олар ұқсас модельдер болса, мен көре аламын.
- Егер шоколад желдеткішке қатты тиіп кетсе, мен Сервоға алмастыра аламын.
Мектеп басталды. Мен не істеу керектігін көруім керек.
Ескерту: Неліктен мен бұл жерде кездесетін мәселелерді жазамын? Егер сізде тәжірибе аз болса және сізде осындай проблемалар болса, сіз не істеу керектігін білесіз.
Шешім:
Сондықтан мен тағы бір тест тапсырдым. Мен жылдамдықтың айырмашылығын Arduino кодына бейімдедім.
ЕСКЕРТПЕ: қозғалтқыштар сіз үшін әр түрлі жылдамдықта айналуы мүмкін! Arduino эскизіндегі мәндерді өзгертіңіз.
11 -қадам: [TCP]: Неліктен Tcp және Shell қауіпсіз емес? TCP дегеніміз не?
Менде PC үшін SSH емес, Tcp қолданудың екі түсіндірмесі бар. - Пи байланыс.
- Біріншіден, SSH (Secure Shell, түсініктемелерді қараңыз) қашықтағы компьютерден командаларды іске қосуға арналған. Пи -ге біз қалаған ақпаратпен жауап беру қиынырақ, себебі біздің деректерді талдаудың жалғыз нұсқасы - қатаң және жалықтыратын жолдарды өңдеу.
- Екіншіден, біз SSH -ды қалай пайдалану керектігін білеміз және осы оқулықта құрылғылар арасындағы байланыс туралы көбірек білгіміз келеді.
TCP немесе Трансмиссияны басқару протоколы - Internet Protocol Suite негізгі хаттамасы. Ол Интернет -протоколды (IP) толықтыратын алғашқы желілік іске асырудан пайда болды. Сондықтан бүкіл пакет әдетте TCP/IP деп аталады. TCP IP желісі арқылы байланысатын хосттарда жұмыс істейтін қосымшалар арасында сегіздік ағынының сенімді, реттелген және қателікпен тексерілуін қамтамасыз етеді.
(Википедиядан)
Сонымен, TCP артықшылықтары:
- Қауіпсіз
- Жылдам
- Желінің кез келген жерінде жұмыс істейді
- Деректердің дұрыс берілуін тексеру әдістерін ұсынады
- Ағынды басқару: егер деректерді жіберуші клиентті тіркеуге және өңдеуге деректерді тым жылдам жіберсе, қорғанысы бар.
Ал кемшіліктері:
- TCP-де сіз деректерді желідегі барлық құрылғыларға жібере алмайсыз және мультикаст жібере алмайсыз (бірдей, бірақ айырмашылығы- әр құрылғыға сервер сияқты таратуға мүмкіндік береді).
- Бағдарлама мен операциялық жүйе кітапханаларындағы қателер (олар TCP байланысын басқарады, сіздің маршрутизатор екі [немесе одан да көп] құрылғыны қосудан басқа ештеңе істемейді)
Неліктен UDP қолданбау керек, сіз сұрай аласыз ба? TCP -ден айырмашылығы, UDP сіздің клиентіңіз көп мәлімет жібермес бұрын деректерді алатынына сенімді емес. Электрондық поштаны жіберу және клиенттің оны алатынын білмеу сияқты. Сонымен қатар, UDP қауіпсіздігі төмен. Қосымша ақпарат алу үшін Stack Exchange Super User -ден осы жазбаны оқыңыз
Бұл мақала жақсы және ұсынылады.
12 -қадам: [TCP]: Клиент жасауға рұқсат етіңіз
Деректерді серверден алатын клиент (біздің жағдайда Raspberry Pi) (біздің компьютерде біздің жағдайда) Pi -ге (Arduino -да орындалатын сериялық командалар) жіберу және деректерді қайтару үшін деректерді алады (сенсорлық көрсеткіштер) және тікелей Arduino -дан кері байланыс. Қосылған схема үшеуінің арасындағы байланысты көрсетеді.
Python Wiki TcpCommunication мақаласы кіріктірілген розетка модулін қолдана отырып, кодтың бірнеше жолымен мұндай байланыс жасау өте қарапайым екенін көрсетеді. Бізде компьютерде бағдарлама болады, ал Pi -де басқа бағдарлама болады.
Біз үзілістермен жұмыс жасаймыз. Толығырақ олар туралы түсініктеме қадамынан біліңіз. Буферлер туралы оқыңыз. Енді біз data = s.recv (BUFFER_SIZE) көмегімен деректерді оқи аламыз, бірақ біз бос шағулармен анықталған қанша таңбаны аламыз. Біз үзілістерді қолдана аламыз ба? Тағы бір сұрақ: буфер бос болады ма, әлде сервер көбірек деректерді жіберуді күтеді ме, бұл жағдайда сервер/клиент күту уақытының ерекшелігін шығарады ма?
Мұны кезекпен шешуге рұқсат етіңіз. Мұны жасамас бұрын, мен TCP және UDP пайдаланылған порттарын тізімдейтін осы Википедия мақаласын іздедім. Жылдам қарап шыққаннан кейін мен бұл жобаның Операциялық жүйе мен жергілікті қызметтерде қолданылмайтындықтан 12298 портында байланысатынына шешім қабылдадым.
13 -қадам: Tcp хабарламаларын қолданып көріңіз
Үзілістерді қолдана алатынымызды білу үшін Python пәрмен жолының көмегімен қарапайым клиент пен сервер құруға рұқсат етіңіз. Мен мұны келесі қадамдарда жасаймын:
- Мәтінді Tcp арқылы перде порты арқылы циклмен жіберетін бағдарламаны іске қосыңыз
- Барлық мәтінді циклде оқитын және экранға басып шығаратын басқа бағдарламаны (параллель) бастаңыз.
Бағдарламаның тек сегменттері көрсетіледі. Барлық бағдарламалар Python 3. жүйесінде жұмыс істейді, бұл бағдарламалардың барлығы - компьютер арқылы пайдаланушы пернетақтасынан Arduino -ға Pi арқылы сериялық команданы жіберу.
- SBcontrolPC.py - ДК -де іске қосылады. Жергілікті адресте және көрсетілген портта TCP қосылымын бастайды (мен 12298 портын қолданамын, неге алдыңғы қадамды қараңыз)
- SBcontrolPi.py - Pi -де іске қосылады. Әр жарты секунд сайын (0,5 секунд) оның буферін оқиды. Бейне ағыны сияқты заттарды басқаратын қабық сценарийін бастайды.
Ұсынылған:
Интернетпен басқарылатын көпіршікті машина: 4 қадам (суреттермен)
Интернетпен басқарылатын көпіршікті машина: көпіршікті үрлеу өте қызықты екенін бәрі біледі, бірақ бұл қиын жұмыс. Біз бұл мәселені Интернетте басқарылатын көпіршікті құрылғыны құру арқылы шеше аламыз, барлық күш -жігерді жинаймыз. Стационарлық емделушілер үшін сіз
NodeMCU көмегімен Интернетпен басқарылатын жарық диоды: 6 қадам
NodeMCU көмегімен Интернетпен басқарылатын жарықдиодты: Интернеттегі заттар (IoT) - бұл бір -бірімен байланысты есептеу құралдарының жүйесі, механикалық және цифрлық машиналар, объектілер, жануарлар немесе адамдар, олар бірегей идентификаторлармен қамтамасыз етілген және деректерді желіге адам қажет етпей беру мүмкіндігімен қамтамасыз етілген
ESP8266 мен Google Home Mini көмегімен DIY дауысы/интернетпен басқарылатын үйді автоматтандыру және бақылау: 6 қадам
ESP8266 мен Google Home Mini көмегімен DIY дауысы/интернетпен басқарылатын үйді автоматтандыру және бақылау: Эй !! Ұзақ үзілістен кейін мен осындамын, өйткені біз бәріміз ақша табу үшін қызықсыз нәрсе (жұмыс) жасауымыз керек. BLUETOOTH, IR, Local WIFI, Cloud, яғни қиын мақалалардан жазған барлық үйдегі Автоматтандыру мақалаларынан кейін * ҚАЗІР * келеді. ең қарапайым, бірақ ең тиімдісі
Жеке робот -робот жасаңыз !!! - Оқулық, фотосуреттер және бейне: 58 қадам (суреттермен)
Жеке робот -робот жасаңыз !!! - Оқулық, фотосуреттер және бейне: ӨҢДЕУ: Менің жобаларым туралы қосымша ақпарат менің жаңа веб -сайтымды тексереді: narobo.com Мен робототехника, мехатроника және арнайы эффектілер жобалары/өнімдері бойынша кеңес беремін. Қосымша ақпарат алу үшін менің narobo.com веб -сайтына кіріңіз
Арзан, қарапайым, интернетпен басқарылатын үй автоматтандыру жүйесі: 5 қадам (суреттермен)
Арзан, қарапайым, интернетпен басқарылатын үй автоматтандыру жүйесі: Егер сізде үй жануарлары/балалары болса және оларды тамақтандыру немесе интернет арқылы ұру қажет болса, бұл жүйе сізге пайдалы болуы мүмкін. Бұл желіге қосылған кез келген компьютерден үйдегі моторларды, жарық диодтарын және т.б.тексерудің өте қарапайым және арзан әдісі. Ол үшін тек Webc қажет