APRS трекер на базі Arduino з функцією smartbeaconing

Нещодавно користувач billygr додав функцію smartbeaconing до свого APRS радімаяка на Arduino.

Функція SmartBeacon дозволяє передавати APRS маки в залежності від швидкості руху і поворотів. Таким чином, вона запобігає надмірному навантаженню мережі APRS мобільними станціями під час зупинки, водночас відображає детальну схему маршруту.

### Необхідні елементи для побудови:

  • - Arduino Pro Mini 3.3V 8 MHz
  • - GPS модуль який може передавати в 9600 bps (наприклад [такий](https://www.adafruit.com/product/746) або інший з Aliexpress)
  • - передавач в FM на частоті 144.800 mHz
  • - розсипуха у вигляді резисторів, конденсаторів та інших елементів
  • ### Схема:

    файл [PDF ](https://github.com/billygr/arduino-aprs-tracker/blob/smartbeaconing/APRS-Tracker_KiCad/Pictures/APRS_Tracker_Schematic.pdf)в репозиторії

    ### Друкована плата:

    [Gerber](https://github.com/billygr/arduino-aprs-tracker/tree/smartbeaconing/APRS-Tracker_KiCad/Gerber) або [KiCad](https://github.com/billygr/arduino-aprs-tracker/tree/smartbeaconing/APRS-Tracker_KiCad/Gerber)

    ### Програмуємо Arduino

  • 1. Перейти в гілку [smartbeaconing ]( https://github.com/billygr/arduino-aprs-tracker/tree/smartbeaconing ) і завантажити код.
  • 2. На своєму комп'ютері відкриваємо файл ./arduino-aprs-tracker/arduino-aprs-tracker.ino , переходимо до рядка під номером [35 ](https://github.com/billygr/arduino-aprs-tracker/blob/de4ff6c1971c3560d853e6b98d39e82cd3298869/arduino-aprs-tracker/arduino-aprs-tracker.ino#L35) і змінюємо ` APRS_CALLSIGN[] ` ` APRS_SSID ` і при бажанні `APRS_SYMBOL` . Також можемо змінити налаштування SmartBeaconing, рядок 43-51
  • 3. Встановлюємо останню версію бібліотек: [LibAprs ](https://github.com/billygr/LibAPRS) і [TiniGPS ](http://arduiniana.org/libraries/tinygps/) або [завантажуємо](https://mega.nz/folder/GxgkFI7Q#CNMsd4W7XMcYKzwbL1It2A) одним архівом і копіюємо в папку ` My Documents\Arduino\libraries\ ` якщо у вас Windows.
  • 4. В налаштуваннях Arduino вибираємо Arduino Pro Mini 3.3V 8 MHz
  • 5. Компілюємо і заливаємо прошивку в Arduino.
  • 6. Підключаємо по схемі, яка знаходиться в репозиторії ./APRS-Tracker_KiCad/Pictures/APRS_Tracker_Schematic.pdf
  • 7. Запускаємо і перевіряємо на агрегаторі APRS пакетів.
  • ### Перевірка роботи smartbeacon

    Щоб перевірити роботу smartbeacon пропонуємо відкрити закладку RAW (сирі пакети) на агрегаторі і подивитися зміст пакету

    #### Пакет з функцією smartbeacon буде мати вигляд

    ``` CALLSIGN-9>APZMDM,WIDE1-1,WIDE2-2,qAR,CALLSIGN-GATE-1:=5036.75N/02614.06E>-30/52/A=000612Arduino APRS Tracker ```
    ``` CALLSIGN-9>APZMDM,WIDE1-1,WIDE2-2,qAR,CALLSIGN-GATE-1:=5036.75N/02614.06E>/A=000612Arduino APRS Tracker ```

    #### Пакет без функції smartbeacon буде мати вигляд

    ``` CALLSIGN-5>APZMDM,WIDE1-1,WIDE2-2,qAR,CALLSIGN-GATE-1:=5044.38N/02603.18E>Arduino APRS Tracker ```

    ### Посилання на ресурси:

    Оригінальна [стаття ](https://www.billy.gr/arduino-aprs-tracker/)
    Репозиторій на [GitHub ](https://github.com/billygr/arduino-aprs-tracker/tree/smartbeaconing/arduino-aprs-tracker)
    Про функцію Smartbeaconing [польською](http://www.aprs.pl/smart.htm)
    Алгоритм Smartbeaconing [англійською](http://www.hamhud.net/hh2/smartbeacon.html)

    Після тривалого тестування виявилося, що якщо трекер включений досить довгий час без перезавантаження тоді починаються “глюкі”. Ардуіно некоректно формує і передає пакет.

    Написали зголошення на GitHub з описом проблеми.

    Поки ми з’ясовуємо баг з Arduino, @laser запропонував іншу версію трекера з SmartBeacon’ом

    Не з’ясували причину не стабільної роботи?

    В чому вона проявляється?


    @UT3UIT#115

    причину так і не з’ясували. Тут є довга переписка з баг репортами.

    Якщо коротко, то через кілька годин роботи трекера він починає передавати не коректні дані. Таке враження що переповнюється буфер або не вистачає ресурсів в Arduino для визначення швидкості, курсу і опрацювання цих даних. Поки що відносно стабільно працює ось цей проект . Але знову ж таки хотілося б рішення на одній платі без різних примочок. А для апрс трекера IndyTracker надто важкуватий і ресурсоємний.



    [[2,3],[2,3,35]]