Автор Тема: Микроконтроллеры для начинающих  (Прочитано 68085 раз)

Оффлайн ARV

  • Member
  • **
  • Сообщений: 19
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« : Января 19, 2007, 20:53:05 »
Предлагаю начать обсуждения с чтения [http://arvresearch.nm.ru/text/mc_for_beginner1.dhtml] статей и высказывания соего мнения о них.
« Последнее редактирование: Апреля 09, 2010, 20:46:35 от john »

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #1 : Февраля 27, 2007, 23:15:39 »
Уважаемые спецы!

Передо мной возникла такая задача: нужно сделать систему управления двигателем постоянного тока через usb-порт компьютера. Идея такова, что через порт передается цифровой сигнал, который определяет закон изменения напряжения питания нескольких двигателей (предположим, четыре). Далее, этот сигнал делится на четыре, в каждом из которых 16 разрядов ( может быть можно 8, я уточню), которые, в свою очередь, преобразуются в аналоговый сигнал, то есть, динамически изменяемое напряжение, которое и является управляющим воздействием на этот хренов двигатель...

Вопрос: что нужно для реализации этого проекта?

С уважением, Солнцеворот

Оффлайн john

  • Administrator
  • Hero
  • *****
  • Сообщений: 11751
  • Репутация: +26/-16
    • http://r9al.ru
    • E-mail
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #2 : Февраля 28, 2007, 00:43:35 »
Я бы посоветовал развалить задачу на две части, а именно реализовать устройство сначала для более простого порта, например СОМ (там фактически потребуется взять адресные регистры, ЦАПы и силовые элементы, ну и конечно программму управления), а затем реализовать что-то типа адаптера USB-COM. Благо для адаптреов сейчас все есть и чипы и драйвера, в крайнем случае использовать готовый адаптер.

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #3 : Февраля 28, 2007, 02:12:00 »
Цитата: Солнцеворот
Уважаемые спецы!
...Далее, этот сигнал делится на четыре, в каждом из которых 16 разрядов ( может быть можно 8, я уточню), которые, в свою очередь, преобразуются в аналоговый сигнал, то есть, динамически изменяемое напряжение, которое и является управляющим воздействием на этот хренов двигатель...

Может быть в качестве оконечного устройства использовать драйвер L293D, который может управлять двумя двигателями. Т.е. две микросхемы - четыре двигателя. Управлять же их скоростями и направлением вращения и пр. наверное лучше микроконтроллером через ШИМ.
« Последнее редактирование: Февраля 28, 2007, 02:16:21 от Vladimir »

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #4 : Февраля 28, 2007, 02:50:42 »
Спасибо за ответы, ребята. В том то штука и заключается, что для изменения скорости вращения ДПТ (двигателя постоянного тока) нужно изменять напряжение, а микросхемка L293D этого делать не умеет, хотя спасибо за совет, я думаю он еще пригодится. У меня затруднение вызывает особенно вот такая деталь: как разделить сигнал с одного провода на, скажем, 4? А их, в свою очередь, превратить в аналоговый сигнал.

П.С. Что такое ШИМ?

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #5 : Февраля 28, 2007, 02:57:52 »
Широтно-импульсная модуляция.
Скорость изменять эта микросхемка умеет.
Эта хреновина чаще всего используется в робототехнике.
Ссылок на нее в инете много. Читайте описание.
Что касается разделения сигнала на 4. Это как?
Из последовательного в параллельный или я чего-то не понял?
Информация с сайта производителя. "L293D содержит сразу два драйвера для управления электродвигателями небольшой мощности (600мА на канал, в пике 2А). Имеет две пары входов для управляющих сигналов и две пары выходов для подключения электромоторов. Кроме того, у L293D есть два входа для включения каждого из драйверов. Эти каналы используются для управления скоростью вращения электромоторов с помощью широтно модулированного сигнала (ШИМ)."
« Последнее редактирование: Февраля 28, 2007, 03:11:36 от Vladimir »

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #6 : Февраля 28, 2007, 03:09:23 »
Спасибо, Владимир.

Получается так. Из последовательного в параллельный. Почему? - в usb выход последовательный, но нужно организовать несколько параллельных. Как это делается в современном мире? (в бывшем мире, я знаю, использовались дешифраторы). Это можно сделать с помощью микроконтроллера?
« Последнее редактирование: Февраля 28, 2007, 03:15:47 от Солнцеворот »

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #7 : Февраля 28, 2007, 03:17:19 »
Так ведь в этом случае где-то 64 разряда нужно. Скорее всего после микроконтроллера дешифратор все же понадобится или регистры. Регистрами же тоже кто-то должен управлять. Вариантов, мне видится, два. Либо Микроконтроллер с кучей ног, либо несколько микроконтроллеров. Хотя можно регистры с последовательным входом использовать, а дальше ЦАП.
« Последнее редактирование: Февраля 28, 2007, 03:27:13 от Vladimir »

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #8 : Февраля 28, 2007, 03:24:59 »
Владимир, еще такой вопросик, как можно сделать так, чтобы управляющую программу контроллер считывал с Flash/MMC ? Что-то вроде возможности быстро поменять программу, по которой работает программатор (или правильней сказать привод).

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #9 : Февраля 28, 2007, 03:32:50 »
Я не понял. Нужно динамично менять программу где? На РС (так это в самой управляющей программе должно быть предусмотрено) или ЧИП перепрошивать?

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #10 : Февраля 28, 2007, 03:38:53 »
Щас объясню. В случае работы без компа. Устройство как у mp3 плеера, только на выходе - не музыка, а управляющий сигнал ( аналоговый, опять-таки). Контроллер считывает значение параметров (напряжения) из записаной на флешку программы и устанавливает его. В каждый момент времени напряжение меняется. Я так понимаю, что программный код контроллера не меняется, он просто составлен таким образом, что позволяет брать данные с флешки.

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #11 : Февраля 28, 2007, 03:49:22 »
Теперь ясно. Здесь на форуме обязательно кто-нибудь поможет, только задача должна быть четко сформулирована.

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #12 : Февраля 28, 2007, 03:54:07 »
Спасибо, Владимир. Я просто никогда этими вещами не занимался, поэтому и неразбериха вышла. Все. Ухожу спать. Спокойной ночи

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #13 : Февраля 28, 2007, 03:56:46 »
Удачи!

Оффлайн ARV

  • Member
  • **
  • Сообщений: 19
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #14 : Марта 09, 2007, 14:52:49 »
Солнцеворот, вы сформулировали очень туманно все... Если вам надо управлять 4-я моторами постоянного тока по командам от компьютера, то в общем виде тут сформулировано, но рискну уточнить: берется микроконтроллер (МК), соединяется с компьютером по RS-232 (СОМ-порт) или через переходник с USB, выходы МК управляют силовыми ключами (или теми самыми микросхемами, что упомянуты ранее). Практически любой современный МК имеет достаточно возможностей для управления не только 4-я, но и 10-ю моторами при помоши ШИМ. Что касается обновления программы МК от какого-то устройства, то аналоговый принцип хранения-пересылки для этого категорически не подходит из-за крайне низкой помехоустойчивости. МК, которые могут сами для себя обновлять программы в настоящее время довольно много (в них как раз флеш-память и используется), проблемы тут особой нет - через тот же COM-порт, например.
Может, попробуете более конкретно сформулировать задачу? Или задавайте дополнительные наводящие вопросы, ибо более конкретного пока сказать нечего...

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #15 : Марта 09, 2007, 23:53:23 »
Задача.
1) Написание программы под виндоус, в которой, меняя параметры, грубо говоря, флажки и цифирки, можно регулировать скорость вращения ДПТ и шагового двигателя.
2) Объединить программу и силовую часть посредством компьютерного порта usb или bluetooth.

Перспективы:
1) Возможность работы приводов по заданой программе-таблице, записаной на внешнем запоминающем устройстве типа флешки. Программно (таблично) задаются только скорости и направление вращения в заданые моменты времени.
2) Возможность перепрошить программу микроконтроллера, то есть реакцию на входящую информацию

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #16 : Марта 10, 2007, 00:54:31 »
Цитата: Солнцеворот
Задача.
1) Написание программы под виндоус, в которой, меняя параметры, грубо говоря, флажки и цифирки, можно регулировать скорость вращения ДПТ и шагового двигателя.
2) Объединить программу и силовую часть посредством компьютерного порта usb или bluetooth.

1. Как будут передаваться сигналы? (радио, ИК, по ТЛФ. паре и т.д.)?
2. С МК определился?
3. Нужна ли помощь в написании программы?
« Последнее редактирование: Марта 10, 2007, 01:10:09 от Vladimir »

Оффлайн Солнцеворот

  • Member
  • **
  • Сообщений: 15
  • Репутация: +0/-0
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #17 : Марта 10, 2007, 12:16:54 »
Цитата: Vladimir
1. Как будут передаваться сигналы? (радио, ИК, по ТЛФ. паре и т.д.)?
2. С МК определился?
3. Нужна ли помощь в написании программы?


1. Сигналы будут передаваться по usb (начнем по-порядку)
2. С МК не определился
3. Помощь нужна. Я правда не знаю с чего начать...

У меня есть прога WinAVR, для микроконтроллеров Atmel. Вывод - нужно брать атмеловский контроллер.
У меня есть исходники по работе с MMC Flash. Они под Pic расписаны.. Вывод...
Вот и думаю...

Оффлайн john

  • Administrator
  • Hero
  • *****
  • Сообщений: 11751
  • Репутация: +26/-16
    • http://r9al.ru
    • E-mail
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #18 : Марта 10, 2007, 13:40:52 »
Цитата: Солнцеворот
1. Сигналы будут передаваться по usb (начнем по-порядку)

Все-таки рекомендую использовать COM, а после отладки переключить на USB - не проблема.

Цитировать
3. Помощь нужна. Я правда не знаю с чего начать...

От простого к сложному. Как обычно. Силовая часть готова?

Цитировать
У меня есть прога WinAVR, для микроконтроллеров Atmel. Вывод - нужно брать атмеловский контроллер.
У меня есть исходники по работе с MMC Flash. Они под Pic расписаны.. Вывод...
Вот и думаю...

Это все не очень важно...

Оффлайн Vladimir

  • Full
  • ****
  • Сообщений: 6838
  • Репутация: +1/-0
    • http://
    • Личное сообщение (Оффлайн)
Микроконтроллеры для начинающих
« Ответ #19 : Марта 10, 2007, 14:39:00 »
Цитата: Солнцеворот
1. Сигналы будут передаваться по usb (начнем по-порядку)
Вот и думаю...

Опять двадцать пять.
Каким образом компьютер будет общаться с роботом? "Сигналы будут передаваться по usb" - не ответ.
И мне думается, что понадобятся два МК.

 

Последние сообщения на форуме: