Побудова GPS-трекера на Raspberry Pi
User Rating: / 4
PoorBest 
There are no translations available.

GPS-Raspberry-PiРозглянемо, як побудувати простий GPS-трекер з використанням мови Wolfram на Raspberry Pi.
Щоб відтворити цей експеримент нам знадобиться наступне обладнання (на додаток до самого Raspberry Pi):
  • GPS-модуль (Ultimate GPS Breakout)
  • послідовний кабель USB до TTL (на рис. нижче)
  • макетна плата половинного розміру
  • дротяні перемички штир/штир
GPS-Raspberry-Pi-1
Вставте модуль GPS в макет, як показано нижче, і підключіть червоний провід до VIN, чорний до GND (землі), зелений до RX, білий до TX, використовуючи перемички і послідовний кабель USB до TTL.
GPS-Raspberry-Pi-2
Підключіть кінець USB кабелю до Raspberry Pi (вимкненого). Подайте живлення на Raspberry Pi.
GPS-Raspberry-Pi-3
Модуль GPS починає передавати дані відразу після включення живлення і буде продовжувати це робити, поки не буде відключений від джерела живлення.
Запустіть у терміналі мову Wolfram за допомогою наступної команди:
> wolfram

Wolfram Language (Raspberry Pi Pilot Release)
Copyright 1988-2013 Wolfram Research
Information & help: wolfram.com/raspi

In[1]:=
Тепер Ви можете відкрити послідовний порт, використовуючи DeviceOpen та ввівши:
serial = DeviceOpen["Serial",{"/dev/ttyUSB0","BaudRate"->9600}]
Це повертає DeviceObject, який може бути використаний для читання даних GPS. У нашому випадку використовуємо DeviceReadBuffer, щоб прочитати всі наявні дані GPS, які були створені до цього моменту:
data = DeviceReadBuffer[serial,"String"]
Дані, що повертаються,мають розділений комами формат, так звані пропозиції GPS NMEA:
     $GPRMC,154541.000,A,4005.8369,N,08814.7322,W,0.04,253.32,201113,,,A*79
     $GPVTG,253.32,T,,M,0.04,N,0.07,K,A*3B
     $GPGGA,154542.000,4005.8369,N,08814.7322,W,1,8,1.07,228.0,M,-33.9,M,,*6B
     $GPGSA,A,3,04,12,10,17,23,24,25,02,,,,,1.31,1.07,0.76*04
     $GPGSV,3,1,12,04,65,040,24,02,63,265,16,10,55,135,39,12,48,302,21*7D
     $GPGSV,3,2,12,17,35,096,33,05,19,190,17,25,13,321,33,24,12,247,16*71
     $GPGSV,3,3,12,23,05,061,31,13,02,090,27,20,02,036,35,45,,,*45
     $GPRMC,154542.000,A,4005.8369,N,08814.7322,W,0.06,253.32,201113,,,A*78
Ми можемо імпортувати дані з мовою Wolfram за допомогою ImportString:
csv = ImportString[ data, "CSV" ]
У пропозиціях NMEA, які містять координати GPS, вони починаються з $GPRMC, тому для цього ми їх фільтруємо, використовуючи Cases і зіставлення зі зразком:
gps = Cases[ csv, {"$GPRMC", ___} ]
Координати (широта і довгота) знаходяться в 4-й і 6-й позиціях кожного списку, наприклад, GPS-координати для першої точки даних:
Part[ gps, 1, {4,6} ] / 100
що повертає розташування GPS для Champaign, штат Іллінойс, де знаходиться Wolfram Research на 40' північної широти і 88' західної довготи:
{40.0583, 88.1474}
Як бачимо, завдяки використанню мови Wolfram, задача знову вирішується досить просто.
(Джерело EN: community.wolfram.com)
 
>
BookNewsPractice SearchPartnersAbout
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting