Hitung kecepatan dan arah pada mikrokontroler atau di server jauh?

9

Anggaplah saya memiliki perangkat yang terpasang pada mobil yang mencakup MCU, dan modul SIM908. Fungsi SIM908 adalah untuk menerima data GPS dari satelit dan kemudian mengirimkannya ke server jarak jauh melalui 2G / GPRS sekali setiap menit untuk ditampilkan di web. Sekarang, selain mengirim lokasi GPS, saya juga ingin mengirim kecepatan dan arah mobil. Saya tahu bahwa kecepatan dan arah dapat dihitung dari koordinat GPS, tapi saya tidak yakin apakah MCU dapat menangani perhitungan tersebut.

Haruskah saya meletakkan tugas ini di server jauh untuk mengurangi beban pada MCU (seperti penghematan daya, kelancaran ...) atau langsung memproses pada MCU? Bisakah Anda menyarankan cara yang baik untuk melakukan tugas ini?

juggernaut156
sumber

Jawaban:

6

Seperti kata Bence, itu tergantung pada chip, dan akurasi yang dibutuhkan.

Tetapi saya ingin menambahkan satu hal: banyak GPS menghasilkan kecepatan dan arah (arah) di salah satu kalimat NMEA mereka. Jika chip GPS Anda melakukan ini, Anda dapat menggunakan ini secara langsung, dan tidak perlu menghitung apa pun — cukup gunakan nilai yang disediakan oleh GPS.

vidarlo
sumber
5

Ini sangat tergantung pada MCU yang Anda miliki, tapi saya pikir setiap mikrokontroler di pasaran dapat menangani tugas ini dengan mudah. Menghitung kecepatan dan arah dari koordinat bukanlah masalah besar. Saya pikir penguraian kalimat GPS membutuhkan lebih banyak waktu CPU.

  • Jadi jika Anda hanya melakukan tunneling data GPS melalui tautan GPRS, belum diproses, sehingga seluruh kalimat NMEA utuh, maka lakukan perhitungan di sisi server.

  • Jika Anda mengekstrak info yang relevan tentang MCU sebelum mengirim, maka menghitung kecepatan dan arah juga disarankan untuk dilakukan pada MCU. Saya akan menyimpan semua logika (parsing + perhitungan) di sisi yang sama. Jangan punya sedikit di sini dan sedikit di sana, itu hanya mempersulit.

Beberapa hal lain yang akan saya pikirkan sebelum membuat keputusan:

  • Jika Anda menjalankan perangkat dari baterai dan Anda kekurangan daya, maka Anda dapat melakukan sebanyak mungkin pemrosesan di sisi server, dan MCU Anda dapat tidur lebih banyak dan hanya bangun untuk menanyakan GPS dan mengirim data.

  • Saya tidak tahu berapa tarif seluler yang Anda miliki untuk SIM908, tetapi jika biaya dan setiap kB yang dikirim penting, maka ekstrak dan hitung semua yang ada di MCU untuk mengurangi lalu lintas data melalui tautan GPRS.

Bence Kaulics
sumber
4

Sebagai orang yang menciptakan sistem manajemen armada yang memproses data dari perangkat dengan penerima GPS yang saat ini melayani dua juta unit yang terdiri dari lebih dari ribuan jenis pelacak dari ratusan produsen di seluruh dunia, saya hanya punya satu saran untuk Anda - lakukan semua yang Anda bisa di sisi perangkat dan mengandalkan server hanya untuk penyimpanan yang stabil untuk pesan telemetri mentah. Kecepatan dan tentu saja Anda dapat membaca dari penerima GPS, tetapi juga jangan lupa untuk mengirimkan ke server jumlah satelit, hdop dan parameter lainnya. Perangkat Anda terhubung ke saluran listrik mobil sehingga Anda tidak perlu menghemat daya dan harga untuk lalu lintas SIM akan turun setiap tahun. Jadi, kirimkan saja apa pun yang dapat Anda tangkap dan yakini dengan setiap bagian dari server data yang terkadang dapat melakukan lebih dari yang dapat Anda bayangkan.

Dan jangan lupa bahwa sebagian besar server hanya menulis ke database, terutama dalam sistem beban tinggi, mereka tidak memiliki akses cepat (atau kadang-kadang sama sekali) ke pesan sebelumnya dari perangkat Anda dan tidak dapat melakukan perhitungan sebelum menyimpan pesan.

shal
sumber