Проекты

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

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

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

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

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

01/12/2019.22:31 · 0 Comments

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 пользовательского 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 · Последние изменения: 27/11/2022.20:47 (внешнее изменение)
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