Open
Close

Arduino pro mini программирование. Arduino Pro Mini – распиновка и подключение

Arduino pro mini – специализированная электронная платформа в виде микросхемы, предназначение которой состоит в создании электронных устройств. Следовательно, в микроконтроллере отсутствует привычная микросхема, роль которой заключается в поддержании связи с помощью USB-UART. Цена намного дешевле, в отличие от других представителей Arduino. Pro Mini или просто pro – модельный ряд, не оснащенный разъемами USB, которые используются для подключения и прошивания устройства.

Вместо этого существует программатор. Начинающий электронщик может выбрать из двух доступных вариантов изделия: Ардуино с 3,3 В и 8 МГц или Ардуино про мини 5 V, в котором доступна распиновка. Статья ниже познакомит читателя с особенностями модели и покажет, где можно использовать электронную плату.

Техническая сторона Arduino mini:

  • рабочее напряжение, требуемое для нормальной работоспособности – 3,3 и 5 Вольт;
  • напряжение, используемое при входе – 3-12 или 5-12 Вольт;
  • количество цифровых входов и выходов – 14 штук, 6 из которых эксплуатируются как выходы ШИМ;
  • состояние постоянного тока, требуемого для входа и выхода – 40 мА;
  • flash-память – 16 Кб, но 2 Кб предназначены для загрузчика;
  • оперативная память – 1 Кб;
  • eeprom – 512 байт;
  • частота тактов – в первой модели 8 МГц, а во второй 16 МГц;
  • Arduino pro включает i2c-интерфейс.

Также стоит отдельно сказать про размеры платы - они, на самом деле очень скромные. Многие кто знакомятся с линейкой ардуино в первый раз всегда удивляются размерам, когда достают МК из коробки. Ниже вы можете оценить плату в дюймах и в сантиметрах.

Аппаратная часть мк Arduino pro mini

В таблице ниже описана аппаратная часть Arduino pro mini. На Arduino mini pro особое внимание уделяется входам и выходам.

Аппаратная часть Особенности
Питание На платформе Ардуино мини про расположен разъем для подсоединения кабеля FTDI, с помощью которого устройство получает питание. Также возможно включать ардуинку через вывод Vcc или RAW. Рассмотрим подробнее источники питания на Ардуино мини:
  1. С помощью RAW-вывода. Напряжение в таком случае будет нерегулируемым.
  2. GND – вывод при заземлении.
  3. VCC. Используется в том случае, когда требуется регулировать напряжение.
Состояние памяти Распределение памяти на схеме Ардуино мини про:
  • 16 килобайт выделено для флеш памяти;
  • 2 килобайт для того, чтобы включился загрузчик;
  • на оперативную память выделен 1 килобайт;
  • 512 байт под чтение и запись библиотеки EEPROM.
Количество входов и выходов и их предназначение Для распиновки разработчики Ардуино про выделили 14 контактов, которые пользователь самостоятельно настраивает, как входы или выходы. На вывод потребуется 3,3 Вольта. В настройках по умолчанию нагрузочный резистор, сделанный для вывода, пропускает 40 мА. Особенные функции для Arduino mini pro pinout:
  1. Шина последовательности. Нужна для принятия 0 и передачи информации 1 в виде TTL.
  2. Led 13. Под этим словосочетанием подразумевается светодиод, который подключен к цифровому выводу под номером 13. Если вывод равняется импульсу, передающему 1, светодиод загорится.
  3. Внешнее прерывание, 2-3. Подробно о данной особенности расписано в attachInterrupt().
  4. ШИМ на 3, 5, 6, 9, 10, 11. Для этого используется функция analogWrite(), которая обеспечивает выводы ШИМ, предназначенные для разрешения 8 бит.

Как мы уже заметили ранее - по размерам Arduino mini pro компактна и подойдет для конструирования любого устройства.

Схема и распиновка Pro Mini

Принципиальная схема микроконтроллера выглядит так:


Теперь перейдем к распиновке платы:


Программирование мк Arduino pro mini

Все программы программируются с помощью бесплатной среды разработки для Arduino pro mini. В Arduino mini включен ATmega328, в который предварительно вшивается загрузчик. Поэтому пользователь может свободно загружать программы в память микроконтроллера. Связь обеспечивает протокол STK500.


Как прошить Ардуино про мини без загрузчика с помощью внешнего программатора? Легко и просто.

Для начала потребуется отменить требование на нажатие кнопки перезагрузки перед тем, как прошивать код написанной программы. Ардуино mini pro сконструирован так, что перезагрузка посредством программного обеспечения доступна напрямую с любого компьютерного устройства. В 6-контактных выводах есть один, который напрямую связан с линией сброса Arduino 328 pro с помощью конденсатора на 100 нФ.

Через управление вышеописанным выводом возможно преобразовать USB или последовательный порт путем подключения к разъему. Если сделать так, что появится уровень ниже нормы в течение продолжительного времени, платформа автоматически перезагрузится.

Arduino IDE дает возможность пользователю, чтобы тот загрузил программный код при одном нажатии на кнопку для загрузки бесплатной среды разработки.


Однако повышается риск неоправданных последствий и поломки платформы. Если на компьютере электронщика установлена операционная система Мак Ос или Линукс, то сбрасывание на микроконтроллере будет происходить каждый раз, когда программное обеспечение с помощью USB-кабеля с платформой.

Спустя половину секунды с момента сброса начинает свою работу загрузчик. В основном, загрузчик устроен так, чтобы не перехватывать другие данные, однако нередко все происходит наоборот: перехватываются первые байты данных программы, которые отправляются на плату при установленном соединении.

Чтобы устранить такой «баг», необходимо в коде программы, которая будет работать на Ардуино, проверить, как осуществляется процесс передачи данных программы с компьютера на платформу. Оптимальное время для отправления кода – секунда с момента установки соединения между устройствами.

Реализация проектов на базе микроконтроллера Arduino pro mini

Сегодня в интернете можно найти любой проект на Ардуино. И это неудивительно, ведь эта платформа популярна среди начинающих разработчиков электронных приспособлений для дома и дачи. Ниже представлено несколько известных и простых проектов, в основе которых используется платформа Ардуино:

  1. Сигнализация, построенная с помощью подключения dfplayer к Ардуино pro.
  2. Управляемая конструкция для квадрокоптера.
  3. Автоматизация аквариума.
  4. Таймер.
  5. Анализатор влажности почвы.
  6. Автополив для комнатных растений.
  7. Датчик, измеряющий осадки и скорость ветра.

Введение

Приветствую Вас, читатели нашего ресурса. Сегодня мы поговорим об одном контроллере из серии Arduino, а именно об Arduino Pro Mini. Это маленький, компактный контроллер, имеющий все преимущества Arduino, но при этом очень компактный, можно сказать самый маленький из всех существующих Arduino контроллеров на данный момент. Многих так же привлекает и цена его Китайский копий, а стоят они от одного до двух долларов за штуку (местами и того меньше), что так же заставляет задуматься об его приобретении. Но существует и одна проблема, его не так-то уж и просто прошить, особенно Китайские копии, которые оснащают процессором Atmel ATmega168P, которыми некогда не оснащали официальные контроллеры Arduino Pro Mini и как следствие Arduino IDE отказывается их прошивать, сообщая о неправильной сигнатуре процессора.

Вот об этом мы сегодня и поговорим. Как прошить, что для этого нужно, ну и как заставить Arduino IDE работать с китайскими копиями.

Что для этого нужно?

Arduino Pro Mini очень компактный, а компактность требует жертв и жертва это - USB интерфейс который полностью выкосили в данном контроллере т.е. подключить Pro Mini к компьютеру напрямую у вас не получится и как следствие для этого понадобится либо специальный переходник USB в TTL или другой контроллер Arduino.

  • Первый способ. Прошиваем через адаптер USB в TTL - нужен сам адаптер в количестве одной штуки.
  • Второй способ. Прошиваем через Arduino UNO - нужна Arduino UNO, но не простая, а в классическом исполнении, это та Arduino, в которой процессор выполнен в DIP корпусе и вставлен в черный разъем.
  • Третий способ. Прошиваем через SPI интерфейс - нужна любая Arduino: UNO, Nano, Mega, Leonardo - не важно, главное чтобы был USB разъем для подключения к ПК.

Первый способ. Прошиваем через адаптер USB в TTL

Первым и самым простым способом загрузить свой скетч в Arduino Pro Mini - это приобрести специальный адаптер USB в TTL или как его называют UART переходник. Как правило, этот переходник это и есть та часть, которую вырезали из Arduino Nano, превратив ее в Arduino Pro Mini. Стоимость подобных переходников копеечная, а выбор и того больше. Китайцы наштопали их столько, что глаза разбегаться какой из них выбрать. При этом цена сего девайса не более одного вечно зеленого. После того как вы соедините Pro Mini и UART переходник проводами или шлейфом, остаётся только воткнуть его (переходник) в ПК, установить драйвер (не для всех переходников они требуются) и на этом собственно все. Ваш ПК определит переходник как очередной COM-порт, который появляется при подключении любой Arduino к ПК. Выбираете его, плату, с которой будете работать (Arduino Pro Mini) и спокойно загружаете свой скетч.

Единственным нюансом в данных переходниках, является наличие или отсутствие контактов RST или DTR. Рекомендую покупать переходники, на которых эти контакты есть. Они значительно упрощают жизнь и делают процесс прошивки беспроблемным. Если же вы купили уже переходник, на котором подобных контактов нет, то при каждой загрузке скетча в Arduino вам придется нажимать на кнопку Reset, что не всегда получается сделать вовремя, и это вносит свои неудобства.

Подключение переходник вы можете посмотреть по таблице ниже:

Второй способ. Прошиваем через Arduino UNO

Для этого способа нам понадобиться классическая Arduino UNO. Классическая эта та, в которой корпус микросхемы выполнен в DIP корпусе и вставлен в специальный разъем. Вот эту микросхему нам надо аккуратно поддеть отверткой. Тут важно не сломать процессор, поддевайте аккуратно, не погнув ноги.

Arduino UNO. Процессор выполнен в DIP корпусе.

Аккуратно поддеваем и вытаскиваем процессор отверткой.

После того как мы вытащили процессор из Arduino UNO мы по сути получили тот самый переходник USB в TTL, осталось только соединить проводами наш новый переходник и Arduino Pro Mini по следующей схеме:

Arduino UNO (без процессора)
Arduino Pro Mini
RX
RX
TX
TX
GND
GND
5V
VCC
RST
RST

После того как вы соединили две Arduino воедино, можно приступать к прошивке Arduino Pro Mini. Подключаем Arduino UNO по USB к ПК. Выбираем в настройках Arduino IDE COM-порт, указываем, что мы теперь работаем не с Arduino UNO, а с Arduino Pro Mini и все, заливаем наши скетчи. Способ довольно интересный, если вы не боитесь испортить Arduino и рядом не оказалось переходника USB в TTL.

Третий способ. Прошиваем через SPI интерфейс

Третьим и самым неудобным способом загрузить свой скетч в Arduino Pro Mini это прошить его при помощи ICSP интерфейса. Данный интерфейс присутствует на большинстве плат Arduino. Основные контакты данного интерфейса выведены на порты с 10 по 13, а так же выведены отдельно в виде шести контактной колодки с подписью ICSP. Располагается колодка, как правило, в центральной правой части Arduino.

Прошивка Arduino Pro Mini в этом случае делиться на два этапа:

  1. Прошивка платы Arduino как ISP программатора.

Первым делом мы должны подготовить наш будущий программатор. Возьмем для примера всю туже Arduino UNO. Далее пошагово:

  1. Запускаем Arduino IDE.
  2. Файл - Примеры - 11.ArduinoISP - ArduinoISP.
  3. Инструменты - Плата - Arduino UNO.
  4. Инструменты - Порт - Выбираем COM-порт.
  5. Компилируем и заливаешь в Arduino UNO.
Arduino UNO (ISP)
Arduino Pro Mini
5V
VCC
GND
GND
10
RST
11 (MOSI)
11 (MOSI)
12 (MISO)
12 (MISO)
13 (SCK)
13 (SCK)

Теперь опять открываем Arduino IDE. Открываем в ней скетч который вы хотите залить в Pro Mini и выполняете следующие действия:

2. Инструменты - Плата - Arduino Pro Or Pro Mini
3. Инструменты - Процессор - ATmega168 (5V, 16 MHz)
4. Инструменты - Порт - Выбираете порт
5. Инструменты - Программатор - Arduino as ISP
6. Скетч - Загрузить через программатор

Как видите загружать скетч в этом режиме надо через специальное меню "Загрузить через программатор", а не через кнопку "Загрузить" на главной форме Arduino IDE. В этом и связано все неудобство. Если вы нажмете кнопку "Загрузить" как это делаете обычно, то вы зальете скетч в Arduino UNO, а не Arduino Pro Mini, что затрет там скетч программатора. Так же в этом режиме недоступен класс Serial, то есть отлаживать свой скетч обмениваясь сообщениями по COM-порту у вас так же не получится. Ну и еще одна ложка дегтя в том, что после данной перепрошивки, в большинстве случаев, перепрошить Arduino Pro Mini через переходник у вас так же больше не получиться. Исправляется это заливкой нового bootloader-а через меню "Инструменты" - "Записать Загрузчик".

Добавляем китайский Pro Mini в Arduino IDE

Как я уже говорил в данной статье, Китайские клоны порой оснащают процессорами которыми не оснащали официальные версии Arduino Pro Mini и как следствие при прошивке их вы можете увидеть следующую или подобную ошибку.

Avrdude: Expected signature for ATmega168 is 1E 94 06 Double check chip, or use -F to override this check. Найден неправильный микроконтроллер. Вы указали правильную плату в меню Инструменты -> Плата?

Исправляется это легко:

  • Для начала необходимо открыть папку в которой расположена Arduino IDE.
  • Затем переходим в следующую папку "Папка с Arduino IDE\hardware\arduino\avr\".
  • Ищем там файл "boards.txt" и открываем его в текстовом редакторе.
  • Ищем в файле следующую строку "pro.menu.cpu.16MHzatmega168.build.mcu=atmega168".
  • И заменяем ее на "pro.menu.cpu.16MHzatmega168.build.mcu=atmega168p".
  • Перезапускаем Arduino IDE и на этом все.
  • Если у вас к примеру 328 процессор то делаем все так же, только ищем строку с цифрами 328.

Заключение

В данной статье я привел аж три варианта загрузки скетчей в Arduino Pro Mini. Лично я использую второй. Мне он больше нравиться.

Что будете использовать вы - выбирать вам. Оставьте в комментарии какой вариант вы предпочитаете.

Успехов вам и удачи.

Пожалуйста, включите javascript для работы комментариев.

Arduino - это эффективное средство разработки программируемых электронных устройств, которые, в отличие от персональных компьютеров, ориентированы на тесное взаимодействие с окружающим миром. Ардуино - это открытая программируемая аппаратная платформа для работы с различными физическими объектами и представляет собой простую плату с микроконтроллером, а также специальную среду разработки для написания программного обеспечения микроконтроллера.

Ардуино может использоваться для разработки интерактивных систем, управляемых различными датчиками и переключателями. Такие системы, в свою очередь, могут управлять работой различных индикаторов, двигателей и других устройств. Проекты Ардуино могут быть как самостоятельными, так и взаимодействовать с программным обеспечением, работающем на персональном компьютере (например, приложениями Flash, Processing, MaxMSP). Любую плату Ардуино можно собрать вручную или же купить готовое устройство; среда разработки для программирования такой платы имеет открытый исходный код и полностью бесплатна.

Язык программирования Ардуино является реализацией похожей аппаратной платформы "Wiring", основанной на среде программирования мультимедиа "Processing".

Почему именно Arduino?

Существует множество других микроконтроллеров и микропроцессорных устройств, предназначенных для программирования различных аппаратных средств: Parallax Basic Stamp, Netmedia"s BX-24, Phidgets, MIT"s Handyboard и многие другие. Все эти устройства предлагают похожую функциональность и призваны освободить пользователя от необходимости углубляться в мелкие детали внутреннего устройства микроконтроллеров, предоставив ему простой и удобный интерфейс для их программирования. Ардуино также упрощает процесс работы с микроконтроллерами, но в отличие от других систем предоставляет ряд преимуществ для преподавателей, студентов и радиолюбителей:

Компактные платы ардуино:

Ардуино Нано

Платформа Nano, построенная на микроконтроллере ATmega328 (Arduino Nano 3.0) или ATmega168 (Arduino Nano 2.x), имеет небольшие размеры и может использоваться в лабораторных работах. Она имеет схожую с Arduino Duemilanove функциональность, однако отличается сборкой. Отличие заключается в отсутствии силового разъема постоянного тока и работе через кабель Mini-B USB. Nano разработана и продается компанией Gravitech.
Наверное одна из лучших и компактных плат для различных проектов и самоделок, обычно выбираю её :

Ардуино про мини

Arduino Pro Mini построена на микроконтроллере ATmega168 (техническое описание ). Платформа содержит 14 цифровых входов и выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, резонатор, кнопку перезагрузки и отверстия для монтажа выводов.

Плата имеет еще более компактные размеры, но без конвертора сн340. Цена ниже чем у нано.




Arduino pro micro

Плата Arduino Pro Micro построена на микроконтроллере ATmega32U4 , что позволило не применяя конвертер USB-UART подключать плату в USB-порту компьютера. Это исключает необходимость применения программатора для записи скетча в плату.

Возможности:

  • частота: 16МГц
  • 4 канала АЦП (10 бит)
  • 10 портов ввода-вывода общего назначения (из них 5 с ШИМ)
  • выводы Rx/Tx
  • светодиоды: питание, Rx, Tx

Плата имеет регулятор напряжения, что позволяет использовать питание до 12В (вывод RAW, не VCC!)



Полноразмерные платы ардуино

Ардуино Уно

Arduino Uno контроллер построен на ATmega328 (техническое описание , pdf). Платформа имеет 14 цифровых вход/выходов (6 из которых могут использоваться как выходы ШИМ), 6 аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки.

КУпить на алиэкспресс http://ali.pub/1tgxw9


Ардуино DUE

Общие сведения

Arduino Due - плата микроконтроллера на базе процессора Atmel SAM3X8E ARM Cortex-M3 (описание). Это первая плата Arduino на основе 32-битного микроконтроллера с ARM ядром. На ней имеется 54 цифровых вход/выхода (из них 12 можно задействовать под выходы ШИМ), 12 аналоговых входов, 4 UARTа (аппаратных последовательных порта), a генератор тактовой частоты 84 МГц, связь по USB с поддержкой OTG, 2 ЦАП (цифро-аналоговых преобразователя), 2 TWI, разъем питания, разъем SPI, разъем JTAG, кнопка сброса и кнопка стирания.

Внимание! В отличие от других плат Arduino, Arduino Due работает от 3,3 В. Максимальное напряжение, которое выдерживают вход/выходы составляет 3,3 В. Подав более высокое напряжение, например, 5 В, на выводы Arduino Due, можно повредить плату.

Плата содержит все, что необходимо для поддержки микроконтроллера. Чтобы начать работу с ней, достаточно просто подключить её к компьютеру кабелем микро-USB, либо подать питание с AC/DC преобразователя или батарейки. Due совместим со всеми платами расширения Arduino, работающими от 3,3 В, и с цоколевкой Arduino 1.0.


Arduino ESPLORA

Общие сведения

Arduino Esplora - это микропроцессорное устройство, спроектированное на основе Arduino Leonardo . Esplora отличается от всех предыдущих плат Arduino наличием множества встроенных, готовых к использованию датчиков для взаимодействия. Он спроектирован для тех, кто предпочитает сразу начать работу с Ардуино, не изучая перед этим электронику. Пошаговую инструкцию к Esplora вы сможете найти в руководстве Начало работы с Esplora .

Esplora имеет встроенные звуковые и световые индикаторы (для вывода информации), а также несколько датчиков (для ввода информации), таких, как джойстик, слайдер, датчик температуры, акселерометр, микрофон и световой датчик. Помимо этого, на плате есть два входных и выходных разъема Tinkerkit, а также гнездо для подключения жидкокристаллического TFT-экрана, позволяющие значительно расширить возможности устройства.

Как и на плате Leonardo, в Esplora используется AVR-микроконтроллер ATmega32U4 с кварцевым резонатором 16 МГц, а также разъем микро-USB, позволяющий устройству быть USB-гаджетом, подобно мыши или клавиатуре.


Arduino YUN

Arduino Yun – отладочная плата на базе микроконтроллера ATmega32u4 и Atheros AR9331. Процессор Atheros поддерживает дистрибутив Linux, основанный на базе OpenWrt и называемый OpenWrt-Yun. Плата имеет встроенную поддержку Ethernet и WiFi, порт USB-A, слот для карты micro-SD, 20 цифровых входных/выходных выводов (из которых 7 могут использоваться в качестве ШИМ выходов, а 12 – в качестве аналоговых входов), кварцевый резонатор 16 МГц, соединение microUSB, разъем ICSP и 3 кнопки перезагрузки.

Купить на Алиэкспресс http://ali.pub/1tgz6c





Заказываешь на Aliexpress ?Узнай как экономить покупая на али кэшбек

https://cashback.epn.bz/?i=ff2b6

https://cashback.epn.bz/joinusnow?i=ff2b6

Большинство модулей, продаваемых как части конструктора для Arduino, представляет из себя плату с линейным стабилизатором и надписью: «входное напряжение от 3 до 5 Вольт», а сами микросхемы, выполняющие работу модулей, зачастую питаются от напряжения 3.3В, и иногда могут работать при понижении его до 3 или 1.8В.

Данный модуль поможет оптимизировать размер и увеличить время работы моего GPS-логгера…

Упакован о Ардуино в пакетик со штрих-кодом:



Может, это оригинальный модуль?


Светодиод индикации питания зелёного цвета, #13 - красного:

Зачем нужен именно этот Ардуино - на 3.3В, а не как все - на 5В по $1.4? Всё хорошо, когда нам надо показать чудо, происходящее при подключении устройства к Ардуино: мы покупаем модули, цепляем их к общему источнику на 5В, загружаем скетч - и всё блестит и пыхтит. Но при разработке более-менее используемых устройств, приходится задумываться и об энергоэффективности, и о компактности, - в результате, из схем вылетает половина лишних блоков.

Как видно, процессор Atmega328 данного модуля может работать на напряжении 2.7В, причем на стабилизаторе напряжение практически на падает; для сравнения, на 5-вольтной Ардуино (из предыдущей версии GPS-логгера) у меня наблюдалось напряжение 3.6 В при питании от 5В на входе RAW.

Кстати, с какой скоростью он выдаёт информацию? У меня был файл с логом, за две минуты набегает 5.42 КБ (4336 Кб) ~ 37 Кб/с, если я не ошибся, то скорость почти в 15 раз меньше.

Те же проводки, питание соединяем без стабилизатора - напрямую к VCC, TX -> 2:


Скрипт посимвольно читает из программного последовательного порта и пишет в аппаратный, к которому мы подключили программатор и смотрим, что выдается:
#include // Для использования программного порта. SoftwareSerial mySerial(2, 3); // Инициализируем 2 контакт Arduino. char ch; // Буфер. void setup() { Serial.begin(9600); mySerial.begin(9600); } void loop() { // Если прочёлся символ из программного пота, if ((ch = mySerial.read()) != -1) Serial.write(ch); // пишем его в аппаратный. }
В «Мониторе порта» приходят строки характерные для GPS-модуля:

Код, написанный ранее, на самом деле, иногда глючит, поэтому етсь еще необходимость в его доработке. Собрав такой альфа-вариант:


переписал скрипт -

почти готовый GPS-логгер

#include #define SER_SP 9600 // Скорость последовательного порта. File flDataFile; // Файл для записи GPS-строк. char chGpsLint; // Переменная для хранения GPS-строки, byte btReaded; // её длина. void setup() { Serial.begin(SER_SP); // Настраиваем порт. if (!SD.begin()) // Если не получается начать работать с картой, delay(3600000); // ничего не делаем час. flDataFile = SD.open("-NKK-LOG.GPS", FILE_WRITE); // Файл для записи: if (!flDataFile) // если не получается открыть delay(3600000); // ничего не делаем час. } void loop() {} void serialEvent() { // Авто. вызываетcя при поступлении новых данных. while (Serial.available()) { // Пока в последовательном порту есть данные, btReaded = Serial.readBytesUntil("\n", chGpsLint, 128); // читаем строку, if (btReaded > 45) // если её длинна не менее стольки символов, flDataFile.write(chGpsLint, btReaded); // пишем данные в файл. } flDataFile.flush(); // Сбрасываем файловый буфер. }

Ловит текст по прерыванию. Изображённое на фото выше можно уже подключать к аккумулятору и использовать, но нужно доделать изделие!

Для монтажа было решено использовать , но пережде, чем монтировать, не лучше ли подумать, как будут располагаться элементы - Fritzing в помощь!


Самое сложное было - дорисовывать плату, но лучше потратить время у экрана компьютера, чем еще больше с паяльником, выбирая оптимальное расположение элементов.
«Хижина» слева - адаптер MicroSD->SD карт памяти;
светодиоды справа вверху: 3 для каданса и один для индикации состояния устройства (сбой при обращении к карте, сбой при создании файла, ожидание данных с GPS), сопротивление будет SMD на землю;
GPS-модуль не изображён: он располагается с обратной стороны платы;
там же будет и батарея питания;
справа внизу - jack-3.5 для подключения геркона, в корпусе возле его расположения нужно будет просверлить отверстие.
Приступил к сборке, размер платы оказался как раз по размеру корпуса. Здаётся мне, я её под этот корпус и выбирал… В креплении модулей внутри корпуса, мне поможет термоклей! Сначала хотел лепить батарею к корпусу:


Но особенности конструкции определи, что её лучше располагать на плате:


Затем к плате (так, чтобы ложиться рядом с батареей) был прикреплен GPS-модуль и его антенна, из-за нехватки места, пришлось снять с антенны «экран»:


Для пущей удобности извлечения, к плате была припаяна «ручка»:


Изначально я планировал крепить модуль Ардуино через разъёмы, но т.к высоты корпуса не хватало, и больше пилить или резать ничего не хотелось, решил припаять его к плате прикольным способом:


Впервые такой монтаж платы на плату я увидел в Bluetooth-модуле - получилось прикольно. Единственный минус - безболезненно снять обратно получится только феном. Для перепрошивки напаяю ещё контактов - плата большая.
Правильно припаять адаптер карты памяти мне помогла иллюстрация, приведённая выше , 2 раза перепаивал, на третий запомнил расположение контактов =)


Термоклеем фиксируем для удобства:

^-под адаптером расположены контакты питания GPS-модуля, соединяющиеся перемычкой: через перемычку питание происходит от линейного стабилизатора ардуино. При подключении к GPS-модулю по UART, перемычку можно снять чтобы Ардуино не перехватывала интерфейс.


После включения, GPS выдал время по Гринвичу на через 80 секунд, а данные о позиции - через 14 минут! Много, но это только с балкона.
После коммутации и припаивания светодиодов и конденсатора к RAW (28uF, на всякий случай, найден «лишних» деталях):

^- для подключения к программатору на плате торчат контакты.
С обратной стороны упомянутая выше перемычка позволяет отключать GPS-молуль при работе с Ардуино или Адруино при работе с GPS-модулем через UART-программатор:

^- отдельно выведены контакты для удобства подключения к GPS.

Крышка, в которой закрепляется плата, накладывается на дно и фиксируется (пока резинками из камеры). Дно, в свою очередь, крепится на руль, для этого имеется 4 отверстия в вершинах прямоугольника:


Ряд отверстий с краю нужен для светодиодов индикации, но они еще будут настраиваться: либо поправлю светодиоды внутри, либо заклею отверстия прозрачным термоклеем, пока не решил. С лицевой стороны корпуса приклеена :


Дно крепится на руль:


Снизу цепляется «крышка» (и превращается в дно):


После закрепления на руле, «дно» уже не снимается, а устройство остаётся в крышке, его можно снять и использовать отдельно для отладки или записи трека, например, пробежки.

Три синих светодиода-индикатора каденса загораются по такой схеме:
[Светодиоды] [ * * * ] 130 + [ * * ] 120 [ * ] 110 [ * * ] 100 [ * ] 90 [ * * ] 80 [ * ] 70 70 - [Каденс]

Из того, «что предстояло сделать»:
- после , было принято решение отключать программно;
- модуль повышения напряжения убран, потребляемый ток - в районе 95-125 мА - это почти в 2 раза меньше, по сравнению с и там не было светодиодов, каждый из которых потребляет 10-15 мА;
- SD подключена напрямую;
- расположение светодиодов и элементов внутри корпуса конфликтует со стремлением сделать универсальную/разборную систему на плате - в результате корпус остался тем же и батарею в нём почти некуда воткнуть =)

Исходный код

/** * По многочисленным просьбам * публикую долгожданный исходник, * без индикаторов каденса. * Один светодиод (17) горит в начале работы * до получения первой NMEA-строки длиной 70 символов. */ #include #define FILE_NM "-NKK-LOG.GPS" #define SER_SP 9600 #define RED_ON PORTC |= 0b000001000 // Зажигаем или #define RED_OFF PORTC &= 0b111110111 // тушим красный светодиод. volatile word wTotRev, // Общее количество оборотов педалей; wTotRevLastWtd = 0; // последнее, записанное в лог. File flNMEA; // Файл для записи GPS-строк. char chNMEA; // Переменная для хранения GPS-строки, byte btReaded; // её длина. bool bWaitingGps = true; // Флаг ожидания первых актуальных данных GPS. void setup() { delay(800); // При включении возможен дребезг контактов питания. pinMode(17, OUTPUT); // Светодиоды состояния устройства. while (!SD.begin()) { // Пока SD-карта не обнаружена, RED_ON; delay(150); // мигаем. RED_OFF; delay(500); } flNMEA = SD.open(FILE_NM, FILE_WRITE); // Проверка работы с файлами. if (!flNMEA) // Если ошибка при открытии файла while (true) { // мигаем по 2 раза. RED_ON; delay(150); RED_OFF; delay(150); RED_ON; delay(150); RED_OFF; delay(500); } Serial.begin(SER_SP); // Стартуем работу с GPS-датчиком. RED_ON; } // setup() // void loop() { } // loop() // void serialEvent() { // Автоматически вызываетcя при поступлении новых данных. while (Serial.available()) { // Пока в последовательном порту етсь данные, читаем. btReaded = Serial.readBytesUntil("\n", chNMEA, 128); if (bWaitingGps) { // Если GPS еще не выдаёт актуальные данные, if (btReaded > 70) { // проверяем их. bWaitingGps = false; RED_OFF; flNMEA.write(chNMEA, btReaded); } } else if (btReaded > 0) // Если GPS ранее выдал актуальные данные, flNMEA.write(chNMEA, btReaded); // пишем в файл. } flNMEA.flush(); // Сбрасываем файловый буфер. } // serialEvent() //

Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.

Планирую купить +21 Добавить в избранное Обзор понравился +16 +36