Привет! Есть задача: две ардуинки не связанные между собой. Есть список команд со временем исполнения с точностью до миллисекунд. Хочется, чтобы они были между собой максимально синхронизированны. Поэтому есть идея поставить RTC с миллисекундами. но бывает ли такой? Или есть какие-то более простые методы?
Зависит от того, что вы делаете, что такое "максимальная точность" и насколько можно разбежаться часам. 1. У rtc есть выход sqw. Его можно настроить как pps, а можно на частоту кварца 2. Время можно брать из gps. На спутнике как никак атомные часы 3. Если прям точно-точно, то атомные часы уже похудели по размеру до небольших модулей, но ценник в районе $5K Но кажется что в большинстве случаев "досчитывать" дробные доли секунды надо самому
Синхронизация по сигналу? Имеете ввиду соединить их проводом? Нет, не получится по задумке. Каждый модуль должен быть независим и мобилен. Пытаюсь собрать роботов, в которых закидываешь по Bluetooth команды, а они их выполняют, при этом достаточно слаженно. И кажется, что если погрешность в слаженности секунда, то это уже плохо. Одному ты дал команду разжать держатель, а первый ещё не схватил и за секунду стакан успеет упасть. 1/10 -1/20 секунды выглядят более менее оптимистичными А можно, про первый пукнт подробнее ч пожалуйста? И что значит досчитывать?
Хоть проводом, хоть антенной, хоть цепочкой доминошек, хоть квантовой спутанностью, какая разница. Сигнал есть сигнал. Главное, чтобы по времени предсказуемо приходил.
Я ещё подумаю по поводу сигнала. Надо ещё как-то сделать, чтобы они не путали сигналы и не реагировали на чужие.. Спасибо!
Один главный по часам, второй ведомый. Самое простой и дешевое решение: радиопередатчик на первом и приемник на втором 433МГц. Первый передает второму секретную фразу (пару-тройку байт), на которую тот синхронизируется. Сдвиг времени на уловить, расшифровать и применить можно вычислить и компенсировать. Синхронизировать можно не постоянно, а перед началом совместной операции, далее уповать на точность кварцев обоих Ардуин, которые обычно очень точны в небольшом отрезке времени.
В GPS эта задача решена. Модуль выдает реальное время и сигнал pps. Вместо pps можно чаще сигнал отправлять, но не нужно. По сигналу pps устройство вносит поправку в показания своих системных часов, которые затем использует для получения времени. Если сигнал не был принят, то ничего страшного. Системные часы продолжают работать. Обычные кварцы имеют погрешность менее 1 мс за секунду. Так что для вашей задачи даже синхронизация раз в минуту хватит. Вместо GPS можно радио или ИК использовать для рассылки сигналов точного времени. Сигнал должен содержать показания часов, и собственно синхроимпульс. Учтите, что некоторые модули используют буферизацию.