Не так давно мне понадобилось реализовать совершенно нетипичную для меня задачку: подключить самосборный внешний девайс к компу...но по-порядку.
Игрушка-девайс представляет из себя веб камеру, двигающуюся на сервоприводах. По задумке, она должна двигаться по некоторому алгоритму, причём иметь возможность управления ей:
1. с компа
2. с какого-то кнопочного интерфеса (но это задача поздняя)
3. работать по заданному шаблону, не будучи подключённой к компу.
Решить эту задачу одним махом не получилось, поэтому решил её разбить: для начала мне понадобилось сделать управление сервами с компа. Однако, сам я программист и в микросхемах по меньшей мере слабоват, а получить квалифицированную помощь просто не от кого.
Подумав, пришёл к выводу, что механизм должен работать примерно по следующей схеме: комп <-> управляющий контроллер (например ATMega168*) <-> девайс
Полагаю, сопрячь юсб порт прямо с контроллером не получится, понадобится некоторая оснастка. Почитав информацию, пришёл к выводу, что реально подойдёт только 2 варианта: rs232 и usb/
rs232 интерфейса на моём системнике не оказалось, а подключённый переходник юсб-ком почему-то давал на выводных ногах микросхемы max232 0.3-1.5 вольта, так что от такого решения пришлось отказаться (кстати, если кто-то знает почему так получилось - буду признателен за ликбез!). Таким образом осталось использовать только USB.
Если я всё правильно понял, то подключить usb к контроллеру можно только через некоторый промежуточный узел. Например, ft232bl.
Иными словами, задача, в процессе реализации, немного изменилась: понадобилось сделать не просто управляющий контроллер, а программатор+управляющий контроллер, причём, чтобы через один и тот же интерфейс можно было бы и программировать контроллер, и посылать ему некоторые управляющие сигналы. А отключив usb - предоставить возможность контроллеру управлять девайсом на своё усмотрение.
Ну и, как вы поняли, вопросов у меня возникло сразу премного, особенно если учесть, что я программист, а последние микросхемы, с которыми довелось поработать - были ещё советские. Поэтому я, с вашего позволения, задам мучающие меня вопросы и буду благодарен за ответы на каждый:
1. ft232bl имеет довольно много выводов, притом что, если не ошибаюсь, имеет 1 канал на приём, 1 на передачу в дуплексном режиме. Каким образом приходящие данные "усваиваются" этой микросхемой и как ими воспользоваться? Нужны ли какие-то специальные обвязки для этой микросхемы?*
2. Насколько я понимаю, микроконтроллеры AVR довольно легко прошиваются. Но не понимаю - как МК понимает, что в него сейчас поступают данные прошивки, а сейчас некий управляющий сигнал? Или для программирования МК просто используются разные ножки?
3. Рассматривая схемы - часто видел в обвязке МК кварц. Для чего он используется? Нужен ли он? Как он выбирается и что будет, если его не использовать?
4. Можно ли сделать управляющую схему таким образом, чтобы "часть" программатора могла бы использоваться отдельно, скажем, для прошивки иных МК? Предполагается, что "управляющий" сегмент, возможно, придётся заменить, так вот, идея менять его так, чтобы программатор мог оставаться общим.
5. Возможно у Вас есть советы относительно того, как всё это нужно реализовывать. Пожалуйста, поделитесь ими со мной!!!
PS. Дорогие форумчане! Я прекрасно понимаю, что многие вопросы тут, вероятно, уже обсуждались, а иные - так вам и вовсе покажутся наивными. Прошу, проявите терпимость: то, что для вас, как для профессионалов, интуитивно понятно - для меня совершенно неочевидно. И даже наткнувшись на нужную мне информацию - рискую пропустить её, если мне не скажут что мне нужна именно она только потому, что не пойму этого.
Заранее всем спасибо
*ATMega168* выбран произвольно - такой же используется в Arduino, однако использование Arduino мне не подходит.