Запись данных на HD компьютера
- Войдите на сайт для отправки комментариев
Пнд, 30/04/2012 - 18:04
Здравствуйте, уважаемые люди. Программированием Arduino я ещё не занялся, но в ближайшем будущем встанет такая задача. На данный момент я хочу узнать, как можно записать данные, например, с вот такого GPS-модуля на жесткий диск компьютера, чтобы потом в дальнейшем воспользоваться этими данными из какой-нибудь IDE программирования.
Я видел, что данные с GPS-модуля выводятся через терминальные программы. Может у этих программ есть экспорт данных? Но ведь его придется делать вручную. А мне нужно автоматическую запись данных на жесткий диск компьютера. Что посоветуете?
В будущем ещё придется работать с данными датчика влажности/температуры.
Там у них есть подробное описания как использовать Ардуино в качестве моста между модулем и компьютером. http://www.cooking-hacks.com/index.php/documentation/tutorials/arduino-gps#nmea_pc . Что интересно в нем даже вынимается Atmega чип, т.е. Ардуино в этом случае больше ничего слушать не сможет.
Есть у них, там же код, где просто получаются данные с модуля и пересылаются по Serial. Это фактически весь код, который Вам нужен для Arduino.
Другое дело, что Вам нужна будет еще какая-то утилита на компе, которая будет слушать Serial порт и писать на диск лог.
В том, как посылаются данные на serial порт я разберусь. По крайней мере, информация по этому вопросу исчерпывающая.
Да, главный вопрос в том, чтобы "слушать Serial порт и писать на диск лог". Я слышал, что есть API для работы с com-портами, реализованные на С\C++. Не хотелось бы с ними копаться.
Буду рад советам профессионалов. Кто-то же сталкивался с такой проблемой.
Во вторых, можно ничего не писать, а взять терминальную програму.
Куча их гуглится, я пользую это http://easyelectronics.ru/terminalnye-programmy.html которая умеет писать лог. Не знаю лучшие это или нет, первое что нагуглилось и мне подошло.
На крайний случай сделать в стандартном ардуиновском терминале ctrl+c открыть,блокнот ctrl-v и сохранить файл.
В третьих, можно вообще ничего не качать и не писать.
Просто выполнить команды в command line (cmd.exe)
Установить скорость порта:mode com3:115200,n,8,1
Записываем в файл: type com3: >> arduiono.log.txt
Или: copy com3: arduiono.log.txt
-----------------
Когда надоест - нажимаем ctrl-c
Единсвенный минус: команда copy - подтирает за собой файл после того как ее прервешь (зато можно в realtime смотреть, данные в файле), а команда type - кешируют запись по 512 байт, так что "хвост лога" может потерятся (зато файлик остается, послы обрывания).
Спасибо за информацию. Буду пробовать разные способы. Думаю, у меня ещё возникнет достаточно вопросов.
Ещё такой простой вопрос: как определить к какому порту сейчас подсоединилась моя ардуинка, не используя IDE Arduino?
http://arduino.ru/Guide/Windows#4
Раздел "Установите драйвера", один из шагов - определение на каком порту висит.
Это аппаратно-логический метод определения. То есть подключая руки и логику.
А можно как-то программно определить нужный порт? Смысл в том, чтобы, подключая моё устройство(ардуино) к другому компьютеру, программный код, отвечающий за манипулирование полученной информации с этого устройства, получал номер того порта, к которому подключено это устройство, а не константный номер(для одного конкретного компьютера, в данном случае моего).
>А можно как-то программно определить нужный порт?
Общий ответ - нет. Ком порт слишком тупая и древняя вещь. Стандартами не определенно что устройство должно "называть себя". Это одна из причин почему появился USB :) И почему он дороже. Бо "логики" там намного больше. Там устройство и "кто оно" рассказыает, и с какой скоростью хочет работать, и сколько тока планирует жрать и т.п.
Не обрали внимание что все программы (в т.ч. arduino IDE) просят указать com-порт руками? Вот именно поэтому.
Некоторые программы сканируют com-порты. Ищут "свое устроство". Делается это примерно так:
Пишите скетч. Который при включении (или при получении заданого "кодового слова") возвращает "я супер-пупер-девайс".
Ну а программа на компе, опрашивает все компорты которые найдет на PC. И смотрит кто же ей скажет "я супер-пупер-девайс".
Но если портов много (например блютусы любят их создавать десятками) - это может растянутся на долго. Или какое-то другое устройство, подключенное тоже на com-порт, может не так понять этот "опрос" и сделать что-нибудь что не ждали (например тупо перегрузится при открытие порта).
Поэтому обычно быстрее и надежней - задавать порт руками в конфигурации.
Тогда можно просто написать в руководстве по пользованию этим устройством необходимые инструкции. Ещё раз спасибо за информацию.