форумы для свободного общения

Технический форум => Форум для изучающих микроконтроллеры => Тема начата: ARV от Январь 19, 2007, 20:53:05

Название: Микроконтроллеры для начинающих
Отправлено: ARV от Январь 19, 2007, 20:53:05
Предлагаю начать обсуждения с чтения [http://arvresearch.nm.ru/text/mc_for_beginner1.dhtml] статей и высказывания соего мнения о них.
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Февраль 27, 2007, 23:15:39
Уважаемые спецы!

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

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

С уважением, Солнцеворот
Название: Микроконтроллеры для начинающих
Отправлено: john от Февраль 28, 2007, 00:43:35
Я бы посоветовал развалить задачу на две части, а именно реализовать устройство сначала для более простого порта, например СОМ (там фактически потребуется взять адресные регистры, ЦАПы и силовые элементы, ну и конечно программму управления), а затем реализовать что-то типа адаптера USB-COM. Благо для адаптреов сейчас все есть и чипы и драйвера, в крайнем случае использовать готовый адаптер.
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Февраль 28, 2007, 02:12:00
Цитата: Солнцеворот
Уважаемые спецы!
...Далее, этот сигнал делится на четыре, в каждом из которых 16 разрядов ( может быть можно 8, я уточню), которые, в свою очередь, преобразуются в аналоговый сигнал, то есть, динамически изменяемое напряжение, которое и является управляющим воздействием на этот хренов двигатель...

Может быть в качестве оконечного устройства использовать драйвер L293D, который может управлять двумя двигателями. Т.е. две микросхемы - четыре двигателя. Управлять же их скоростями и направлением вращения и пр. наверное лучше микроконтроллером через ШИМ.
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Февраль 28, 2007, 02:50:42
Спасибо за ответы, ребята. В том то штука и заключается, что для изменения скорости вращения ДПТ (двигателя постоянного тока) нужно изменять напряжение, а микросхемка L293D этого делать не умеет, хотя спасибо за совет, я думаю он еще пригодится. У меня затруднение вызывает особенно вот такая деталь: как разделить сигнал с одного провода на, скажем, 4? А их, в свою очередь, превратить в аналоговый сигнал.

П.С. Что такое ШИМ?
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Февраль 28, 2007, 02:57:52
Широтно-импульсная модуляция.
Скорость изменять эта микросхемка умеет.
Эта хреновина чаще всего используется в робототехнике.
Ссылок на нее в инете много. Читайте описание.
Что касается разделения сигнала на 4. Это как?
Из последовательного в параллельный или я чего-то не понял?
Информация с сайта производителя. "L293D содержит сразу два драйвера для управления электродвигателями небольшой мощности (600мА на канал, в пике 2А). Имеет две пары входов для управляющих сигналов и две пары выходов для подключения электромоторов. Кроме того, у L293D есть два входа для включения каждого из драйверов. Эти каналы используются для управления скоростью вращения электромоторов с помощью широтно модулированного сигнала (ШИМ)."
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Февраль 28, 2007, 03:09:23
Спасибо, Владимир.

Получается так. Из последовательного в параллельный. Почему? - в usb выход последовательный, но нужно организовать несколько параллельных. Как это делается в современном мире? (в бывшем мире, я знаю, использовались дешифраторы). Это можно сделать с помощью микроконтроллера?
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Февраль 28, 2007, 03:17:19
Так ведь в этом случае где-то 64 разряда нужно. Скорее всего после микроконтроллера дешифратор все же понадобится или регистры. Регистрами же тоже кто-то должен управлять. Вариантов, мне видится, два. Либо Микроконтроллер с кучей ног, либо несколько микроконтроллеров. Хотя можно регистры с последовательным входом использовать, а дальше ЦАП.
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Февраль 28, 2007, 03:24:59
Владимир, еще такой вопросик, как можно сделать так, чтобы управляющую программу контроллер считывал с Flash/MMC ? Что-то вроде возможности быстро поменять программу, по которой работает программатор (или правильней сказать привод).
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Февраль 28, 2007, 03:32:50
Я не понял. Нужно динамично менять программу где? На РС (так это в самой управляющей программе должно быть предусмотрено) или ЧИП перепрошивать?
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Февраль 28, 2007, 03:38:53
Щас объясню. В случае работы без компа. Устройство как у mp3 плеера, только на выходе - не музыка, а управляющий сигнал ( аналоговый, опять-таки). Контроллер считывает значение параметров (напряжения) из записаной на флешку программы и устанавливает его. В каждый момент времени напряжение меняется. Я так понимаю, что программный код контроллера не меняется, он просто составлен таким образом, что позволяет брать данные с флешки.
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Февраль 28, 2007, 03:49:22
Теперь ясно. Здесь на форуме обязательно кто-нибудь поможет, только задача должна быть четко сформулирована.
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Февраль 28, 2007, 03:54:07
Спасибо, Владимир. Я просто никогда этими вещами не занимался, поэтому и неразбериха вышла. Все. Ухожу спать. Спокойной ночи
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Февраль 28, 2007, 03:56:46
Удачи!
Название: Микроконтроллеры для начинающих
Отправлено: ARV от Март 09, 2007, 14:52:49
Солнцеворот, вы сформулировали очень туманно все... Если вам надо управлять 4-я моторами постоянного тока по командам от компьютера, то в общем виде тут сформулировано, но рискну уточнить: берется микроконтроллер (МК), соединяется с компьютером по RS-232 (СОМ-порт) или через переходник с USB, выходы МК управляют силовыми ключами (или теми самыми микросхемами, что упомянуты ранее). Практически любой современный МК имеет достаточно возможностей для управления не только 4-я, но и 10-ю моторами при помоши ШИМ. Что касается обновления программы МК от какого-то устройства, то аналоговый принцип хранения-пересылки для этого категорически не подходит из-за крайне низкой помехоустойчивости. МК, которые могут сами для себя обновлять программы в настоящее время довольно много (в них как раз флеш-память и используется), проблемы тут особой нет - через тот же COM-порт, например.
Может, попробуете более конкретно сформулировать задачу? Или задавайте дополнительные наводящие вопросы, ибо более конкретного пока сказать нечего...
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Март 09, 2007, 23:53:23
Задача.
1) Написание программы под виндоус, в которой, меняя параметры, грубо говоря, флажки и цифирки, можно регулировать скорость вращения ДПТ и шагового двигателя.
2) Объединить программу и силовую часть посредством компьютерного порта usb или bluetooth.

Перспективы:
1) Возможность работы приводов по заданой программе-таблице, записаной на внешнем запоминающем устройстве типа флешки. Программно (таблично) задаются только скорости и направление вращения в заданые моменты времени.
2) Возможность перепрошить программу микроконтроллера, то есть реакцию на входящую информацию
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Март 10, 2007, 00:54:31
Цитата: Солнцеворот
Задача.
1) Написание программы под виндоус, в которой, меняя параметры, грубо говоря, флажки и цифирки, можно регулировать скорость вращения ДПТ и шагового двигателя.
2) Объединить программу и силовую часть посредством компьютерного порта usb или bluetooth.

1. Как будут передаваться сигналы? (радио, ИК, по ТЛФ. паре и т.д.)?
2. С МК определился?
3. Нужна ли помощь в написании программы?
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Март 10, 2007, 12:16:54
Цитата: Vladimir
1. Как будут передаваться сигналы? (радио, ИК, по ТЛФ. паре и т.д.)?
2. С МК определился?
3. Нужна ли помощь в написании программы?


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

У меня есть прога WinAVR, для микроконтроллеров Atmel. Вывод - нужно брать атмеловский контроллер.
У меня есть исходники по работе с MMC Flash. Они под Pic расписаны.. Вывод...
Вот и думаю...
Название: Микроконтроллеры для начинающих
Отправлено: john от Март 10, 2007, 13:40:52
Цитата: Солнцеворот
1. Сигналы будут передаваться по usb (начнем по-порядку)

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

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

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

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

Это все не очень важно...
Название: Микроконтроллеры для начинающих
Отправлено: Vladimir от Март 10, 2007, 14:39:00
Цитата: Солнцеворот
1. Сигналы будут передаваться по usb (начнем по-порядку)
Вот и думаю...

Опять двадцать пять.
Каким образом компьютер будет общаться с роботом? "Сигналы будут передаваться по usb" - не ответ.
И мне думается, что понадобятся два МК.
Название: Микроконтроллеры для начинающих
Отправлено: ARV от Март 10, 2007, 18:48:32
Когда я говорил о формулировании задачи, то имел ввиду нечто типа "Надо сделать систему управления станком" или "домашнего робота"... Т.е. довольно в общем виде... Дело в том, что подходы для решения могут сильно различаться именно от общей задачи: что подойдет для игрушечного робота (даже очень сложного механически) может не подойти для станка (даже довольно примитивного по механике). Возможно все и наоборот.
Лично меня пока довольно сильно смущает упоминание о какой-то флеш-памяти "съемного" типа для хранения управляющей программы... Несмотря на то, что порой это крайне важно (именно наличие съемной флешки), пока что я не понимаю, зачем это может быть нужно: встроенной флаш-памяти микроконтроллеров достаточно вполне, перешивается она почти так же легко, как и съемная типа ММС, кроме того есть микросхемы типа 24С**, в которых можно хранить "программу" на псевдо-кодах - с ними вообще проблем никаких!
Если Солнцеворот откроет свои секреты, то качественный уровень ответов-советов, думаю, резко возрастет. Тем более, что пока, как я понял, полной ясности в способе решения задачи нет даже у автора темы, т.е. нужны и советы вообще по теме, идей и т.п.
Название: Микроконтроллеры для начинающих
Отправлено: Солнцеворот от Март 11, 2007, 02:07:17
На самом деле подходы не разняться сильно...
Рассказываю секрет.
1) Подошел к станку, воткнул в него флешку, нажал кнопку "Плей" и пошел курить... а он в это время вырезает пресс-форму за 6 часов...
2) Сел за компьютер, открыл окно программы управления, и сидишь, играешся в "Нид фор спид" но на настоящей игрушечной машинке, которую у племянника отобрал. В окне видишь то, что видит камера на машинке. Общение - по Блутузу. ( это другая штука, никак не связаная с пунктом 1)

Опять 25:
Изначально шпиндель станка установлен в координату x0 y0 z0
Закрепляем заготовку, нажали плей.
В регистре1 (так назову, чтобы объяснить) записаны начальные координаты (0 0 0)
Читаем первую строчку: N01 G0 x26 y452 ( интерпретируем - переместить шпиндель на x+26 y+452 на максимальной скорости)
Для этого нужно: Подать последовательность импульсов на шаговый двигатель, с тем, чтобы он обернулся на заданый угол ( несколько оборотов)
Когда выполнено, записываем положение в регистр1 (26 452 0),  читаем вторую строчку
N02 G1 z34 ( опускаем шпиндель на 34 мм вниз на скорости врезки)
...

И так далее, там еще много G-кодов есть, всех их нужно превратить в приращения. Жаль тут чата нету, ох жалко...

Чтобы заставить шаговый двигатель крутиться с заданой скоростью, нужно участить или уменьшить частоту подаваемых на него импульсов. Зная, что за один шаг двигателя шпиндель перемещается на "определенное расстояние" (несложно подсчитать исходя из конструкции), можно задавать скорость.

Вот зачем и флешка и дисплей, и кнопочки и вся херня (простите)

Алгоритм я практически додумал, остается все собрать в кучу.

Теперь о usb
Цитировать
Опять двадцать пять.
Каким образом компьютер будет общаться с роботом? "Сигналы будут передаваться по usb" - не ответ.
И мне думается, что понадобятся два МК.
Может я тупой...
Я не знаю точно, но мне кажется, что usb - это шина. По ней данные передаются в виде кадров, структура кадров - стандартизрована. Контроллер принимает определенное количество кадров, склеивает их, принимает решение и выводит на выходы сигнал к движению шаговых двигателей.
При управлении через usb действительно непонятно как можно формировать кадры программно. Я прочту об этом книжку, и думаю все станет ясно.
В com-порте или LPT все несколько проще, представь себе выводы ( благо их много) как регистр, и все. Можно передавать восьмибитовые слова без проблем. и принимать. А с usb`ой не совсем все ясно. Но об этом написаны десятки книг, это можно понять.

Ребята, вы меня запутанного еще больше запутали
Название: Микроконтроллеры для начинающих
Отправлено: john от Март 11, 2007, 15:27:42
Цитата: Солнцеворот
Я не знаю точно, но мне кажется, что usb - это шина. По ней данные передаются в виде кадров, структура кадров - стандартизрована. Контроллер принимает определенное количество кадров, склеивает их, принимает решение и выводит на выходы сигнал к движению шаговых двигателей.
При управлении через usb действительно непонятно как можно формировать кадры программно. Я прочту об этом книжку, и думаю все станет ясно.

Не совсем так. Даже скорее совсем не так

Цитировать
В com-порте или LPT все несколько проще, представь себе выводы ( благо их много) как регистр, и все.


Именно. Проще!
Поэтому сначала лучше всего отладить задачу на СОМ, а затем скорректировать софт под УСБ, использую в качестве аппаратной части переходник УСБ-КОМ
Название: Микроконтроллеры для начинающих
Отправлено: Dorian от Сентябрь 14, 2010, 22:20:20
У меня схожая в чемто проблема:нужна логика запроса на вьікачку с флешки инфьі. Хочу сделать микроконтролер которьій при подключении флешки будет стягивать с нее инфу в свои регистрьі памяти или в доп. ОЗУ ,для дальнейшей обработки следующим контролером .
Заранее спасибо.
Название: Микроконтроллеры для начинающих
Отправлено: Beast2040 от Ноябрь 06, 2010, 19:30:31
Погодите ДПТ-это синхронный двигатель? Получается, что к любой стиралке микроконтроллер-это будет та схема, которую ищете вы.

Название: Микроконтроллеры для начинающих
Отправлено: raa от Декабрь 01, 2010, 11:53:49
PIC16F676

Проблемы с программированием.
Здесь (http://ra4a.ru/forum/40-28-1)
Кто подскажет тонкости программирования PIC16F676 ?
Название: Микроконтроллеры для начинающих
Отправлено: sunapex от Март 31, 2011, 21:17:41
Можно использовать программу как и для PIC16F630. только выключить ANSEL.
Название: Микроконтроллеры для начинающих
Отправлено: dslib от Август 03, 2011, 18:51:08
Как искал и наткнулся на такую работу,про микроконтроллер [http://www.dslib.net/elektrotex-kompleksy/trofimov.html]


Модератор: dslib, хватит заниматься столь недостойной рекламой своего сайта, продающего какую-то хрень! Ставлю первое предупреждение.
Название: Микроконтроллеры для начинающих
Отправлено: CMaxx22 от Октябрь 21, 2011, 18:55:20
Здравствуйте! Недавно приобрёл плату разработки на STM32F103RBT6 вот такую (http://www.ebay.com/itm/STM32F103RBT6-Development-Board-2-8-TFT-LCD-/270712367042?pt=LH_DefaultDomain_0&hash=item3f07b6e7c2)  . Называется MINI STM32 V3.0 При подключении через USB играет дэмо. Один из мини USB заходит в USB to SERIAL converter PL2303. Я так понимаю, что через него можно залить прошивку? JTAG у меня нет. Вобщем нужно повесить на него 5 термометров DS/8B20 и один аналоговый датчик давления. Я разбираюсь в программировании и в электронике, но с МК встречаюсь впервые. Первый вопрос: где найти исходники примеров под эту плату и второй вопрос: как их туда залить через USB? Драйвера на 2303 установил, но не знаю чем лить. Вопросов ещё много, но сначала нужно решить эти  Спасибо тем, кто решит потратить время на новичка, я быстро схватываю.

редактирование исправил ссылку
Название: Микроконтроллеры для начинающих
Отправлено: CMaxx22 от Октябрь 22, 2011, 13:18:03
С заливкой прошивки разобрался, подключаю через USB и лью Flash Demonstratorом без проблем. Только пока заливаю свою родную прошивку с дэмкой, которую заблаговременно слил и сохранил. Также нашел исходники примеров под похожую плату, открываю кеилом пример GLCD,жму билд таргет, он компилит и выдаёт кучу мусора, среди которого есть маленький (около 33кб) HEX файл. Зашиваю его - белый экран. Заливаю назад свою прошивку - работает. Сейчас бы хотелось найти такой исходник для кеил, чтобы он инициализировал экран и хотябы квадратик рисовал или "хелло ворлд" какое-нибудь. Дальше думаю сам разберусь  Как это можно осуществить? Микросхема которая (похоже) управляет экраном называется 74HC573D...
Название: Микроконтроллеры для начинающих
Отправлено: CMaxx22 от Октябрь 24, 2011, 22:25:09
Всё, я разобрался. Нашел исходники и документацию к этой плате, светодиодами мигал, инфу на экран выводил. Конечно многое ещё не понятно. Например я буду благодарен, если кто-нибудь мне подскажет где найти пример или туториал как подружить цифровые термометры DS18B20 с STM32F106. Чтобы штук пять на одной шине 1-wire... Или хороший пример аналогово милливольтметра (для подключения датчика давления)...
Название: Микроконтроллеры для начинающих
Отправлено: CMaxx22 от Октябрь 25, 2011, 23:46:50
С аналоговыми входами разобрался, милливольтметр на 4 канала готов. Теперь дело за датчиками DS18B20. Насколько я понял в STM32 шины 1-wire нету и её заменяет I2C? Как бы подружить цифровой датчик с нею...
Название: Микроконтроллеры для начинающих
Отправлено: CMaxx22 от Октябрь 26, 2011, 21:43:17
Почему свободно болтающаяся нога, скажем PB1, показывает не 0 а 1800? А если при этом подать 3.3в на РВ0, то никак не связанная с ней нога РВ1 уже будет показывать 2700... Что это такое? Почему нет нуля у свободной ноги, ну ладно 3-5 помехи, но 1800 то откуда? И почему её показания зависят от напряжения приложенного к соседней ноге, да причём значительно !?
Название: Микроконтроллеры для начинающих
Отправлено: nomokon от Январь 22, 2012, 08:53:16
Цитата: CMaxx22
Всё, я разобрался. Нашел исходники и документацию к этой плате, светодиодами мигал, инфу на экран выводил. Конечно многое ещё не понятно. Например я буду благодарен, если кто-нибудь мне подскажет где найти пример или туториал как подружить цифровые термометры DS18B20 с STM32F106. Чтобы штук пять на одной шине 1-wire... Или хороший пример аналогово милливольтметра (для подключения датчика давления)...


Добрый день!
Могли бы поделиться ссылкой на примеры ( у меня тажа проблема с Mini-stm32 ) - не могу найти рабочий пример для TFT
в свою очередь могу попытаться помочь с датчиками температуры ( работал немного  с ними на PIC  есть исходники на C)