роботы робототехника микроконтроллеры


 Страниц (2): [1] 2 »   

> Описание: Работа с периферией и портами.
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



Выделено в отдельную тему из темы "Задачки на GameLOGO"
Пока не сильно вдавался в подробности. есть вопрос:
Есть ли какая нибудь связь GameLOGO "наружу" ?

Было бы не плохо иметь какие то сигналы, (по СОМ-порту) что бы можно было управлять реальной "черепашкой"...

ADD: Вроде бы единственные сигналы "наружу" - это звук.
ну... что уже, собственно, не плохо :)
 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



Выделено в отдельную тему из темы "Задачки на GameLOGO"
В старых версиях была возможность управления и опроса LPT? Потом за ненадобностью эта опция была ликвидирована.
Можно сделать и COM.
А в идеале и кросс-транслятор под WinAVR. Только надобности пока не было. Замешательство
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



Admin, вот СОМ - было бы не плохо.
оссобенно, если в обе стороны связь была бы ...
 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



А как команды назвать?
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



может быть , все эти
"вперёд12
назад 45
поворот 90"

сразу дублировать на порт...
и ввести переменную коррекции, что б можно было масштабировать единицы измерения:
"вперёд 1" - что б в порт отправляло "вперёд 1*k" (лучше заменить латиницей или английским эквивалентом слов)

кстати, LOGO при запуске зачем то английскую раскладку ставит... у меня немецкая уже стоит :)
а ещё не получается скопировать из окна LOGO кирилицу почему то ...
 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



А как в таком случае дублировать циклы и условия?
Может быть, лучше отдельные команды для работы с портом?

nest пишет:
кстати, LOGO при запуске зачем то английскую раскладку ставит... у меня немецкая уже стоит Улыбка


GameLogo не затачивался под немецких пользователей. Улыбка Теперь надо будет учесть.
На самом деле он пытается поставить русскую раскладку. Тащусь

nest пишет:
а ещё не получается скопировать из окна LOGO кирилицу почему то ...


Текстовый компонент дореволюционный в GameLogo. Его современная продукция дядюшки Билла не всегда нормально понимает, хотя он тоже от дядюшки Билла.
 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



Admin пишет:
Может быть, лучше отдельные команды для работы с портом?

если не сложно - это лучший вариант :)

а ещё: что то я не нашёл в LOGO функции задержки. что б как deley(30). пришлось циклом притормаживать :)
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Для всего этого было бы не плохо как-то унифицироваться по UART-командам...

(Отредактировано автором: 10 Декабря, 2009 - 16:24:22)

 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



nest пишет:
а ещё: что то я не нашёл в LOGO функции задержки. что б как deley(30). пришлось циклом притормаживать Улыбка


ПАУЗА 30

Но можно и циклом. Все равно в основе большинства deley - обычный цикл с nop'ом. Улыбка

-dead- пишет:
Для всего этого было бы не плохо как-то унифицироваться по UART-командам...


А зачем? В чем смысл унификации в данном случае? GameLogo - учебная среда.
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Если это разовая задача, подцепить и поиграть - тогда конечно не надо никакой унификации.

(Отредактировано автором: 10 Декабря, 2009 - 16:24:00)

 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



-dead- пишет:
Но если это разовая задача, подцепить и поиграть - тогда конечно не надо никакой унификации.


Да, приблизительно так, наверное. Когда человек что-то делает сам, то испытывает удовольствие от процесса. Может быть, он попробует сам придумать свою систему команд. Поэтому, мне кажется, если приделывать к GameLogo управление COM-портом, то стоит оставить возможность для самостоятельного творчества.

Проблемы унификации и не только мне видятся совсем в другом: скорость (передачи и опроса), таймауты, безглючная реализация под различные Win-среды (Microsoft чудесная компания)...
Кроме того, в GameLogo только один тип переменных - числовой.
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Admin пишет:
Когда человек что-то делает сам, то испытывает удовольствие от процесса. Может быть, он попробует сам придумать свою систему команд. Поэтому, мне кажется, если приделывать к GameLogo управление COM-портом, то стоит оставить возможность для самостоятельного творчества.

Хм, а GameLogo выдаёт конечное число команд? Можно их типы перечислить? В принципе можно шаблоны команд задать во внешнем файле с номером COM-порта и настройками его.

Admin пишет:
Проблемы унификации и не только мне видятся совсем в другом: скорость (передачи и опроса), таймауты, безглючная реализация под различные Win-среды (Microsoft чудесная компания)...
Кроме того, в GameLogo только один тип переменных - числовой.

А в чем у вас GameLogo написан?
(Добавление)
Под C++ Builder компонента SlyComm вроде почти везде где пробовал работает.

(Отредактировано автором: 10 Декабря, 2009 - 16:23:27)

 
 Top
nest Администратор Post Id



Администратор


Сообщений всего: 4866
Дата рег-ции: Сент. 2009  



Речь о любой связи GameLOGO наружу, а не об унификации её под какой либо стандарт.
С точки зрения кодинга или HW-части адаптировать один стандарт в другой - "пятиминутное дело".
(своё сообщение я удалил что бы уменьшить "цирк", остальное - на усмотрение каждого).
 
 Top
-dead- Post Id


Президент


Сообщений всего: 966
Дата рег-ции: Февр. 2009  



Как я себе вижу этот конфигурационный файлик (думаю можно принять параметры 8N1 как стандарт, менять только скорость и номер порта):

COM_PORT=4
COM_SPEED=115200
POWER_ON="power=1"
POWER_OFF="power=0"
BRUSH_ON="brush=1\n"
BRUSH_OFF="brush=0\n"
ROTATE_LEFT="rotate(-%d)\n",k=1,b=0
ROTATE_RIGHT="rotate(%d)\n",k=1,b=0
MOVE_FORWARD="move(%d)\n",k=1,b=0
MOVE_BACKWARD="move(-%d)\n",k=1,b=0

k и b - коэффициенты позволяющие нормализовать параметры по формуле выхода y=kx+b

и внутри строки разрешаются описания параметров типа %d, %h или в виде %3.2d, т.е. 3 знака обязательно должны быть до запятой и 2 после запятой (например 020.45) или в упрощенном виде %4d, т.е. 4 знака обязательно должны быть (например 0024).
(Добавление)
nest пишет:
(своё сообщение я удалил что бы уменьшить "цирк", остальное - на усмотрение каждого).

Я тоже, "Sector clear!" Улыбка

(Отредактировано автором: 10 Декабря, 2009 - 16:25:51)

 
 Top
Admin Администратор Post Id


Администратор


Сообщений всего: 897
Дата рег-ции: Май 2006  



-dead- пишет:
Хм, а GameLogo выдаёт конечное число команд? Можно их типы перечислить?


Пока никаких команд он не выдает.

-dead- пишет:
Под C++ Builder компонента SlyComm вроде почти везде где пробовал работает.


Можеть быть. Надо попробовать под билдером сделать dll, но, честно говоря, я последнее время ни в чем не уверен. Такая чехарда пошла... В XP что-нибудь отладишь, потом смотришь, в Висте нормально не работает ничего. Теперь еще эта семерка косая...

----

8,1 - это да, плюс отсутствие контроля четности, скорость по умолчанию поставить 9600, наверное.

А конфигурационный файл я что-то вообще в толк взять никак не могу. Зачем все это? Если мне, например, нужно обеспечить связь с каким-нибудь устройством через COM, то что я должен буду делать с таким набором команд?
Как-то все видится несколько проще и гибче. Если отвлечься от настроек, то по сути надо реализовать две простые команды - ПОСЛАТЬ и ПРИНЯТЬ.

----

Слева вверху есть две выезжающих панельки. Одна побольше, другая поменьше. Они когда-то были сделаны под LPT и COM. LPT был реализован двумя рядами загорающихся кнопочек. Портом можно было управлять программно, а можно - просто нажимая на кнопочки.

Вот так это выглядело в программе.




переменная х
старт:
повторить для х = 1 до 5 {
выход х = 1
пауза 50
выход х = 0
пауза 50
}
повторить для х = 4 до 2 шаг -1 {
выход х = 1
пауза 50
выход х = 0
пауза 50
}
перейти к старт

Прикреплено изображение
logo_lpt.png

 
 Top
Страниц (2): [1] 2 »
« GameLOGO »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru