Мазмуну:

FPV Камерасы бар RasbperryPi Унаасы. Веб -браузер аркылуу башкаруу: 31 кадам (сүрөттөр менен)
FPV Камерасы бар RasbperryPi Унаасы. Веб -браузер аркылуу башкаруу: 31 кадам (сүрөттөр менен)
Anonim
Image
Image

Биз 4WD машинасын курабыз - рулу танкка окшош болот - дөңгөлөктөрдүн бир тарабын буруш үчүн экинчисине караганда башка ылдамдыкта айланат. Машинада камеранын ордун өзгөртө турган атайын кармагычка камера коюлат. Робот веб -браузердин көзөмөлүндө болот (Chrome же Firefox столунда, же Firefox уюлдук телефондо), браузерде, Биз камера видеосун алабыз (200ms кечигүү менен), жана браузерден биз машинанын кыймылын көзөмөлдөй алабыз камера позициясы. Байланышты жеңилдетүү үчүн мен app.remoteme.org системасын колдондум, ошондой эле машинанын бул түрүн көзөмөлдөөчү кутуча иштейт, андыктан сиз өзүңүздүн кодуңузду жазуунун кажети жок, бирок, албетте, скрипттерди өзгөртө аласыз жаңы мүмкүнчүлүктөр ж.

ПКБга электр энергиясын туташтыруудан мурун, бардык байланыштарды эки жолу текшериңиз

1 -кадам: App.remoteme.org жөнүндө кээ бир маалыматтар

Система үч бөлүктөн турат

  • веб -колдонмо - сиз көзөмөлдөөчү веб -баракчаңызды жайгаштырганда жана ал баардык байланышты байланыштырат
  • rasbperryPi программасы - видео жөнөтүүчү программа, сиздин питон скрипттерин башкарат
  • китепканалар, анда сиз классты, функциялардын аныктамаларын таба аласыз

Remoteme.org системасы тез Сиз бардык түзмөктөрүңүздү байланыштырасыз, ал жерде веб -баракчаңызды жайгаштыра аласыз, туташкан түзмөктөрүңүздү көрө аласыз. Remoteme.org системасы сизге долбоорлоруңузду баштоого жардам берүү үчүн жасалды, протоколдук байланыштар жөнүндө эч кандай кабатыр болбоңуз, негизги идея - веб -барактар, RasbeprryPI, arduino жана сценарийлердин арасына экилик билдирүүлөрдү жөнөтүү.

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

Бул үйрөткүчтө мен сизге эч кандай код жазбастан кандай сонун долбоорду кантип жасоону көрсөтөм.

Бул окуу куралынын аягында мен remoteme.org системасын түшүнүүгө жардам бере турган пайдалуу шилтемелерди койдум.

2 -кадам: Эмне керек:

Эмне керек
Эмне керек
Эмне керек
Эмне керек
  • Raspberry PI Zero W
  • Атайын камера
  • Adafruit 16 -канал 12 -бит PWM/Servo Driver - I2C интерфейси - PCA9685 же анын клону
  • Камера кармагычы менен шайкеш келген эки серво механизми
  • Камера кармагыч
  • Батареялар - Окутууда туташуунун эки мүмкүнчүлүгү
  • H көпүрөсү TB6612FNG, дөңгөлөктүн ылдамдыгын көзөмөлдөө үчүн
  • PCB бүркүт файлдары Аны жылуулук берүү ыкмасы кылуу оңой DC-DC
  • Down Down Converter Module DC
  • Робот корпусу

3 -кадам: Байланыштар

Байланыштар
Байланыштар

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

4 -кадам: PCB

ПХБ
ПХБ
ПХБ
ПХБ

Бул жерден PCB бүркүт файлдарын жүктөп алсаңыз болот, жолдор майлуу, ошондуктан аны жылуулук берүү ыкмасы менен жасоо оңой

5 -кадам: ПХБ чыгышы

PCB Чыгуусу
PCB Чыгуусу
PCB Чыгуусу
PCB Чыгуусу
  1. Кыймылдаткыч моторлору үчүн PWM киргизүү PWM модулунун 15'чи жана 16 -казыктарына туташтырылышы керек (PWM модулунун сүрөтүндөгү жашыл төрт бурчтукту текшериңиз)
  2. Кыймылдаткыч кыймылдаткычтары үчүн кубаттуулукту киргизүү (моторлоруңуз кандай максималдуу чыңалуу менен иштээрин текшериңиз)
  3. RasbperryPi жана PWM модулунун кубаты - так болушу керек
  4. Кыймылдаткычтын чыгышы (эки мотор бар, анткени биз моторлорду жупташтырабыз)
  5. Серво механизмдеринин күчү - ошондой эле алар үчүн кандай чыңалуу жакшы экенин текшерүү керек
  6. 5 -кирүүдөн учурдагы кубаты кыймылдаткычтарды иштетет, андыктан 2 -киргизүүгө эч нерсе туташтыруунун кажети жок
  7. Эгерде Jumbper бар болсо, RasbperryPi 3 -киргизүүдөн кубат алат - секиргичти бул жерге коюудан мурун, туташуулардын туура экенин текшериңиз - Сиз RPiңизди күйгүңүз келбейт
  8. Бул жерде кабелдерди ширетүүгө уруксат бериңиз, анткени бизге логикалык өзгөрткүчтөрдүн кереги жок

6 -кадам: Бул кантип иштейт

RasbperryPiде эки китепкананы колдонгон python скрипти бар

  • GPIO катары 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 -кадам: Power (AA Заряддоо Батарейкалар) Option 1/2

Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2
Power (AA Заряддоо Батарейкалар) Option 1/2

Мен кубаттуулуктун эки мүмкүнчүлүгүн жазам Автомобилдин биринчиси 10xAA заряддоо батареяларынан. Акыркы сүрөттө мен кызыл түстөгү секиргичтерди тарттым.

9-кадам: Power (Li-Po 7.2V батареялары) Option 2/2

Power (Li-Po 7.2V Батарейкалар) Option 2/2
Power (Li-Po 7.2V Батарейкалар) Option 2/2
Power (Li-Po 7.2V Батарейкалар) Option 2/2
Power (Li-Po 7.2V Батарейкалар) Option 2/2

Ал эми экинчи вариант-7.2 LI-PO батареясы. Бул учурда биз 3 чыңалууга ээ болдук - 5v Rpi жана модул үчүн, 6V серво үчүн жана түздөн -түз батареялардан 7.2 вольт. Мен эки баскычка түшүүчү модулдарды колдонууга туура келди

LI-PO менен 2-вариант жакшыраак:

  • Батарейкалардын кубаттуулугу чоңураак - машина узагыраак айдайт
  • Кыймылдаткычтар үчүн чоңураак чыңалуу - унаа ылдамыраак айдайт
  • Кыймылдын ыктымалдуулугу, кыймылдаткычтарды таба баштагандан кийин, бизде чоң чыңалуу түшүп, RPI кайра башталат.

10 -кадам: ширетүү

Soldering
Soldering
Soldering
Soldering
Soldering
Soldering
Soldering
Soldering

Мен PCBге PWM модулу үчүн бир нече аралыкты койгом. Жаза турган эч нерсе жок, баарын кантип бириктирүү керек, сүрөттөрдү карап көрүңүз

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

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

Биз камераны туташтырабыз, бул жерде камера кармагычка орнотулардын алдында серво механизмдерин кантип борборлоштуруу керектиги жазылган, бирок эң кыска жол - бул максималдуу айлануу абалын акырын кол менен текшерүү жана борбордук позицияга серволорду коюу. Бул борборлоштурулган servo механизмдерин биз камеранын кармагычына борбордук абалда коёбуз (камера сүрөттөгүдөй түз алдыга багытталган)

12 -кадам: Машиналардын тетиктерин бириктирүү

Унаалардын тетиктерин бириктирүү
Унаалардын тетиктерин бириктирүү
Унаалардын тетиктерин бириктирүү
Унаалардын тетиктерин бириктирүү
Машиналардын тетиктерин бириктирүү
Машиналардын тетиктерин бириктирүү

ПХБ үчүн мен кичинекей плексиглас стол жасадым

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

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

Мен бекер app.remoteme.org тутумун колдондум, ал сизге байланыштарды түзүүгө жардам берет жана бизде буга чейин керек болгон скрипттер бар

Бул көрсөтмөдө мен машина айдаш үчүн эмне кылуу керек экенин этап -этабы менен көрсөтөм (бул жерде сиз кененирээк маалымат таба аласыз)

  • Https://app.remoteme.org дарегине катталгандан кийин ырдаңыз. Сиз автоматтык түрдө киресиз
  • сол жактагы Токен өтмөгүн ачыңыз, андан кийин "жаңы токенди" чыкылдатып, кандайдыр бир ысымды бериңиз жана ОК басыңыз, биз жаңы токенди түздүк (экранда сүрөт)
  • бул мисалда, токендин мааниси: ~ 1_ & p@+BNnZ@A+x8 (сиздики башкача болот;))

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

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

шпаклевка консолунда (бул жерде камеранын I2c байланышын иштетүү үчүн биздин RPiди кантип орнотуу керек)

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

cd Remoteme

python3.5 install.py

  • Орнотуучу бизге [Y] жоопторубуз үчүн бир нече суроолорду берет жана [enter] менен ырастайт
  • орнотуу токенди сураганда, биз колдонмодон көчүрүлгөн токту (shift+insert) коёбуз жана Enter
  • мисалы, Rpi аты
  • deviceId 1 Enter
  • орнотулгандан кийин - программаны иштетүү

./runme.sh

15 -кадам: Байланыштарды текшерүү

Байланыштарды текшерүү
Байланыштарды текшерүү

Https://app.remoteme.org кайтып келели

Түзмөктөр өтмөгүндө биз туташкан RPi көрөбүз (жашыл шилтеме сөлөкөтү RPi азыр туташкан дегенди билдирет)

16 -кадам: Python скриптин кошуу

Python Script кошуу
Python Script кошуу
Python Script кошуу
Python Script кошуу

Эми биз python скриптин кошобуз, ал шаблондордо, андыктан эч нерсени программалоонун кереги жок.

Түзмөктөр өтмөгүндө RasbperryPi менюсун ачыңыз жана "Тышкы скриптти кошууну" тандаңыз.

Жаңы терезе пайда болгондо, жогорудагы сүрөттөгүдөй маалымат бериңиз

"Car4wd" шаблонун тандоону унутпаңыз. Бул кадамдардан кийин, remoteme.org биздин RasbperryPiге python скриптин кошуп, кайра баштайт

17 -кадам: Python скриптинин ийгиликтүү кошулганын текшерүү

Python скрипти ийгиликтүү кошулганын текшерүү
Python скрипти ийгиликтүү кошулганын текшерүү

Түзмөктөр өтмөгүндө жаңы python скрипт түзмөгү кошулушу керек жана анын deviceId 2 болот. Бул түзмөккө Id веб -баракчасы машинаны башкаруу үчүн билдирүүлөрдү жөнөтөт

18 -кадам: Унааны башкаруу үчүн веб -баракчаны кошуу

Унааны башкарууга кошуу
Унааны башкарууга кошуу

түзмөктөр өтмөгүндө "Жаңы", анан "Веб -баракчаны" чыкылдатыңыз. Биз жөн гана башка түзмөктү кошобуз - webPage биз аны машинабызды башкаруу үчүн колдонобуз. Жана биз "car4wdDesktop" шаблонун веб -баракчада колдонгондуктан, файлдар дээрлик колдонууга даяр

19 -кадам: WebPage түзмөгүн Унааны башкаруу үчүн конфигурациялоо 1/2

Унаа башкаруу үчүн WebPage түзмөгүн конфигурациялоо 1/2
Унаа башкаруу үчүн WebPage түзмөгүн конфигурациялоо 1/2

Веб -баракчаны түзмөк өтмөгүндө жайып, index.html, анан Ачуу дегенди басыңыз

20 -кадам: WebPage Түзмөгүн Унааны 2/2 Контролдоо

WebPage Түзмөгүн Унааны 2/2 Контролдоо
WebPage Түзмөгүн Унааны 2/2 Контролдоо

Терезе пайда болот, анда биз биздин case deviceId биздин питон скриптинин deviceId камсыз кылышыбыз керек 2. Сүрөттө көрсөтүлгөн жерди өзгөртөлү

21 -кадам: Ачык Унаа башкаруу борбору

Унааларды башкаруу борборун ачуу
Унааларды башкаруу борборун ачуу
Унааларды башкаруу борборун ачуу
Унааларды башкаруу борборун ачуу

Эми биздин баракчаны ачуу жана анын кандай иштеп жатканын көрүү убактысы келди. Түзмөк өтмөгүндө index.html баскычын чыкылдатып, анан "Жаңы өтмөктө ачуу" чыкылдатуу Видеону алдын ала көрүү үчүн Chrome же 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 -кадам: Бул кантип иштейт

Веб баракча 9-байттык билдирүүлөрдү python скриптине форматта жөнөтүп жатат:

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

билдирүү жөнөтүү script.js файлында "sendNow ()" функциясында жүргүзүлөт

at RasbperryPi python.py бул билдирүүнү "onUserMessage" функциясында алып жатат

Сиз муну текшерип, бир аз ойной аласыз, андыктан эмне болуп жатканын билесиз.

класс функцияларынын сүрөттөмөсү бул жерде

27 -кадам: Планшет, Мобилдик Руль

Планшет, Мобилдик руль
Планшет, Мобилдик руль

Биз жаңы веб -баракчаны мурдагыдай кылып кошобуз, бирок азыр "car4wdMobile" шаблонун тандап жатабыз

Андан кийин, биз скрипт.jsтеги бардыгын конфигурациялайбыз, анткени биз веб -баракчаны рабочий контролдоо үчүн билдирүүнүн форматы бирдей, андыктан python.py скриптин өзгөртүүгө туура келбейт.

28 -кадам: Уюлдук телефондо баракты ачуу

Мобилдик телефондо баракты ачуу
Мобилдик телефондо баракты ачуу
Мобилдик телефондо баракты ачуу
Мобилдик телефондо баракты ачуу

Мобилдик телефондон каттоо эсебиңизге кирүүнүн ордуна, жөн гана QR anymous url сканерлеңиз.

QR чоо -жайы бул жерде

Эгерде сиздин мобилдик башкаруу RPi менен мобилдик бир Wi -Fiда иштегенде иштейт, бирок эгер сиз мобилдик интернетти колдонбосоңуз, анда бурулуш серверин кошушуңуз керек, мен муну бул жерде жаздым

29 -кадам: Turn Server кошуу

Turn Server кошуу
Turn Server кошуу
Turn Server кошуу
Turn Server кошуу
Turn Server кошуу
Turn Server кошуу

Кээде (NAT же кээ бир брандмауэр жөндөөлөрүнүн артында турганда) Сиз роботту башка тармактан туташтыра албайсыз, анда сиздин робот туташкан. Бул чоң маселе эмес, анан сиз кезек серверин кошушуңуз керек.

Мен XIRSYS компаниясынын серверин сынап көрдүм (аны иштеп чыгуучулар бекер колдонушат) жана мен XIRSYS тутуму аркылуу бурулуш серверин кантип конфигурациялоону көрсөтөм.

каттоо:

global.xirsys.net/dashboard/signup

анан тиркемени кошуу үчүн "плюс" дегенди басыңыз

оң жагында "статикалык бурулуш кредиттик маалыматтары" астында Сизге керектүү бардык маалыматтар бар. Аны webrtc_streamer.conf файлына көчүрүү үчүн https://app.remoteme.org/en/#/app/devices дарегине өтүңүз.

RaspberryPi дивичтерин кеңейтүү

webrtc_streamer.conf файлын чыкылдатыңыз

ачуу бас

жана маалыматты кошуу

turn_server = turn_username =

turn_credential =

Түзөтүүнү аяктагандан кийин, сизде экранда бир нерсе болушу керек.

андан кийин RasbperryPi түзмөгүндөгү менюну чыкылдатып, "Rpi" дегенди басыңыз жана кайра баштаңыз

RPi программасы кайра башталгандан кийин, сиз мобилдик телефонуңузда видеону алдын ала көрө аласыз, эгер сиз мобилдик интернетти колдонуп жатсаңыз дагы.

30 -кадам: Мобилдик руль

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

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

31 -кадам: Жыйынтык

Бул окуу куралы сизге жакты деп үмүттөнөм, мен буга чейин бул үйрөтмөдө анын капот астында кантип иштээри жөнүндө кененирээк жазгам.

кээ бир шилтемелер:

remoteme.org - remoteme.org сайтынын башкы баракчасы Сиз анда документтерди жана окуу куралдарын таба аласыз

FB fanpage - Facebook fanpage remoteme.org жөнүндө жаңы маалыматтар

Youtube - долбоордун кээ бир видеолору, окуу куралдары

Ура, Maciek

Сунушталууда: