Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
1

WinCE, КПК, МК и датчик влажности

05.11.2015, 18:39. Показов 3018. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем добрый день!
Нужна ваша помощь. Пытаюсь написать небольшую программку для WinCE (кпк Асус MyPal A620). Суть проекта в чем: имеется датчик температуры и влажности (DHT22), его планирую подключить к микроконтроллеру, который будет передавать данные в КПК. Подключать МК (микроконтроллер) хочу к 18-у контакту разъема КПК (RxD).
Вопрос в чем: как получить данные которые будут приходить на RxD?

Я новичек, и в программировании в Lazarus почти ничего не знаю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2015, 18:39
Ответы с готовыми решениями:

СМ Bosch wtb86211 oe/ 01, Определить датчик влажности и датчик температуры
Добрый день. СМ пытался сделать какой то мастер и исчез вместе с датчиком влажности и датчиком...

Датчик влажности почвы.
Друзья, помогите советом, как лучше сделать, что выбрать. Необходим датчик влажности, дабы...

Датчик влажности воздуха
Всем доброго времени суток! И снова я с вопросом. Идея такая, хочу собрать инкубатор, для этого...

Датчик температуры и влажности CJMCU-1080 HDC1080 на ATtiny85
Всем привет. Решил сделать небольшую домашнюю метеостанцию. Есть приемник с экраном, куда...

19
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
Цитата Сообщение от forfrends Посмотреть сообщение
Надо поискать информацию.
Да просто тестором посмотрите. Если это выход с процессора, то будет +5V, а если с преобразователя RS232, то -12V (в реалбных устройствах может быть не +12/-12, а даже +6/-6).

Добавлено через 21 час 10 минут
Цитата Сообщение от forfrends Посмотреть сообщение
Схему распиновки разъема брал здесь:
Там написано, что 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);
Пробовал в разные места. В результате либо ошибки либо выполняется 1 раз.
Прикрепляю весь проект. Может подскажете что и как..
Да еще: для уменьшения размера программы я воспользовался этой инструкцией: http://grafika.me/node/53 (кроме пункта 4). Может это как-то влияет на шрифт?
Вложения
Тип файла: rar Новая папка (2).rar (2.05 Мб, 3 просмотров)
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-ю лекцию в ИНТУИТ-е - там подробно рассказывается о работе со временем и датой. Если просто, То можно так:
Delphi
1
2
DateTimeToString(S, 't', Now);  
Label1.Caption:=S;
4. Для уменьшения размера exe-шника зайдите в "Проект / Параметры проекта / Оладка" и уберите галочку в строке "Генерировать отладочную информацию для GDB...". Однако это следует делать по окончанию отладки проекта. Возможно вам поможет вот эта моя памятка по настройке среды и установке компонентов: Lazarus - настройка.rar
0
392 / 191 / 48
Регистрация: 11.07.2013
Сообщений: 1,183
08.11.2015, 11:27 7
Цитата Сообщение от forfrends Посмотреть сообщение
Пробовал установить конкретный шрифт на КПК в Windows/fonts но ничего не меняется.
Скорее всего есть какие-то особенности установки шрифтов на КПК. А вы попробуйте наоборот, т.е. использовать те шрифты, которые есть на КПК.
0
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
08.11.2015, 13:48  [ТС] 8
Цитата Сообщение от shyub Посмотреть сообщение
использовать те шрифты, которые есть на КПК
В том то и дело что в папку Fonts вообще нет никаких шрифтов. А найти какую-то информацию на тему "шрифты в Wince" мне не удалось.
Цитата Сообщение от shyub Посмотреть сообщение
Я использую компонент jujiboutils, в котором есть JLabe
Компонент нужно устанавливать отдельно? Что-то я его не нашел в 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 и как с ним работать. А то все что нашел - на английском языке, понять приведенные примеры почти невозможно
Еще такой вопрос: как убрать нижнюю строку меню? Фото прикрепляю.
Миниатюры
WinCE, КПК, МК и датчик влажности  
Вложения
Тип файла: rar Новая папка (2).rar (3.06 Мб, 2 просмотров)
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 Посмотреть сообщение
Lazarus - настройка.rar
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, компилирую - Ошибка!
Компиляция пакета CPortLib10 1.0: Код завершения 1, ошибок: 1
CPort.pas(28,1) Fatal: Syntax error, "identifier" expected but "TYPE" found
Сама строка из файла:
Pascal
1
2
3
type //"ругается" на эту строку
  // various types
  TPort = string;
0
2 / 2 / 0
Регистрация: 29.09.2010
Сообщений: 34
10.11.2015, 11:57  [ТС] 15
Прикрепляю мой проект
Вложения
Тип файла: rar Новая папка (2).rar (2.99 Мб, 9 просмотров)
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, но и здесь не получилось:
synaser.pas(108,3) Fatal: Невозможно найти модуль termio, используемый в synaser.
Немного поискав в гугле наткнулся на эту статью: http://forum.lazarus.freepasca... pic=6485.0. Исходя из ее содержимого (точнее из того что я смог перевести) LazSerial не работает на WinCE и ARM. Если это не так то прошу помочь с LazSerial.
Иду далее: SdpoSerial

Добавлено через 2 часа 48 минут
SdpoSerial тоже ругается Как это исправить?
Package SdpoDebayer 1.0: Выполнить команду до: невозможно найти исполнимый файл "", ошибок: 1
Panic: внутренняя ошибка: невозможно найти исполнимый файл ""

Качал здесь: 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 то появляется ошибка:
Компиляция проекта, ОС: wince, процессор: arm, цель: COM_Port.exe: Код завершения 1, ошибок: 1, подсказок: 3
unit1.pas(261,36) Hint: Local variable "A" does not seem to be initialized
unit1.pas(267,29) Hint: Local variable "maska" does not seem to be initialized
unit1.pas(272,10) Error: Identifier not found "GetOverlappedResult"
unit1.pas(278,37) Hint: Local variable "err" does not seem to be initialized
Для обычного Windows компилируется без проблем
0
11.11.2015, 23:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2015, 23:56
Помогаю со студенческими работами здесь

Как сделать датчик, который замеряет уровень влажности и кислотности почвы
Доброго время суток. Прошу помощи в старших товарищей. Начинаю делать проект. Надо зделать датчик...

Подключение к Arduino UNO 4-х вентиляторов + датчик воды + датчик грунта
Добрый день. Прошу помочь. Требуется подключить к Arduino UNO 4 вентилятора (куллер комп....

Помогите со схемой.Нужен датчик удара и датчик прикосновения
Купил дешёвую сигнализацию, время попользовался, теперь хочется доработать. В электроники я так...

Atmega + датчик освещенности. Помогите подобрать датчик
Хочу измерять освещенность внутри теплицы и на улице. Посоветуйте датчик освещенности и может есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru