Проекты

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

Часть проектов базируется на демонстрационных платах, входящих в различные комплекты поставки PICkit2. Реализация некоторых проектов не требует ничего кроме PICkit2 1)

Wi-Fi модули WiFly и Народный мониторинг

Народный мониторинг — проект по отображению на карте мира и контролю (по e-mail и sms) показаний датчиков среды (температуры, влажности, атм.давления, скорости и направления ветра, радиации, энергопотребления и др.), а также веб-камер. Структурная схема проекта находится здесь

Для передачи данных на Народный мониторинг через WiFi использую модуль WiFly (RN-171, RN-131) от Roving Networks (сейчас они часть Microchip). Модуль представляет собой «коммуникационную трубу» - данные посланные в UART передаются в Wi-Fi и наоборот. К модулю WiFly через UART интерфейс подключен микроконтроллер, который отсылает пакет в формате narodmon.ru (#MAC\n#mac1#value1\n … ##). Подробнее о формате на сайте http://narodmon.ru/#proto

Сценарий работы

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

Вход в командный режим:

$$$

далее вводим команды настройки (то что за символами / / вводить не нужно - это комментарии ;)

//сетевые настройки
set ip proto 9 // режим UDP + TCP client 
set ip tcp-mode 0x4 // используем DNS
set ip address 0 //  
set dns name narodmon.ru
set ip remote 8283 // порт
set comm remote 0 // нулевой стринг, чтобы модуль при установке соединения с сервером не слал приветственных сообщений
// настройка UART
set comm size 1420 // максимальный размер приемного буфера UART это 1420 байт
set comm time 5000 //FlushTimer=5000 ms    
// 5 секунд на ввод символа перед отсылкой пакета - так много для тестирования, например вводим данные с клавиатуры или если применяется внешний медленный микроконтроллер
set uart mode 0x02 // установить TCP соединение по приему данных в UART 
set uart baudrate 9600 // желаемая скорость UART
// настройки подключения к WiFi сети
set wlan ssid yyy // подключиться к сети "yyy"
set wlan phrase xxx // пароль к сети "xxx"
set wlan join 1 // автоматическое подключение к точке доступа при вкл.питания
save // сохраняем конфигурацию в памяти модуля
reboot // перезагрузка с новым конфигом

Все. Модуль должен подключиться к заданной WiFi сети.

Теперь, если в приемный буфер UART приходит пакет, то он автоматически отсылается на narodmon.ru. Признаком завершения пакета является то, что в течение времени (значение указанное в FlushTimer) в UART не поступали новые данные (можно сделать не по времени, а по принятию к.л. символа).

Внутренние часы реального времени (RTC) модуля WiFly могут синхронизироваться с sNTP сервером. Если микроконтроллер, подключенный к WiFi модулю, ведет лог и загружает историю показаний, то UNIX time можно брать с синхронизированного RTC.

настройки синхронизации с sNTP сервером:

time enable 1 // 0 - sNTP выключен. 1 - получить время при включении питания или 2...255 - получать время с sNTP сервера каждые 2...255 минут
set time address 129.6.15.28 // адресс sNTP сервера
set time port 123 // порт sNTP сервера
set time zome 20     //msk time zone - если нужны показания для своего часового пояса
time               // синхронизируем RTC с сервером

тогда команда show t t

выдаст примерно такое:

Time=18:08:24
UpTime=517 s
RTC=1396015709
Restarts=1
Wake=1
RAW=299ac12e8131

где RTC=1396015709 это UNIX time. Это значение микроконтроллер может использовать для фиксации времени измерения показаний с датчиков.

Модули WiFly имеют хорошие параметры по потреблению. В Sleep потребение всего 4мкА, поэтому модуль может иметь автономное питание.

При работе с батарейным питанием сценарий может быть таким:

Настраиваем часы реального времени RTC на периодическое просыпание и засыпание (чтобы точка доступа не «забыла» о нас - разные точки доступа могут держать соединение разное время). Например, спим 10 минут, просыпаемся, если нет активности, то засыпаем через 5 секунд. Если во время спячки приходят данные по UART, то просыпаемся по сигналу CTS (подключенному к одному из Wake-Up входов модуля). Можно просыпаться по RX, но тогда может потеряться первый байт (UART не активен в Sleep).

Надеюсь эта простая инструкция поможет кому-нибудь в построении своей системы мониторинга!

30/05/2014.12:36 · pickit2

Видеоигра на PIC18F2550

Еще один проект на базе ОСРВ OSA:
PIC18 + немного деталек + монитор VGA = старый добрый Boulder Dash.

Описание, видео, схема, исходники.

03/06/2009.14:40 · pickit2 · 0 Comments

Пианино на PIC16

Подробно рассмотрен пример написания программы «Пианино» с использованием RTOS OSA. Обрабатываются 36 сенсорных кнопок и генерируется 8-канальный звук. Также приведено небольшое видео с демонстрацией.

Многоголосое сенсорное пианино на PIC16

07/04/2009.10:31 · pickit2 · 0 Comments

"Бегущие огни" с использованием RTOS

Подробно рассмотрен пример разработки программы на PIC-контроллере с использованием ОСРВ OSA. Пример очень простой и подойдет даже для начинающего. Правда, требуются навыки программирования на языке Си. В качестве аппаратной базы выбраны демо-платы из комплекта PicKit2 на базе контроллеров PIC16F886, PIC16F887 и PIC16F690.

"Бегущие огни" с использованием RTOS

(В параграфе "Прошивка контроллера" есть ссылка на архив, содержащий исходный текст программы и готовые к прошивке hex-файлы.)

19/03/2009.14:39 · pickit2

Сенсорное управление

В данном проекте рассматриваются основы технологии сенсорного управления mTouch™. На примере рассматривается создание сенсорной кнопки.

Использование Microchip PICkit 2 Debug Express для создания емкостного сенсорного переключателя на основе технологии mTouch™

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

Реализация проекта сенсорного управления на Си

16/03/2009.19:13 · pickit2 · 0 Comments

USB HID клавиатура на основе PICkit2

Данный проект описывает создание на базе PICkit2 USB HID клавиатуры. Читатель сможет создать прошивку для PICkit2, работать с внешними устройствами и передавать данные от внешних устройств как будто бы эти данные вводятся с клавиатуры.

USB HID клавиатура на основе PICkit2

16/03/2009.19:03 · pickit2 · 0 Comments

USB HID пользовательское устройство на основе PICkit2.

Данный проект описывает создание на базе PICkit2 пользовательского HID устройства. Читатель сможет создать прошивку для PICkit2 и написать свое приложение для персонального компьютера под управлением Windows.

USB HID пользовательское устройство на основе PICkit2

16/03/2009.18:59 · pickit2 · 0 Comments
,
1) Программатор PICKit 2 можно использовать как средство разработки, отладки и знакомства с USB устройствами. Простой пример: вам хочется освоить USB интерфейс. В «стандартном» случае вам нужно иметь программатор и собственно плату с установленным USB контроллером. Если у вас есть программатор PICkit-2 то можно поступить гораздо проще! Сердцем программатора PICkit 2 является USB-контроллер Microchip PIC18F2550. На фабрике в PICkit 2 прошит загрузчик и прошивка программатора. Можно воспользоваться данной возможностью для своих целей, а именно для изучения интерфейса USB. В этом случае все что вам понадобится это PICkit 2.
проекты/all.txt · Последние изменения: 11/06/2009.11:23 (внешнее изменение)
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0