2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
1 | |
WinCE, КПК, МК и датчик влажности05.11.2015, 18:39. Показов 3018. Ответов 19
Метки нет (Все метки)
Всем добрый день!
Нужна ваша помощь. Пытаюсь написать небольшую программку для WinCE (кпк Асус MyPal A620). Суть проекта в чем: имеется датчик температуры и влажности (DHT22), его планирую подключить к микроконтроллеру, который будет передавать данные в КПК. Подключать МК (микроконтроллер) хочу к 18-у контакту разъема КПК (RxD). Вопрос в чем: как получить данные которые будут приходить на RxD? Я новичек, и в программировании в Lazarus почти ничего не знаю.
0
|
05.11.2015, 18:39 | |
Ответы с готовыми решениями:
19
СМ Bosch wtb86211 oe/ 01, Определить датчик влажности и датчик температуры Датчик влажности почвы. Датчик влажности воздуха Датчик температуры и влажности CJMCU-1080 HDC1080 на ATtiny85 |
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
05.11.2015, 21:13 | 2 |
Что касается железа.
Не знаком со схемой кпк Асус MyPal A620, т.е. не уверен в том, что вы правильно указали номер контакта, но идея правильная. Не забудьте о GND-контакте. Далее, если выход КПК -12/+12, то между контроллером и КПК поставьте что-то типа MAX232. Что касается программы. В первую очередь установите lazarus-1.4.0-fpc-2.6.4-cross-arm-wince-win32.exe. Второе. Программа должна считывать данные с COM-порта (если такой определён в КПК). Такую программу можно написать с использованием API-функций, но если вы новичок, то лучше воспользуйтесь готовыми компонентами, например Cportlaz, LazSerial, SdpoSerial, sinapse40 (возможно есть и другие). По идее коммуникационные функции начиная с Windows NT Microsoft особе не изменяла, поэтому всё, что в плане портов справедливо для Windows должно быть справедливо и для WinCE.
1
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
05.11.2015, 21:40 [ТС] | 3 |
Питание МК буду брать от самого КПК, потому GND будет задействован 100%
Схему распиновки разъема брал здесь: http://pinouts.ru/PortableDevices/asus_mypal.shtml Про -12/+12 вольт я что-то не подумал, решил что если кпк работает от 5 вольт (внешний бп) то и никаких "подводных камней" быть не должно... Надо поискать информацию. В программировании я действительно новичек. Совсем немного знаю Autoit и BasComAVR, написал несколько программ для МК. Потому написать програмку для контроллера проблем не составит, а вот с кпк - полный "0". lazarus установил, даже попробовал "Хелло Ворлд" сделать - получилось но все "по инструкции" с интернета. С API я совсем не знаком. Спасибо за наводку на готовые функции - попробую на них что-то нарыть
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
06.11.2015, 19:50 | 4 |
Да просто тестором посмотрите. Если это выход с процессора, то будет +5V, а если с преобразователя RS232, то -12V (в реалбных устройствах может быть не +12/-12, а даже +6/-6).
Добавлено через 21 час 10 минут Там написано, что TTL, значит MAX232 не нужна.
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
08.11.2015, 10:21 [ТС] | 5 |
Начал изучать Free Paskal и сразу возникло множество вопросов:
1) где найти хорошую справку по языку для Lazarus на русском языке с примерами? 2) Как сделать поддержку других шрифтов? То есть: я создал "Label" и хочу что бы текст надписи отображался определенным шрифтом. В свойствах Надписи выбираю шрифт, размер, начертание и т.д., в Lazarus все меняется и правильно отображается, но если скомпилировать, то на КПК шрифт Label не меняется. Пробовал установить конкретный шрифт на КПК в Windows/fonts но ничего не меняется. Может шрифт нужно как-то "вшивать в программу"? 3) В программе планируется отображение реального времени, но как это сделать я не понял. Точнее я не знаю куда вставить код для постоянного повторения: Код
today := Time; Label1.caption := TimeToStr(today); Прикрепляю весь проект. Может подскажете что и как.. Да еще: для уменьшения размера программы я воспользовался этой инструкцией: http://grafika.me/node/53 (кроме пункта 4). Может это как-то влияет на шрифт?
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
||||||
08.11.2015, 11:08 | 6 | |||||
1. Вряд ли вы где-нибудь найдёте систематизированную справку на русском языке, однако в сети есть вот эта литература: "Free Pascal. Руководство пользователя.", "Free Pascal 2.4.2. Руководство программиста.", Мансуров К.Т. "Основы программирования в среде Lazarus", Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. "Самоучитель по программированию на Free Pascal и Lazarus".
Русскоязычный ресурс http://www.freepascal.ru/ На сайте ИНТУИТ-а есть два дистанционных курса по изучению Лазаруса. С некоторыми ограничениями можете пользоваться учебниками по Delphi. 2. Я использую компонент jujiboutils, в котором есть JLabel, обладающей значительно большей функциональностью (даже можно сделать надпись с тенью), чем стандартный Label. 3. Смотрите 11-ю лекцию в ИНТУИТ-е - там подробно рассказывается о работе со временем и датой. Если просто, То можно так:
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
08.11.2015, 11:27 | 7 |
Скорее всего есть какие-то особенности установки шрифтов на КПК. А вы попробуйте наоборот, т.е. использовать те шрифты, которые есть на КПК.
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
08.11.2015, 13:48 [ТС] | 8 |
В том то и дело что в папку Fonts вообще нет никаких шрифтов. А найти какую-то информацию на тему "шрифты в Wince" мне не удалось.
Компонент нужно устанавливать отдельно? Что-то я его не нашел в Lazarus. Добавлено через 1 час 43 минуты jujiboutils скачал и установил. Попробовал - результат тот же. Шрифт не сохраняется а сбрасывается на "стандартный"
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
08.11.2015, 16:01 | 9 |
К сожалению, больше ничего толкового посоветовать вам не могую
Попробуйте в таком случае использовать PaintBox и рисовать на канве.
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
09.11.2015, 22:30 [ТС] | 10 |
Со шрифтом решил проблему так:
Выбрал шрифт, в фотошопе каждую цифру отрезал отдельно в png-файл (0-9). Картинки-цифры загрузил в TImageList. В окне программы нарисовал 4 TImage и в каждую из них подгружал соответствующую картинку из TImageList. Преимущество такого способа: любой шрифт можно подгрузить + (немного доработав) легко менять подгруженные шрифты прямо в программе. Из минусов: каждый шрифт нужно заранее создавать в фотошопе нужного размера и цвета. Прикрепляю файлы проекта. Помогите разобраться в том как подключить пакет LazSerial и как с ним работать. А то все что нашел - на английском языке, понять приведенные примеры почти невозможно Еще такой вопрос: как убрать нижнюю строку меню? Фото прикрепляю.
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
09.11.2015, 22:54 | 11 |
Перед установкой LazSerial необходимо устанавливать laz_synapse.
Я бы вам посоветовал компонент Cportlaz_v1.0.0, в нём есть хорошая справка, порт работает в отдельном потоке. Устойчив. Вся работа с ним сводится к инициализации, затем периодической проверке того, что и сколько принято, загрузке данных в буфер передачи и по окончанию работы - закрытию порта. Помимо самого порта вместе с ним устанавливается очень полездый компонент TComComboBox, который позволяет выбрать один из имеющихся в системе портов. К сожалению, некоторые компоненты на моей версии (Lazarus 1.3) не работают, возможно они под Linux. Я вам сбрасывал файл Lazarus - настройка.rar, там есть как устанавливать этот компонент.
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
10.11.2015, 00:23 [ТС] | 12 |
shyub, можете еще раз скинуть? что-то я найти не могу куда скачал...
Добавлено через 8 минут Нашел, сейчас буду читать Добавлено через 21 минуту Нашел и скачал Cportlaz_v1.0.0. Устанавливаю по инструкции, но выдает ошибки: Кликните здесь для просмотра всего текста
Компиляция пакета CPortLib10 1.0: Код завершения 1, ошибок: 12
CPortCtl.pas(97,19) Error: No property found to override CPortCtl.pas(97,19) Error: This kind of property can't be published CPortCtl.pas(108,25) Error: No property found to override CPortCtl.pas(108,25) Error: This kind of property can't be published CPortCtl.pas(168,19) Error: No property found to override CPortCtl.pas(168,19) Error: This kind of property can't be published CPortCtl.pas(175,25) Error: No property found to override CPortCtl.pas(175,25) Error: This kind of property can't be published CPortCtl.pas(498,19) Error: No property found to override CPortCtl.pas(498,19) Error: This kind of property can't be published CPortCtl.pas(509,25) Error: No property found to override CPortCtl.pas(509,25) Error: This kind of property can't be published Все ошибки ссылаются на: Код
property Ctl3D; ... property ParentCtl3D; Добавлено через 50 минут Использую Lazarus 1.4.4
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
10.11.2015, 09:33 | 13 |
Видимо вы что-то не то скачали. У меня эти строки закоммернтированы.
Прикрепляю свой компонент:Cportlaz_v1.0.0.rar
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
||||||
10.11.2015, 11:52 [ТС] | 14 | |||||
shyub, спасибо! Ваш компонент подключился без проблем!
Добавлено через 15 минут Хм... Чудеса какие-то! Создаю новый проект, накидываю на поле всякие функции из CPortLib, компилирую, ошибок нет. Открываю свой проект, закидываю любую функцию из CPortLib, компилирую - Ошибка!
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
10.11.2015, 11:57 [ТС] | 15 |
Прикрепляю мой проект
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
10.11.2015, 12:08 [ТС] | 16 |
Только что перепроверил: CPortLib выдает ошибку при компилировании если компиляция прозводится под WinCE
Печально
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
10.11.2015, 12:28 | 17 |
У вас всё время каталоги проектов называются русскими буквами. Поропробуйте назвать английскими, без пробелов. Хотя, конечно, мало вероятно, что поможет...
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
11.11.2015, 00:39 [ТС] | 18 |
Уже пробовал. Перекинул проект в С:\1\ результат тот же.
Пробовал создать полностью новый пустой проект, закинул функции CPortLib - скомпилировался без проблем. Но как только компилятор перенастроил под WinCE и ARM то сразу появились ошибки во время компилирования Вернул настройки обратно - ошибки исчезли Добавлено через 8 часов 57 минут И так, с CPortLib не срослось... попробовал подключить LazSerial, но и здесь не получилось: Иду далее: SdpoSerial Добавлено через 2 часа 48 минут SdpoSerial тоже ругается Как это исправить? Качал здесь: http://sourceforge.net/project... o%200.2.0/
0
|
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
|
|
11.11.2015, 21:45 | 19 |
Не уверен, что поможет, но попробуйте на API. Вот вам пример COM_Port.rar Он, правда, под Windows, но если перекомпилировать под WinCE, может и пойдёт.
Напишите о результате.
0
|
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
|
|
11.11.2015, 23:56 [ТС] | 20 |
Похоже что в WinCe определенные функции не работают, так как если перенастроить проект на WinCe то появляется ошибка:
0
|
11.11.2015, 23:56 | |
11.11.2015, 23:56 | |
Помогаю со студенческими работами здесь
20
Как сделать датчик, который замеряет уровень влажности и кислотности почвы Подключение к Arduino UNO 4-х вентиляторов + датчик воды + датчик грунта Помогите со схемой.Нужен датчик удара и датчик прикосновения Atmega + датчик освещенности. Помогите подобрать датчик Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |