Мазмұны:

FPV камерасы бар RasbperryPi автокөлігі. Веб -шолғыш арқылы басқару: 31 қадам (суреттермен)
FPV камерасы бар RasbperryPi автокөлігі. Веб -шолғыш арқылы басқару: 31 қадам (суреттермен)

Бейне: FPV камерасы бар RasbperryPi автокөлігі. Веб -шолғыш арқылы басқару: 31 қадам (суреттермен)

Бейне: FPV камерасы бар RasbperryPi автокөлігі. Веб -шолғыш арқылы басқару: 31 қадам (суреттермен)
Бейне: ESP32-CAM - Guide to making YOUR first DIY Security Camera 2024, Шілде
Anonim
Image
Image

Біз 4WD автокөлігін құрастырамыз - руль цистернаға ұқсас болады - дөңгелектердің бір жағын бұру үшін екіншісінен басқа жылдамдықпен айналады. Автокөлікте камераның орнын өзгертуге болатын арнайы ұстағышқа камера орнатылады. Роботты веб -браузер басқарады (Chrome немесе Firefox жұмыс үстелінде немесе Firefox ұялы телефонда), браузерде біз камералық бейнені аламыз (200мм кідіріспен), ал браузерден біз машинаның қозғалысын басқара аламыз. камераның орналасуы. Байланысты жеңілдету үшін мен app.remoteme.org жүйесін қолдандым, сонымен қатар автокөліктің осы түрін басқаруға болады, сондықтан сіз өзіңіздің жеке кодыңызды жазудың қажеті жоқ, бірақ, әрине, сіз сценарийлерді өзгерте аласыз. жаңа мүмкіндіктер және т.

ПХД -ге қуат қоспас бұрын барлық қосылымдарды екі рет тексеріңіз

1 -қадам: App.remoteme.org туралы кейбір ақпарат

Жүйе үш бөліктен тұрады

  • веб -қосымша - сіз басқару веб -беттерін орналастырған кезде және ол барлық байланысты байланыстырады
  • rasbperryPi бағдарламасы - бейне жіберетін, сіздің питон сценарийлеріңізді басқаратын бағдарлама
  • кітапханалар, онда сіз сынып, функциялар анықтамасын табасыз

Remoteme.org - бұл жүйенің жылдамдығы, сіз барлық құрылғыларды байланыстырасыз, онда сіз өзіңіздің веб -беттеріңізді орналастыра аласыз, қосылған құрылғыларды көре аласыз. Remoteme.org жүйесі сізге өз жобаларыңызды құруға көмектеседі, протоколдық байланыстарға алаңдамайсыз, негізгі идея - веб -беттер, RasbeprryPI, arduino және сценарийлер арқылы әр түрлі құрылғыларға екілік хабарлар жіберу.

Екінші жағынан, Remoteme.org сізге файлдарыңызды толық басқаруға мүмкіндік береді, оны өзіңіздің функционалдығыңызға қарай өзгертуге болады.

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

Бұл оқулықтың соңында мен remoteme.org жүйесін түсінуге көмектесетін пайдалы сілтемелер қойдым.

2 -қадам: не қажет:

Не қажет
Не қажет
Не қажет
Не қажет
  • Таңқурай PI Zero W
  • Арнайы камера
  • Adafruit 16 -арналы 12 -разрядты PWM/Servo драйвері - I2C интерфейсі - PCA9685 немесе оның клоны
  • Камера ұстағышымен үйлесетін екі серво механизмі
  • Камера ұстағыш
  • Батареялар - оқулықта қосудың екі мүмкіндігі
  • TB6612FNG көпірі, доңғалақты жылдамдықты басқаруға арналған
  • PCB бүркіт файлдары DC-DC термиялық тасымалдау әдісін жасау оңай
  • Төменгі деңгейдегі конвертер модулі
  • Робот корпусы

3 -қадам: Қосылымдар

Қосылымдар
Қосылымдар

Raspberry pi басқару серво механизмі PWM модулі арқылы және қозғалтқыш жылдамдығы H көпірімен RasbperryPi түйреуіштеріне қосылады, H көпіріне PWM кірісі мен сервистер үшін пайдаланатын модуль арқылы шығарылады (мен жоғарыда аталған бөліктерге логикалық түрлендіргіштер қажет емес)

4 -қадам: ПХД

ПХД
ПХД
ПХД
ПХД

Сіз PCB бүркіт файлдарын осы жерден жүктей аласыз. Жолдар майлы, сондықтан оны жылу беру әдісімен жасау оңай

5 -қадам: ПХД шығысы

ПХД шығысы
ПХД шығысы
ПХД шығысы
ПХД шығысы
  1. Жетек қозғалтқыштарына арналған PWM кірісі PWM модулінің 15 -ші және 16 -шы түйреуіштеріне қосылуы керек (PWM модулінің суретінен жасыл төртбұрышты тексеріңіз)
  2. Қозғалтқыш қозғалтқыштары үшін қуат кірісі (қозғалтқыштар қандай максималды кернеумен жұмыс істей алатынын тексеріңіз)
  3. RasbperryPi мен PWM модулінің қуаты дәл болуы керек
  4. Қозғалтқыштың шығысы (екі шығыс бар, себебі біз қозғалтқыштарды қосамыз)
  5. Серво механизмдерінің қуаты - сонымен қатар олар үшін қандай кернеу жақсы екенін тексеру керек
  6. 5 -ші кірістен секіргіштің қазіргі қуаты сонымен қатар қозғалтқыштарды басқарады, сондықтан 2 кірісіне ештеңе қосудың қажеті жоқ
  7. Егер секіргіш бар болса, RasbperryPi 3 -ші кірістен қуат алады - секіргішті осында орнатпас бұрын, қосылулардың дұрыс екенін тексеріңіз - RPi -ді жазғыңыз келмейді
  8. Кабельдерді осында дәнекерлеуге рұқсат етіңіз, өйткені бізге логикалық түрлендіргіш қажет емес

6 -қадам: қалай жұмыс істейді

RasbperryPi -де екі кітапхананы қолданатын python сценарийі бар

  • GPP ретінде RPi. GPIO импорттау-H көпіріне қосылған 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 түйреуіштері үшін (BCM белгісі)
  • PWM модулі үшін Adafruit_PCA9685 импорттау

Rpi түйреуіштері 25-AIN1, 8-AIN2, 24-BIN1, 23-BIN2 (BCM) және H көпірінің басқару режимі бойынша (алға, артқа, аялдама, қысқа үзіліс) келесі түрде қосылады. H көпіріне екі PWM сигналы қажет, сондықтан біз жылдамдықты немесе қозғалтқыштың айналуын басқара аламыз. Жобада бізде PWM контроллері бар (серво үшін қолданылады), біз оны H көпірі үшін PWM генерациялау үшін де қолданамыз.

PWM модулі I2C байланыс хаттамасын қолданады. Мен Adafruit_PCA9685 қорапшасында жұмыс істедім. кітапхана

7 -қадам: автомобиль құрастыру - дөңгелектер

Автокөлік құрастыру - дөңгелектер
Автокөлік құрастыру - дөңгелектер
Автокөлік құрастыру - дөңгелектер
Автокөлік құрастыру - дөңгелектер

Біз жетекші қозғалтқыштарды автомобиль корпусына қосудан бастаймыз. Сол/бүйірлік қозғалтқыштар бір -біріне қосылады, ал екеуі де кейінірек ПХД -ге қосылатын кейбір қуат кабеліне қосылады. Қозғалтқыш дөңгелектерін әр жағынан қосқанда маңызды бағыт бір бағытта айналуы керек.

8 -қадам: Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа

Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа
Қуат (AA қайта зарядталатын батареялар) 1/2 нұсқа

Мен қуаттың екі мүмкіндігін жазамын Автокөліктің біріншісі - 10хАА зарядталатын батареядан. Ақырында мен қызыл түстермен салынған секіргіштерді салдым.

9-қадам: Қуат (Li-Po 7.2V батареялары) 2/2 нұсқа

Қуат (Li-Po 7.2V батареялары) 2/2 нұсқа
Қуат (Li-Po 7.2V батареялары) 2/2 нұсқа
Қуат (Li-Po 7.2V батареялары) 2/2 нұсқа
Қуат (Li-Po 7.2V батареялары) 2/2 нұсқа

Ал екінші нұсқа-7.2 LI-PO батареясы. Бұл жағдайда бізде 3 кернеу бар - Rpi мен модуль үшін 5в, серво үшін 6В және тікелей қозғалтқыштар үшін 7,2 вольтты батареялардан. Мен төмен түсетін екі модульді қолдануға тура келді

LI-PO бар 2-нұсқа жақсы:

  • Батареялардың сыйымдылығы үлкен - көлік ұзақ жүреді
  • Жетек қозғалтқыштары үшін үлкен кернеу - автокөлік жылдамырақ жүреді
  • Қозғалтқыш қозғалтқышты таба бастағаннан кейін бізде кернеудің төмендеуі мен RPI қайта іске қосылу ықтималдығы аз.

10 -қадам: дәнекерлеу

Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу
Дәнекерлеу

Мен ПХД -ге PWM модуліне арналған бірнеше аралықтарды қойдым. Жазуға ештеңе жоқ, барлығын қалай дәнекерлеу керектігін суреттерді қарап шығыңыз

11 -қадам: камера

Камера
Камера

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

12 -қадам: Автокөліктердің бөлшектерін біріктіру

Автокөліктердің бөлшектерін біріктіру
Автокөліктердің бөлшектерін біріктіру
Автокөліктердің бөлшектерін біріктіру
Автокөліктердің бөлшектерін біріктіру
Автокөліктердің бөлшектерін біріктіру
Автокөліктердің бөлшектерін біріктіру

ПХД үшін мен шағын плексиглас үстел жасадым

13 -қадам: App.remoteme.org конфигурациясы

App.remoteme.org конфигурациясы
App.remoteme.org конфигурациясы

Мен ақысыз app.remoteme.org жүйесін қолдандым, ол сізге байланыс орнатуға көмектеседі және оның бізге қажет сценарийлері бар

Бұл нұсқаулықта мен автокөлікті жүргізу үшін не істеу керектігін біртіндеп көрсетемін (мұнда сіз толығырақ біле аласыз)

  • Https://app.remoteme.org сайтында ән жазыңыз, тіркелгеннен кейін сіз автоматты түрде кіресіз
  • сол жақта Token қойындысын ашыңыз, содан кейін «жаңа белгі» түймесін басып, OK түймесін басыңыз, біз жаңа белгі жасадық (экрандағы сурет)
  • бұл мысалда таңбалауыш мәні: ~ 1_ & p@+BNnZ@A+x8 (сіздікі басқаша болады;))

14 -қадам: RasbperryPi конфигурациясы

RasbperryPi конфигурациясы
RasbperryPi конфигурациясы

шпакль консолінде (мұнда біздің камераның I2c байланысын қосатын RPi -ді қалай орнату керек)

git clone git: //github.com/remoteme/remoteme.git

cd Remememe

python3.5 install.py

  • Орнатушы бізге [Y] жауаптар үшін бірнеше сұрақтар қояды және [enter] арқылы растайды.
  • орнату кезінде таңбалауыш сұралса, біз қосымшадан көшіріп, енгіземіз (shift+кірістіру)
  • атау, мысалы Rpi
  • deviceId 1 Enter
  • орнатқаннан кейін - бағдарламаны іске қосыңыз

./runme.sh

15 -қадам: Қосылымдарды тексеру

Қосылымдарды тексеру
Қосылымдарды тексеру

Https://app.remoteme.org дегенге қайта оралайық

Құрылғылар қойындысында біз қосылған RPi көреміз (жасыл сілтеме белгісі RPi дәл қазір қосылғанын білдіреді)

16 -қадам: Python сценарийін қосу

Python сценарийін қосу
Python сценарийін қосу
Python сценарийін қосу
Python сценарийін қосу

Енді біз шаблондарда python сценарийін қосамыз, сондықтан бізге ештеңені бағдарламалаудың қажеті жоқ.

Құрылғылар қойындысында RasbperryPi мәзірін ашып, «Сыртқы сценарий қосу» таңдаңыз.

Жаңа терезе пайда болған кезде жоғарыдағы суреттегідей ақпарат беріңіз

«Car4wd» үлгісін таңдауды ұмытпаңыз. Осы қадамдардан кейін remoteme.org біздің RasbperryPi -ге python сценарийін қосады және оны қайта бастайды

17 -қадам: Python сценарийінің сәтті қосылғанын тексеру

Python сценарийінің сәтті қосылғанын тексеру
Python сценарийінің сәтті қосылғанын тексеру

Құрылғылар қойындысында жаңа python сценарийі қосылған құрылғы қосылуы керек, оның құрылғысының идентификаторы - 2. Бұл құрылғыға Id веб -беті көлікті басқаруға хабарлар жібереді.

18 -қадам: Веб -бетті басқару машинасына қосу

Басқару көлігіне веб -бет қосу
Басқару көлігіне веб -бет қосу

құрылғылар қойындысында «Жаңа», содан кейін «Веб -бет» түймесін басыңыз. Біз басқа құрылғыны қосамыз - webPage біз оны көлігімізді басқару үшін қолданамыз. Біз веб -бетте «car4wdDesktop» шаблонын қолданғандықтан, қазірдің өзінде пайдалануға дайын файлдар бар

19 -қадам: WebPage құрылғысын көлікті басқару үшін конфигурациялау 1/2

Автомобильді басқару үшін Web -бет құрылғысын теңшеу 1/2
Автомобильді басқару үшін Web -бет құрылғысын теңшеу 1/2

Құрылғы қойындысында веб -бетті кеңейтіп, index.html түймесін, содан кейін Ашу түймешігін басыңыз

20 -қадам: WebPage құрылғысын көлікті басқару үшін конфигурациялау 2/2

Көлікті басқару үшін WebPage құрылғысын теңшеу 2/2
Көлікті басқару үшін WebPage құрылғысын теңшеу 2/2

Терезе пайда болады, содан кейін біздің deviceId 2 жағдайында біздің питон сценарийінің deviceId қамтамасыз ету қажет: суретте көрсетілген орынды өзгертейік.

21 -қадам: Автокөлікті басқару орталығын ашыңыз

Көлікті басқару орталығын ашыңыз
Көлікті басқару орталығын ашыңыз
Көлікті басқару орталығын ашыңыз
Көлікті басқару орталығын ашыңыз

Енді біздің парақшаны ашып, оның қалай жұмыс істейтінін көру уақыты келді. Құрылғы қойындысында index.html түймесін басыңыз, содан кейін «Жаңа қойындыда ашу» Бейнені алдын ала қарау үшін хромды немесе Firefox браузерін пайдалану керек, браузер webRTC -ті толық қолдамайды.

22 -қадам: Камера конфигурациясы 1/2

Камера конфигурациясы 1/2
Камера конфигурациясы 1/2

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

23 -қадам: Камера конфигурациясы 2/2

Камера конфигурациясы 2/2
Камера конфигурациясы 2/2

Script.js файлын ашыңыз (құрылғылар қойындысы веб -бетті кеңейтеді, содан кейін script.js басыңыз, содан кейін ашыңыз) және экранда мен көрсеткен орынды табыңыз.

менің жағдайда орталық позиция - 560 және 430, ал қозғалыстар диапазоны екі ось үшін 200

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

24 -қадам: 1/2 жүргізу

Көлік жүргізу 1/2
Көлік жүргізу 1/2

Егер сіз пернетақтадағы жоғары көрсеткіні бассаңыз, өлшегіштер орнын өзгертуі керек, ал көлік жүруі керек. Егер сіз «жоғары» көрсеткісін бассаңыз және машина бұрылса, онда экрандағы орындарға минус қосу/жою қажет.

Осы операциядан кейін «жоғары» көрсеткі көрсеткеннен кейін вагон алға және төменге қарай жүруі керек, артқа қарай жүруі керек.

25 -қадам: Көлік жүргізу 2/2

Көлік жүргізу 2/2
Көлік жүргізу 2/2

Енді бұрылуда - егер машина оңға бұрылса, сол жақ көрсеткіні басыңыз. Кабельдерді аудару керек (жоғарыдағы суретті қараңыз)

Егер сіз осы кабельдерді дәнекерлесеңіз, оны script.js бойынша өзгертуге болады, тек қозғалтқыштардың жылдамдығын жіберу тәртібін өзгертіңіз, бұрын:

pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ()))); pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));

pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ())));

pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));

кейін:

pos = putByte (ret, pos, carController.getMotorMode (-carController.getLeftSideSpeed ())));

pos = putByte (ret, pos, Math.abs (carController.getLeftSideSpeed ()*255));

pos = putByte (ret, pos, carController.getMotorMode (carController.getRightSideSpeed ())));

pos = putByte (ret, pos, Math.abs (carController.getRightSideSpeed ()*255));

Ал енді сіз дұрыс жұмыс істеу үшін бір минуттай минустармен ойнауға тиіссіз;). Сіз көрсеткендей, автокөлік жылдамдықпен қозғалмайды, ол жылдамырақ қозғалуы үшін жоғары жылдамдықта жүрмейді, ол жоғары тұрған кезде көрсеткіні жоғары босатыңыз. және оны қайтадан басып тұрыңыз

26 -қадам: Бұл қалай жұмыс істейді

Веб-бет python сценарийіне 9-байтты хабарлама хабарламаларын келесі форматта жібереді:

  • 1 байт бір байт бүтін сан 1
  • 2 байт бүтін X камерасының орны
  • 2 байт бүтін Y камерасының орны
  • 1 байт бүтін сан мотор режимі (3 = артқа, 1 = алға, 2 = тоқтау)
  • 1 байт бүтін сандар қозғалтқыш жылдамдығы
  • 1 байт бүтін санның оң мотор режимі (3 = артқа, 1 = алға, 2 = тоқтау)
  • 1 байт бүтін санның оң қозғалтқыш жылдамдығы

хабарлама жіберу script.js файлында «sendNow ()» функциясында орындалады.

RasbperryPi python.py бұл хабарды «onUserMessage» функциясында алады.

Сіз оны тексеріп, аздап ойнай аласыз, осылайша не болып жатқанын білесіз.

мұнда сынып функцияларының сипаттамасы

27 -қадам: планшет, мобильді руль

Планшет, мобильді руль
Планшет, мобильді руль

Біз жаңа веб -бетті бұрынғыдай қосамыз, бірақ қазір біз «car4wdMobile» үлгісін таңдаймыз.

Әрі қарай, біз скрипт.js -те жұмыс үстелін басқаратын веб -беттегідей конфигурациялаймыз Хабарламаның форматы дәл солай, сондықтан python.py сценарийін өзгертудің қажеті жоқ.

28 -қадам: ұялы телефонда бетті ашыңыз

Ұялы телефонда бетті ашыңыз
Ұялы телефонда бетті ашыңыз
Ұялы телефонда бетті ашыңыз
Ұялы телефонда бетті ашыңыз

Ұялы телефоннан тіркелгіңізге кірудің орнына QR кез келген URL мекенжайын сканерлеңіз.

QR туралы мәліметтер мұнда

Егер сіздің мобильді басқаруыңыз RPi мен мобильділік бір Wi -Fi желісінде жұмыс істесе, бірақ жұмыс істемейді, егер сіз мобильді интернетті қолдансаңыз, онда сізге бұрылыс серверін қосу керек, мен мұны осында жаздым.

29 -қадам: Turn Server қосу

Айналым серверін қосу
Айналым серверін қосу
Айналым серверін қосу
Айналым серверін қосу
Айналым серверін қосу
Айналым серверін қосу

Кейде (сіз NAT немесе кейбір брандмауэр параметрлерінің артында болсаңыз) сіз роботыңызды басқа желіден байланыстыра алмайсыз, содан кейін сіздің роботыңыз қосылады. Бұл үлкен мәселе емес, содан кейін сіз бұрылу серверін қосуыңыз керек.

Мен XIRSYS компаниясының серверін сынап көрдім (оны әзірлеушілер қолдана алады), мен XIRSYS жүйесін қолдана отырып, бұрылу серверін қалай баптау керектігін көрсетемін.

тіркеу:

global.xirsys.net/dashboard/signup

содан кейін қосымшаны қосу үшін «плюс» түймесін басыңыз

оң жақта «статикалық бұрылу несие деректері» астында сізде барлық деректер бар. Оны webrtc_streamer.conf файлына көшіру үшін https://app.remoteme.org/kz/#/app/devices сайтына өтіңіз.

RaspberryPi бағдарламасын кеңейтіңіз

webrtc_streamer.conf файлын басыңыз

ашу түймесін басыңыз

және ақпаратты қосыңыз

turn_server = turn_username =

turn_credential =

өңдеуді аяқтағаннан кейін сізде экранда осындай нәрсе болуы керек.

содан кейін RasbperryPi құрылғысындағы мәзірді басу арқылы Сақтау және You Rpi қайта іске қосу түймешігін басыңыз және қайта жүктеуді таңдаңыз

RPi бағдарламасы қайта іске қосылғаннан кейін сіз ұялы телефоннан бейнені алдын ала қарауды көре аласыз, тіпті егер сіз мобильді интернетті пайдалансаңыз да.

30 -қадам: мобильді басқару

Мобильді руль
Мобильді руль

1 шеңберде біз сол жақ саусақты, 2 оң жақта - дәл осы нүктеде болмауымыз керек - веб -бет сенсорлық экраннан кейін нөлдік позицияны орнатады, ал саусақтарыңызды жылжыту арқылы (сол жақта жүргізу, камераның оң жақ позициясы) Сіз басқара аласыз. сіздің көлігіңіз

31 -қадам: Қорытынды

Сізге бұл оқу құралы ұнады деп үміттенемін, бұрын мен бұл оқулықта оның сорғыш астында қалай жұмыс істейтіні туралы толығырақ жаздым.

кейбір сілтемелер:

remoteme.org - remoteme.org сайтында сіз құжаттар мен оқулықтарды таба аласыз

FB фан -парағы - Facebook fanpage remoteme.org туралы жаңа ақпарат

Youtube - жобаның кейбір бейнелері, оқулықтар

Қуаныш, Maciek

Ұсынылған: