Добрый день, Я хочу сделать шкатулку, которая открывается в определенном месте и время, для определения время и места, хочу использовать gps приёмник, а для отображения расстояния какой нибудь дисплей Я покупал набор матрёшку примерно полтора года назад У меня есть Arduino UNO и куча проводов/диодов Нужен какой нибудь замочек, дисплей и gps приемник Подскажите пожалуйста, что нужно докупить для реализации моей идеи? Что лучше использовать в качестве замка? Хватит ли пинов в UNO?
Дисплей можно любой. http://amperka.ru/product/text-lcd-8x2 http://amperka.ru/product/text-lcd-16x2 скорее всего подойдут. GPS модулей много разных (и все достаточно дорогие, дороже самой ардуины). В Амперке есть такое http://amperka.ru/product/gps-bee Не знаю, насколько он хорош, но требует какого-нибудь шилда (вроде Wireless Shield) для подключения bee модулей. В сети есть другие варианты, но ничего о них сказать не могу, ибо не пробовал. Где-то в сети находил даже нечто с поддержкой ГЛОНАСС. Замок можно сделать на серве (в положении 0 градусов планка на валу сервы входит в петлю и удерживает крышку, при повороте на 90 выходит из петли, и крышку можно открыть), но не факт, что это будет лучший выбор в плане энергопотребления. Разве что затратить еще один пин на управление мосфетом в линии электропитания сервы, чтобы включать ее только перед открытием. Кроме того, нужно будет предусмотреть механизм "аварийного" открытия на время отладки и первичного закрытия. Для последнего можно соорудить подпружиненную защелку, которую тросиком выдергивает серва. Тогда крышку можно будет просто захлопнуть для закрытия. Дисплею в худшем случае надо 6 пинов, замку один-два, GPS приемнику понадобятся только пины 0 и 1 (Serial) или 4 пина SPI. Учитывая, что аналоговые пины можно использовать и как цифровые (а0-14, а1-15 и т.д), то пинов хватит с большим запасом.
Спасибо за ответ, Т.е. мне понадобится дисплей (http://amperka.ru/product/text-lcd-8x2) GPS модуль (http://amperka.ru/product/gps-bee) Сервопривод К GPS модулю (http://amperka.ru/product/arduino-wireless-shield этот подойдет?)
Теоретически все верно.И шилд должен подойти. Есть лишь два вопроса, которые смогут прояснить только практика, или те, кто уже решал подобные задачи. 1. Как серва будет в качестве открывателя замка в шкатулке, не выжрет ли батареи за считанные часы, хватит ли ее мощности для отпирания? 2. Как будет работать данный конкретный GPS модуль. Как с ним вообще работать. Не понадобится ли дополнительное оборудование для программирования (как с некоторыми другими bee модулями). Ссылка с магазина на информацию по модулю никуда не ведет. Следует также помнить, что в помещении скорее всего он работать не будет (не поймает нужного количества спутников).
Добрый день. Очень приятно, что уже есть эта тема, так как сам собираюсь собрать примерно такую же шкатулку, которая при нажатии на кнопку будет показывать расстояние до места открытия и при нажатии на туже кнопку если ты находишься в заданном радиусе от нужной точки (150-300 метров, в зависимости как точно он будет рассчитывать координаты) открывать шкатулку. И у меня то же возникло несколько вопросов. 1) В качестве GPS планирую использовать GPS-модуль Ublox NEO-6M Насколько я понимаю подключать его можно напрямую к arduino. 2) Насчет запирающего механизма, то же пока не все понятно. Думаю станет больше понятно уже после приобретения шкатулки. Но варианты есть следующие. а) Сервопривод (Или закрывающий сам, или двигающий запирающий штырь) б) Маленький моторчик, который будет вкручивать и выкручивать запирающий штырь. в) Микро соленоид который в нормальном состоянии будет запирать шкатулку, а при подачи на него питания, отпирать её. 3) Наружу шкатулки я планирую выводить следующие элементы. а) Экран (Показывать расстояние до точки открытия). (Тут как вариант думал использовать, 4 разрядный семисегментный индикатор ) Все зависит от внешнего дизайна шкатулки. б) Основная кнопка. (Тактовая) Как вариант, её планировал использовать для изначального запирания шкатулки. (Например при 10 секундном нажатии) в) Выносная антенна gps г) Светодиодный индикатор питания д) Светодиодный индикатор найденный спутников е) Светодиодный индикатор открытия ж) Тумблер вкл. выкл. Питания. з) USB к arduino 4) Питание. Вот тут у меня возникло несколько вопросов. "1. Как серва будет в качестве открывателя замка в шкатулке, не выжрет ли батареи за считанные часы, хватит ли ее мощности для отпирания?" А он будет поглощать энергию в состоянии покоя? Ведь можно сделать так что бы он приходил в движение только в момент когда надо уже открывать шкатулку. Затем у меня появились следующие мысли. Так как я собираюсь выводить наружу usb переходник к плате arduino которая внутри. Возможно ли и насколько сложно сделать так, что бы при подключении к usb аккумулятор находящийся внутри заряжался. Ну а вообще думаю, что аккумулятора должно хватить и без подзарядки если не держать шкатулку все время включенной. Вот такие мысли у меня по поводу gps шкатулки. Если есть у кого то комментарии, будет очень интересно выслушать.
Итак, я купил все Я подключил Wireless shield, переключил у него пимпочку на MICRO, воткнул туда GPS модуль, горит зеленым, так же мигает TX RX Первая проблема - заливка скетчей вылетает с ошибкой если высунуть GPS модуль то все хорошо заливается, это нормально? Вторая проблема - на GPS модуле горит одна зеленая лампочка (pwr) Пробую читать порт используя softserial (0, 1) и библиотеку TinyGPS чтобы распарсить данные Если без библиотеки TinyGPS то приходит какая то ерунда, если с ней то приходят пустота Как нужно работать c и как должен работать GPS модуль?
С заливкой при подключенном Wireless Shield я сам толком не разобрался. Весь фокус в том, что Bee модуль на нем "сидит" на последовательном порту, который используется для программирования ардуины, и мешает ее прошивать (может быть, он сам таким образом может прошиваться или управляться с компьютера). А вот обмен с данным модулем - это надо искать его описание. В теории это должен быть поток данных NMEA или подобный. Короче, что-то вроде Код (Text): $GPRMC,135412,A,5522.8973,N,03710.1401,E,0.0,0.0,190507,9.3,E,A*1F $GPRMB,A,,,,,,,,,,,,A,A*0B $GPGGA,135412,5522.8973,N,03710.1401,E,1,04,5.4,205.2,M,15.8,M,,*4A $GPGSA,A,3,,,,08,,13,,23,,25,,,5.7,5.4,1.0*3C $GPGSV,3,1,11,02,15,267,00,03,11,085,45,04,05,236,00,08,39,233,00*77 $GPGSV,3,2,11,10,32,308,00,13,63,109,43,16,17,037,00,23,31,111,38*77 $GPGSV,3,3,11,24,09,343,00,25,66,077,44,27,69,229,00*46 $GPGLL,5522.8973,N,03710.1401,E,135412,A,A*43 $GPBOD,,T,,M,,*47 $PGRME,19.1,M,15.2,M,25.3,M*15 $ PGRMZ,673, f,3*19 $ PGRMM, WGS 84*06 Если данные с модуля именно такие, то это уже можно интерпретировать. Про библиотеку TinyGPS ничего не скажу. В теории она должна разгребать именно такой поток. Насчет практики, у модуля могут быть особенности "диалекта" NMEA, которые не понимает библиотека. А 0,1 лучше разбирать не через SoftwareSerial, а при помощи "родного" класса Serial, который связан не только с USB, но и с этими пинами
У меня вот такие данные получаются http://prntscr.com/4lk481 Использую вот такой код Код (Text): TinyGPS gps; SoftwareSerial nss(0, 1); void setup () { Serial.begin (9600); nss.begin (4800); } void loop () { while (nss.available()) { int c = nss.read (); Serial.write (c); if (gps.encode(c)) { long lat, lon; unsigned long fix_age; gps.get_position (&lat, &lon, &fix_age); if (fix_age == TinyGPS::GPS_INVALID_AGE) { Serial.print ("No fix ever detected! \n"); } else if (fix_age > 2000) { Serial.print ("Data is getting STALE!"); } else { Serial.print ("Latitude and longitude valid!"); } Serial.print ("Lat :"); Serial.print (lat); Serial.print ("Lon :"); Serial.print (lon); } } } Что то тут явно не так Может я что то с портами попутал? подключаю GPS модуль через Wireless Shield И как с помощью проводов мама-папа лучше всего подключить экранчик (http://amperka.ru/product/text-lcd-8x2) и сервопривод?
Код (Text): TinyGPS gps; SoftwareSerial nss(0, 1); void setup () { Serial.begin (9600); nss.begin (4800); } Если ардуино не леонардо и не микро, то имеем жесточайший конфликт. Serial в большинстве ардуин - выведен на пины 1,0. Т.е. получается, что на эти пины в вашем коде для, например, UNO инициализированы аппаратный и софтовый порты, причем с разной скоростью. Даже непонятно, как и с какой реально скоростью будет функционировать такая конструкция. В леонардо и микро тоже лучше не использовать SoftwareSerial на эти пины, а воспользоваться Serial1. А данные, похоже, указывают на неверно выставленную скорость порта. Не факт, конечно, но очень вероятно.
Arduino UNO, скорости разные использовал А как тогда вывести результаты для отладки? И это нормально что GPS модуль тупо горит зеленым и все, я читал на этом форуме что он должен начать мигать красным?
Результаты для отладки можно на начальном этапе выводить на LCD экран. Про GPS не могу ничего сказать точно, не работал с ним. Возможно, он просто не может найти спутники, если проверка происходит в помещении. Или надо выдать на него какую-нибудь команду. Кто его, gps-bee, знает.
Поставил lcd экран, и переставил скорость на 9600 бод, стал приходить текст похожий на Код (Text): $GPRMB,A,,,,,,,,,,,,A,A*0B но местами вставляются какие то не понятные символы В доме за пару минут в этот if так и не зашел Код (Text): if (gps.encode(c)) { long lat, lon; unsigned long fix_age; gps.get_position (&lat, &lon, &fix_age); if (fix_age == TinyGPS::GPS_INVALID_AGE) { lcd.print ("No fix ever detected! \n"); } else if (fix_age > 2000) { lcd.print ("Data is getting STALE!"); } else { lcd.print ("Latitude and longitude valid!"); } lcd.print ("Lat :"); lcd.print (lat); lcd.print ("Lon :"); lcd.print (lon); } Надо выходить на улицу смотреть Не подскажите, есть ли какие нибудь еще библиотеки работы с gps NMEA?
Пока ничего не получилось, не могу распарсить данные с GPS, один раз только получил строчку на подобии , все остальные разы какая то ересь
Добрый день, у кого нибудь получилось сделать? Тоже хочу попробовать сделать, и вопрос, может для удобства использовать android mini PC? Кому интересно давайте совместными усилиями попробуем сделать!