Как стать автором
Обновить

Комментарии 42

Хорошая статья!!! Спасибо!
Спасибо за оценку :) Старалась :)
Фиксированная граница между длительностью точки и длительностью тире — неудобна.
А можно для определения воспользоваться переменным резистором, крутя его для подстройки длины нажатия.
Мне кажется, полностью цифровая подстройка более удобна. Кроме того, логично не подкручивать резистор, подбирая удобные для себя параметры, а заставить устройство анализировать точки-тире-паузы, подстраиваясь под скорость пользователя. Задача вполне решаемая, но для практического применения смысла не имеющая. Куда проще точки и тире вводить разными кнопками. И анализировать ничего не надо, и скорость печати повышается, и две кнопки дают больше вариантов управления. Например полсекунды удержания левой кнопки переключают на кириллицу, полсекунды правой — на латынь. А две одновременно нажатые кнопки позволяют сделать еще что-то :)
Азбука Морзе тем и хороша, что нужен всего 1 контакт для передачи символа. В противном случае снова перейдем к клавиатуре на весь набор символов ;).
А автоматическую подстройку под скорость пользователя можно сделать, задав ему проигрывание заранее заданного куска (светодиод-то есть :) ).
У меня задача — создание удобной аккордной клавиатуры (если такая вообще возможна). Морзе-клавиатура — это предельный случай :) Всего одна кнопка. Я хочу поэкспериментировать с числом кнопок, принципами ввода. Возможно, вместо кнопок удобней использовать микро-джойстики… В общем, хочу попробовать найти вариант, с которым окажется действительно _удобно_ работать.
А как Вам такое устройство?
Спасибо за ссылку :) Девайс любопытный, но, как я понимаю, «заточен» не совсем под те же задачи. С его помощь можно позиционировать курсор, эмулировать нажатия правой/левой кнопок мыши — но не печатать. Если я правильно разобралась в конструкции, фраза «позволяет печатать на клавиатуре, приведя руку в горизонтальное положение» означает лишь то, что устройство не мешает печатать на обычной клавиатуре. Мне же интересна замена стандартной клаве, позволяющая вслепую печатать на ходу.
К сожалению, да. Оно всего лишь не мешает печатать. Однако, представьте, как было бы удобно использовать нечто подобное в совокупности с виртуальной клавиатурой!
Спасибо за статью. Давно хотел приобрести себе ардуино, но решился только после Вашей прошлой статьи. Теперь жду, когда уже стану счастливым обладателем и тоже смогу начать экспериментировать)
Удачи в экспериментах :) Игрушка действительно любопытная — и главное позволяет начать осваивать что-то параллельное программированию. Любопытно открывать для себя совершенно другой мир со в чем-то иной логикой :)
Расскажите, как подключать и управлять разными двигатели (шаговыми, обычными)
В процессе освоения — буду писать :) Пока на базе этого девайса планирую разобраться с RGB-диодом и вибро-моторчиком. Также на очереди bluetooth-модуль и жк-экран.
даешь разных схем интересных и полезных, а то надоели в этом блоге статьи про отпиливание куска пластмассы и приклеиваение различных частей, вместо инженерных поделок (пусть и простых :-) )
Тогда можно почитать и другие блоги, например могу порекомендовать mk90.blogspot.com
ИМХО, код морзе — не лучший вариант. С одной кнопкой лучше использовать какой-нибудь префиксный код (Шеннона-Фано или лучше даже Хаффмана). Таким образом можно и сократить количество нажатий и убрать паузу между вводом букв.
Мне кажется, основная проблема — не в минимизации нажатий. Если для ввода текста, к примеру, придется заучить наизусть таблицу ASCII-кодов, вряд ли подобный девайс станет популярным. Ввод прежде всего должен быть интуитивен, чтобы его можно было достаточно быстро и легко освоить. И, боюсь, для аккордных клавиатур эту задачу пока никто не решил…

В принципе, если под каждым пальцем расположить трехпозиционную качельку, этого (3^5 = 243) хватит для ввода любого нужного печатного символа. Но необходимость запоминания кодов делает идею нереальной для практического использования :(
Где ассемблер? =)
Ассемблер где-то там, под слоем С++ ;)
А зачем он здесь? С ассемблером я имела дело на Z80 и на x86, но это было давно. В данном случае скорость разработки важнее оптимальности и скорости кода :)
а зачем?
И всё равно для меня сложновато(
R3 как раз точно нужен — он при отпущенной кнопке подтягивает сигнал на седьмом порту к «земле», логическому «нулю». Без R3 на 7 порт при отпущенной кнопке идет мусор. Может, Вы имели в виду, что не нужен R2? Его действительно нет в схеме подключения кнопки из книжки «Getting Started With Arduino». Собственно, подключить третий резистор (R2) мне посоветовали здесь: community.livejournal.com/ru_arduino/10922.html?thread=66218#t66218
порт в режим входа, при разомкнутой кнопке он резистором подтягивается к питанию, на входе лог.1
при замкнутой кнопке ток стекает на землю и на вход не попадает — на входе лог.0
так что R3 не нужен, автор выше прав
В книжке-учебнике по Ардуино (Getting Started With Arduino) приводится вариант подклчения кнопки через R3, без R2. При этом нажатая кнопка — 1, отпущенная — 0:
Чем плох вариант, когда нажатая кнопка — 0, отжатая — 1 от внутреннего пулапа АВРки? Вообще внешняя обвязка не нужна.

И еще надо учитывать, что кнопка — штука механическая, при нажатии возникает «дребезг контактов». Поэтому не помешал бы программный debouncing.
Да в принципе ничем не плох. Просто я учусь работать с Ардуино по книжке — и беру оттуда варианты подключения. Очень уж не хочется пожечь девайс, который ждала месяц…

Ну и параллельно пытаюсь понять — почему нужно подключать именно так, а не иначе.
Что касается «дребезга» — почему от него стоит избавляться программно, а не при помощи конденсатора?
Лишний кусок кода или дополнительная обвязка — это вопрос персональных предпочтений. А для программного debouncing'а у вас в коде уже и так есть задел с подсчетом интервалов. Еще немного проверок там, где if ((timeRelease — timePress) > MAX_DOT_PRESS_TIME), и — voila — программная защита от дребезга готова.
Идея в том, чтобы игнорировать нажатия и отпускания, длящиеся менее какого-то интервала? Действительно логично, вставлю :)
обычно делают так
www.seattlerobotics.org/encoder/mar97/basics1.gif
и обходятся одним резистором на кнопке

вариант без R2 втречается реже, сейчас не могу найти почему,
вроде это связано с рассеиваемой мощьностью на резисторах
Сейчас обычно включают подтягивающие резисторы в микроконтроллере а внешние выбрасывают совсем.
Ну, в почти каждом микроконтроллере есть так называемые подтягивающие резисторы, которые могут включатся программно(ардуиновцам сложно понять, привет ассемблер=)). Подтягивают они на плюс, т.е. управление осуществляется по отрицательной логике- 5В- лог «0», 0В- лог «1».
Подробнее читаем тут easyelectronics.ru/avr-uchebnyj-kurs-ustrojstvo-i-rabota-portov-vvoda-vyvoda.html (Ди, респект за Упячку =)
А вообще дожились: никаких тебе принципиальных схем только картинки подключения проводочков. Прогресс…
Собственно, набор тем и хорош (с моей точки зрения), что позволяет даже чайнику сделать что-то работоспособное. Заодно заставляя потихоньку изучать предмет :) Так же в свое время воспринимался Macromedia Flash — возможность для чайников, не знающих и не желающих изучать программирование, написать что-то графическое, интерактивное.
Так оно ж все цифровое, здесь часто компактнее словами написать. Фраза типа «эта хрень подключена к MCU по SPI» достаточно точно опишет ситуацию, а даташиты позволят додумать соединения. А побочным эффектом весь этот процесс заставит понять, что происходит внутри силикона.
М-м-морзе =)
А Вы не КВ-радиолюбительница случайно?
Нет :) Была бы я радиолюбительницей — задавала бы куда меньше глупых вопросов :) Что касается Морзе — в детстве в «Пионерской Правде» печатались материалы по обучению азбуке Морзе. Так что, приходя домой из школы (2 или 3 класс) я звонила в дверь «привет». Собственно, эти и еще несколько букв — все, что я помню из азбуки Морзе.

Азбука Морзе в данном случае хороша тем, что она проста для реализации и проверена временем. Хотя, конечно, ей недостает многих символов, необходимых при работе с компьютером.
Как здорово!

А в азбуку Морзе хоть @ недавно добавили, уже неплохо :)
и статьи на такие темы пишет девушка! это реально круто!
Камрады, я вам по секрету скажу — радиолюбители 100 лет уже как используют так называемые «ямбические ключи» для работы азбукой Морзе…
www.ruqrz.com/?p=1135
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории