![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 28.02.2013
Сообщений: 6
|
![]()
есть у меня платка с процессором at90usb162, задумал я приспособить его для управления простейшим роботом-манипулятором на 4-х степенях свободы. сам робот состоит из редукторов и коллекторных моторов с постоянными магнитами. идея такова. на моторах стоят датчки Холла, с них идут сигналы числа оборотов. в приложении на ПК задаёшь программу действий в виде step-dir количество оборотов в том то направлении для такого то звена.
на данный момент у меня есть простейшая модель в железе и программа - пример для управления четырьмя светодиодами. по ходу дела изучаю программирование на VС++, мои первые шаги переделать кнопки из примера под другой алгоритм срабатывания. сейчас кнопки действуют как триггеры: нажал отпустил, диод горит. нажал отпустил диод погас. мне же надо переделать алгоритм под: нажал держишь, диод горит, отпустил или увёл стрелку мыши, диод погас. Подскажите идею в какую сторону двигаться? Последний раз редактировалось Klewer; 01.03.2013 в 07:28. Причина: добавил файл исходника |
![]() |
![]() |
![]() |
#2 |
Регистрация: 28.02.2013
Сообщений: 6
|
![]()
на моей плате светодиод штатный загорается от кнопки 3, с ней и разбираюсь. думаю может подправить алгоритм действия представленный блоком
void CUsbHidDemoCodeDlg::OnLed3() { if(Led3 == false) { Led3 = true; m_Led3.SetWindowText(_T("LED 3 ON")); DYNCALL(writeData)((UCHAR *)"13"); } else { Led3 = false; m_Led3.SetWindowText(_T("LED 3 OFF")); DYNCALL(writeData)((UCHAR *)"03"); // CUsbHidDemoCodeDlg::OnLed3(); // m_Led3.SetWindowText(_T("LED 3 ON")); // DYNCALL(writeData)((UCHAR *)"13"); // MessageBeep(0); } } внизу куски закомментенного кода моя дребедень всякая, пробы. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]()
...добавьте:
- WEB сервер в AVR (есть готовые TCP стеки) для возможности контроля по сети - блютуз-модуль с прозрачным UART (есть до 9-ти баксов серии HC-XX) для удаленного контроля со смарта/КПК/ноута - присобачьте акселерометр (применений множество) - ...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
![]() |
![]() |
![]() |
#4 | |
Регистрация: 28.02.2013
Сообщений: 6
|
![]() Цитата:
короче покачто перечитываю и очень стараюсь вникнуть в теорию бутонов (кнопарей) к сожалению, компилятор пока не порадовал собранным успешно скриптом, разбираюсь с ошибками |
|
![]() |
![]() |
![]() |
#5 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Цитата:
Цитата:
================= По поводу стеков, тоже ничто не мешает параллельно поизучать готовые аппноты, благо есть и переводы на русский. По поводу акселерометров, есть готовые библиотеки-модули. В общем, можно оперировать кирпичиками на первом этапе, попутно вникая в тему. Удачи.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||
![]() |
![]() |
![]() |
#6 | |
Регистрация: 28.02.2013
Сообщений: 6
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Кстати, совсем необязательно что-то дополнительно загружать в МК после.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 28.02.2013
Сообщений: 6
|
![]()
в контроллер я конечно больше ничего не зашивал, только скомпилировал то что дали в примере к плате, частоту там подправил кварца. сейчас я занимаюсь именно приложением, управляющим платой. проблема в моём малом освоении С++ на данный момент и у меня не получается переделать кнопки в примере, чтобы работали как мне надо. я выше рассказал.
|
![]() |
![]() |
![]() |
#9 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
![]() Цитата:
Цитата:
Поскольку репорт по два байта и управление чаще в младшем байте, то вся ваша задача сводится к установке соответствующего бита в байте.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
![]() |
![]() |
![]() |
#10 |
Регистрация: 28.02.2013
Сообщений: 6
|
![]()
если оставить ON_BN_CLICKED то срабатывание кнопки будет на отпускании. то есть нажал, ничего не произошло, отпустил - сработало. я использовал визарда, попробовал поменять кликед на дропдаун. визард закомментировал // ON_BN_CLICKED(IDC_LED3, OnLed3), добавил строку ON_NOTIFY(BCN_DROPDOWN, IDC_LED3, &CUsbHidDemoCodeDlg::OnDropdownLed3 ), также внизу по тексту визард закомментил //void CUsbHidDemoCodeDlg::OnLed3()
//{ // // if(Led3 == false) { // Led3 = true; // m_Led3.SetWindowText(_T("LED 3 ON")); // DYNCALL(writeData)((UCHAR *)"13"); // } // else { // Led3 = false; // m_Led3.SetWindowText(_T("LED 3 OFF")); // DYNCALL(writeData)((UCHAR *)"03"); // } // //} и добавил в самом конце void CUsbHidDemoCodeDlg::OnDropdownLed3( NMHDR *pNMHDR, LRESULT *pResult) { LPNMBCDROPDOWN pDropDown = reinterpret_cast<LPNMBCDROPDOWN>(pN MHDR); // TODO: Add your control notification handler code here *pResult = 0; } я туда пробовал добавить свои коды, но ничего пока не получается, но и ошибки к счастью не появляются тоже))) пошла крупная рябь))) void CUsbHidDemoCodeDlg::OnDropdownLed3( NMHDR *pNMHDR, LRESULT *pResult) { LPNMBCDROPDOWN pDropDown = reinterpret_cast<LPNMBCDROPDOWN>(pN MHDR); // TODO: Add your control notification handler code here if(Led3 == false) { Led3 = true; m_Led3.SetWindowText(_T("LED 3 ON")); DYNCALL(writeData)((UCHAR *)"13"); } else { Led3 = false; m_Led3.SetWindowText(_T("LED 3 OFF")); DYNCALL(writeData)((UCHAR *)"03"); } *pResult = 0; } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
USB ручной сканер. Перехват данных в HID режиме | VitalyaVentel | Общие вопросы Delphi | 14 | 28.11.2012 09:31 |
Отправка\приём USB HID | gslim | C# (си шарп) | 12 | 27.01.2012 21:36 |
USB HID плагин для MMB | Mrshilov | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 03.03.2011 21:24 |
Разработка драйвер USB-HID устройства | _dx | Win Api | 5 | 10.06.2009 18:34 |
использование класса USB HID | MenWantToStabAtAny | Общие вопросы C/C++ | 0 | 27.05.2009 23:11 |