Мотор от флоппи дисковода использовать
На вебинаре были представлены линейка компонентов для электропитания и интерфейсные модули. Мы рассмотрели популярные группы изолированных и неизолированных (PoL) DC/DC-преобразователей последних поколений, новые компактные модульные источники питания, устанавливаемые на печатную плату (открытые и корпусированные), источники питания, монтируемые как на шасси (в кожухе и открытые), так и на DIN-рейку.
Так понимаю, что Вам нужно непросто запустить движок, а управлять работой девайса – флоппи дисковод вне компьютера. Так вот CD- или FDD-приводы имеют плату контроллера, на которой стоит микроконтроллер (чип) и движки управляются внутренней прошивкой. Хотя сделать можно. Допустим есть самоделки на CD-ROM накопителе в качестве MP3-плеера (самостоятельный девайс).
Встраиваемые ИП LM(F) производства MORNSUN заслуженно ценятся производителями во всем мире, поскольку среди широчайшего ассортимента продукции компании можно найти источник питания для любых задач. Представители семейств LM и LMF различаются по мощности и выходному напряжению, их технические и эксплуатационные характеристики подходят для эксплуатации в любых электрических сетях и работают в широком диапазоне условий окружающей среды. Неизменными остаются высокое качество и демократичная цена.
Источники питания MEAN WELL AC/DC-конвертеры серий CSP-3000, DPU-3200, PHP-3500 и PHP-3500-HV имеют уникальный для своего класса набор характеристик и срок гарантии 5 лет. Сочетание большой выходной мощности (от 3 кВт) с высоковольтным напряжением на выходе и возможности удаленного управления и контроля, в том числе с помощью цифровых интерфейсов, делает их особенно актуальными для современной промышленности. Разберем подробнее их особенности и характеристики.
Кажется в FDD-приводе используется безколлекторный двигатель для вращения магнитного диска, так что просто запустить его вряд ли получится. Необходима электронная схема, переключающая обмотки двигателя, таким образом, чтобы создавалось вращающееся магнитное поле. Проще использовать шаговый двигатель, который перемещает головку того же дисковода, хотя и тут не обойтись без электроники.
Quarx, плохо то, что когда начинают тему не раскрывают сути задуманного - сложно советовать, не зная для чего это все нужно.
Согласен с полковником, что касается остального, то обычно(в видеомагнитофонах обычное дело для ведущего вала) обмотки мотора расположены на плате, на ней же и управляющая микросхема. Ищем на неё pdf и подаём то, что нужно туда куда нужно. Можно и самому наворотить управление. На логике или контроллере.
Дико извиняюсь, что отвлёк ваше внимание, но уж куда конкретней. есть флопи дисковод, нужно запустить двигатель не подключаясь к компу.
Пардон за возврат к древней теме, не смог удержаться.
Ну, народ, вы тут и насоветовали! В большинстве флопиков плата движка выполнена отдельно от платы логики и соединяется с оной шлейфом. В нём контактов, как правило, весьма немного - от 4 до 6. Посему надо начать с поиска проводов питания. Обычно они все подписаны по-аглицки, но, если и нет, вызвонить "землю" весьма просто - самый широкий проводник по краю платы; питалово с ним обычно соединяется через самый толстый электролит. Дальше надо всего лишь кинуть на них питание (сначала +5В) и потыкать в остальные провода сначала "землёй", а потом - +5В через резистор в 1 кОм. Туда должны идти сигналы "Motor On" и "Speed Sel" - первый врубает движок, второй выбирает скорость (300/360 об/мин). Вообще, чем питается и запускается движок, можно понять из анализа дорожек, идущих к нему с платы логики.
Каждый раз, как на глаза попадается ящик со старыми 3,5” дисководами, думаю «а чего бы с ними сделать?» и каждый раз задвигаю ящик всё дальше и дальше в глубь полки. Но сегодня рука сама вытащила один из приводов и вопрос принял форму «а чего тут в плане шагового двигателя. » Так, хорошо, берём несколько приводов и несём смотреть на лабораторный стол.
Модели дисководов разные, но двигатели приводов перемещения головок конструктивно выглядят одинаково (рис.1 и 2). Судя по тому, что у них у всех по 4-е вывода и что для питания этих дисководов требуется только напряжение +5 В, то, скорее всего, они и по электрическим параметрам близки друг к другу.
Микросхемы управления не имеют никаких радиаторов и теплорассеивающих площадей из медной фольги (рис.3), что косвенно говорит о небольших токах, протекающих в обмотках двигателей.
Ещё со «спектрумовских» времён помниться, что для запуска привода нужно сначала подать «ноль» на 12 вывод (поставить перемычку между 12 и 11 выводами в сигнальном разъёме). Затем нужно выбрать направление перемещения головок – низкий уровень на 18 выводе заставит блок головок двигаться от края диска к центру (при подаче питания на дисковод блок головок автоматически перемещается к наружному краю диска). А чтобы перемещение началось, нужно «позамыкать на землю» 20 вывод разъёма – сдвиг происходит по спаду импульса, один спад – один шаг.
Попробовал провести все эти манипуляции с разными дисководами – да, все они отзываются, щёлкают, даже без вставленных дискет. Уже хорошо…
Так, хорошо, а нельзя ли поуправлять ими с компьютера? Принцип ведь такой же, как у простых станков с ЧПУ – выбор направления и подача импульса шага и всё это можно делать через LPT разъём. И пусть тогда программой управления будет KCAM 4 – в ней в G-кодах несложно написать программу управления и интерфейсная панель «CNC Control» в KCAM-е есть – можно будет «врукопашную» подвигать головками.
Возможно, что подключать приводы к LPT порту можно и напрямую (пишут, что там сигналы TTL-уровней и с током до 14 мА), но на всякий случай был спаян буфер на микросхеме 74LS245 (рис.4). Так как программа KCAM 4 позволяет работать с 4-мя двигателями, то были использованы все 4-ре канала управления (использовались выводы, уже задействованные в управлении домашним станком с ЧПУ).
Сигналы «шаг» проходят через RC цепи, но для управления приводами эти элементы не нужны (это «заготовка» для будущих экспериментов). Резисторы даже могут помешать, так как в приводах сигнальные выводы «подтянуты» к плюсовой шине и получается, что эти резисторы образуют делитель, который при неудачном коэффициенте деления не позволить сигналу «шаг» достичь требуемого уровня логического нуля для микросхемы-контроллера привода (например, два дисковода не работали при сопротивлениях резисторов 300 Ом).
Печатная плата не рассчитана на впаивание LPT разъёма – используется проводное соединение. Файл платы в формате Sprint-Layout находится в приложении к тексту, вид сделан со стороны печати (для ЛУТ нужно включать режим «Зеркально»), все детали (кроме разъёмов XS2 и XS3) установлены со стороны дорожек. Разъёмы – это тоже «заготовка на будущее», здесь не используются.
Схема запитана от лабораторного источника питания.
Про работу с программой рассказывать не буду, она не очень сложная, в сети есть описание и за вечер можно разобраться во всех её установках.
Запустилось всё сразу, приводы через интерфейсную панель управляются, все жужжат по-разному и это натолкнуло на мысль что-нибудь «сыграть». «Мурку» программировать не стал, пошёл по проторенному пути и, подобрав скорости перемещения, получил фрагменты, похожие на «Имперский марш» из «Звёздных войн» и «Чижика-Пыжика».
Плохо, что двигатели могут шагать только на 80 шагов, но в данном случае это некритично - примерные установки для музыкального «верещания» можно взять из рис. 5, сам файл с G-кодами находится в приложении к тексту. Установки именно «примерные», так как у разных конструкций приводов дребезжание корпусов разное и, например, поменяв FDD1 с FDD3 местами, звуки тоже изменятся. Выбор скорости подачи – в окне «Maximum Feed Rates» (внизу слева).
После музыкальной разминки решил попробовать воплотить старую мечту о зажиме типа «рука терминатора» (это эпизод из 1-й части, где он ремонтирует руку и штоком шевелит пальцем). Идея была такая – к пальцам прикрепить тяговые тросики и, натягивая их, заставить пальцы сжиматься. Пальцы также должны быть подпружинены, чтобы при ослаблении тросов расправляться и возвращаться в «широкий захват» (рис.6 и 7). Всю кисть делать, конечно, нет смысла, достаточно и 3-х пальцев.
Затея с суставчатыми пальцами не получилась – оказалось, что в варианте с одной тягой на палец сгибание «костяшек» происходит неравномерно и требуется как-то перераспределять усилия между ними. Быстрого и простого решения найти не удалось, решил сделать «жёсткие» пальцы (рис.8 и 9). Такая рука выглядит уже не так красиво, но хоть «охотку собью», сделав такой захват…
Кисть вместе с разобранными приводами FDD была закреплена на куске ДСП подходящего размера (рис.10). Тяговые нити прикреплены к блокам считывающих головок. Шевелить пальцами можно через панель «CNC Control», активируя нужные оси и направления или по написанным командам.
Небольшое видео с процессом шевеления пальцами:
Ток потребления 3-х приводов в пассивном режиме не превышает 0,2 А, во время одновременной работы всех двигателей достигает 1,5 А, т.е. каждый отдельный привод потребляет ток до 0,5 А.
Описанный захват никакого серьёзного зажимного усилия не создаёт, удерживать может лишь лист бумаги или картона, поэтому никакой практической ценности данная конструкция не имеет. Создавался только для развлечения.
В приложении к тексту есть также файлы G-кодов программы KCAM 4 для «верещания» и чертежи «костяшек» и эскизы захвата, сделанные в программе sPlan 7.0 .
Когда-то давным-давно сделал из старого «винчестера» станочек для правки и заточки мелких свёрл, но у него слишком велика минимальная скорость вращения и обычно когда торопишься, то свёрла перегреваются. Пытался как-то уменьшать обороты, ничего хорошего не получилось и поэтому оставил всё как есть, просто заставив себя не торопиться. А тут недавно пришли знакомые компьютерщики и с вопросом «посмотри, из этого можно что-нибудь полезного сделать?» начали вываливать на стол множество дисководов на три с половиной дюйма (рис.1). И почему-то первой же мыслью было – а не попробовать ли собрать новую низкоскоростную «правку»…
Не откладывая это дело в долгий ящик, тут же снимаем крышки с нескольких дисководов разных марок и смотрим, что там внутри.
А внутри всё по-разному и у разных моделей одной марки управление двигателями может быть собрано и на одной и на двух микросхемах (рис.2).
Рассматриваем детали на платах поподробнее и отдаём предпочтение варианту с двумя микросхемами (рис.3) – по дорожкам и подходящим проводам видно, что правая микросхема ALPS-R SD705A (кроме всего прочего) отвечает за работу шагового двигателя перемещения считывающей головки, а левая LB11813 – только за работу двигателя вращения диска.
Также видно, что обе микросхемы соединяются всего двумя сигнальными дорожками – 33 и 34 выводы большой микросхемы идут к соединённым вместе 10-му и 11-тому выводам и к 12 выводу LB11813 соответственно.
Честно говоря, ранее уже приходилось сталкиваться с дисководами и уже есть некоторое представление о принципе их работы, поэтому, сказав для пущей важности «сейчас мы здесь что-нибудь отрежем…», аккуратно перерезал обе эти дорожки (рис.4).
Вывод 12 микросхемы LB11813 оставляем в покое, а на 10-й и 11-й нужно подать тактовый сигнал CLK. Так как частота его следования должна быть около 1 МГц, а амплитуда стандартная для микросхем пятивольтовой серии, то собираем на подвернувшемся под руку кусочке текстолита генератор прямоугольных импульсов на микросхеме К555ЛН1. Ставим переменный резистор для регулирования частоты и при среднем его положении подбором ёмкости конденсатора подгоняем выходную частоту к 1 МГц. Затем соединяем выход генератора с выводами LB11813 (рис.5), подпаиваем шины питания дисковода и генератора и включаем БП. Слышим, что двигатель начал вращаться. Это хорошо… Покрутив ручку переменного резистора, слышим как меняется частота вращения двигателя. И это хорошо…
Гости, радостные и окрылённые открывшимися перспективами, помчались домой, на ходу обдумывая, как можно использовать это «чудо техники», а я вернулся к схеме, чтобы посмотреть, что нужно оставить, а что убрать, и как это всё это облагородить в корпусе…
Сначала, вооружившись тестером, карандашом и листком бумаги, срисовал с платы схему (рис. 6). Здесь нумерация элементной обвязки, относящейся к микросхеме LB11813, оставлена старой, т.е. той, что была на плате.
Затем посмотрел некоторые технические характеристики. Потребляемый от пятивольтового блока питания ток на холостом ходу равен 0,22 А, при средней «нагрузке» на валу двигателя – меняется от 0,5 А до 0,7 А. Перед самой остановкой вращения ток достигает значения 0,85 А. Температура нагрева корпуса микросхемы LB11813 зависит от нагрузки, но в любом случае не превышает 50-70 градусов.
Минимальная частота генератора, при которой ещё вращается двигатель – около 0,45 МГц, максимальная – около 4,6 МГц.
Теперь дисковод полностью разбираю, оставив только две платы, соединённые 4-мя цветными проводами – по ним микросхема LB11813 управляет двигателем (рис.7). Белый восьмипроводный шлейф тоже не нужен – на плате с двигателем что было интересного, так это не то дроссель, не то какой другой элемент, но очень похожий на дроссель и отвечающий, скорее всего, за контроль частоты вращения двигателя (т.е. выполняющий функции датчика Холла) – так вот его можно выпаять, всё работает и без него. Остальные проводники шлейфа – это общий провод, напряжение питания, а также передача сигналов от концевых выключателей с платы двигателя (выпаиваем и их тоже).
«Сдуваю» термофеном все ненужные элементы с большой платы и обрезаю её так, чтобы остались крепёжные отверстия (рис.8).
Готового подходящего по размерам не нашёл, взял кусок 16-миллиметровой ДСП, тонкий пластмассовый лист и кусок стеклотекстолита от старой печатной платы. Немного попилил, посверлил и закрепил всё так, чтобы не очень «выпирало» и не занимало много места на столе (рис.9, рис.10, рис.11, рис.12).
Печатную плату для импульсного генератора развёл, но пока не вытравил – неохота разводить «бодягу» ради одной-двух маленьких плат. А пока установил в корпус макетный вариант и приклеил термоклеем его и плату с микросхемой-приводом двигателя. Файл печатной платы в формате программе Sprint-Layout находится в приложении к статье (вид сделан со стороны установки деталей - рисунок при ЛУТ надо «зеркалить»).
Никакой накладной декоративной панелью корпус сверху накрывать не стал – головки винтов так и оставил на виду. Пластмасса, из которой сделана верхняя крышка, попалась очень удачная – к ней не прилипают намертво никакие клеи из серий «Момент» или БФ и она практически не царапается и не мажется. Из той части, что осталась при выпиливания отверстия под вращающуюся поверхность двигателя, вырезал кольцо, которое приклеил сверху к этой вращающейся поверхности. На это кольцо можно наклеивать кольца из наждачной бумаги (рис.13), которые при желании достаточно легко содрать и на пластмассовой поверхности кольца почти не остаётся остатков клея. А что остаётся – сцарапывается ногтём.
В качестве блока питания применил импульсный преобразователь, выдающий 5В/1А от какой-то старой оргтехники. Провод питания впаян в схему напрямую – может быть это и не очень правильно, но зато блок питания никогда не теряется и потом, при его замене на новый, не приходится разбираться, где в разъёме «плюс, а где «минус»».
Конечно же, проверил работу схемы с двигателем от «винчестера» - всё работает так же, но с заметно меньшей мощностью в сравнении с управлением от «родного» контроллера. Это понятно - двигателю от HDD требуется более высокое напряжение питания.
Из академического интереса посмотрел форму сигналов в цепях питания двигателем. На рисунках ниже показаны состояния на «фазах» U и V относительно общего провода при тактовой частоте 4,6 МГц (рис.14), при 1 МГц (рис.15) и на одной из «фаз» и вывода, обозначенного на платах как N («нейтраль», надо полагать) (рис.16):
Сигналы «снимались» через резисторные делители, поэтому уровни не соответствуют показаниям шкалы напряжений, но так коэффициенты деления были одинаковы и не менялись, то отношения уровней относительно друг друга верны. Временные интервалы соответствуют действительности.
Андрей Гольцов, г. Искитим
Список радиоэлементов
Прикрепленные файлы:
r9o-11 Опубликована: 16.11.2016 0 0
Вознаградить Я собрал 0 2
Давным-давно жило не знающее печали юное поколение, которое выбрало DOS Navigator, научилось форматировать дискеты в нестандартный объем 1,66 мегабайта и задорно валить плюющихся плазменными шарами какодемонов. Но канули в Лету Sound Blaster 64, 3dfx Voodoo2 и гигантские жесткие диски объемом 40 мегабайт. Остались только горы флоппи-дисководов, которые по старой памяти еще долго ставились на компьютеры, пусть они уже и не были нужны никому. Но их ждал оглушительный камбэк: в 2015 году, когда поляк Павел Задрожняк собрал первый полифонический флопотрон. Наш редактор Василий Сычёв вместе с инженерами «Авито» разобрался, как устроен и работает этот «оркестр», и собрал свой собственный флопотрон.
Первые флоппи-дисководы появились в середине 1970-х годов. По современным меркам они были огромного размера, а их главной функцией было считывать или записывать информацию на гибкие магнитные диски. Собственно, так эти устройства и получили свое название: Floppy Disk Drive (дисковод гибких дисков), или FDD. Первые дисководы принимали дискеты форм-фактора 8 дюймов. Позднее были разработаны дискеты 5,25, 3, 3,5, 2 и 2,5 дюйма. В конце 1980-х и в 1990-х годах самыми распространенными были уже 3,5-дюймовые дискеты.
Это были пластиковые конверты с металлической сдвижной защитой, которая прикрывала магнитный пленочный диск. На него и записывалась информация. В разные годы 3,5-дюймовые дискеты вмещали 360, 720, 1440 и 2880 килобайт информации. На закате магнитных дискет самыми распространенными были дискеты объемом 1,44 мегабайта. На них информация записывалась на 80 дорожках, нулевая из которых (программисты отсчет ведут с нуля) располагалась с краю, а 79-я — почти в центре.
В 1991 году компания Ritlabs выпустила файловый менеджер для операционной системы DOS, в который была встроена утилита форматирования с расширенными настройками. Она позволяла отформатировать любую стандартную 3,5-дюймовую дискету таким образом, что на ней информация записывалась уже на 83 дорожки. Объем дискеты увеличивался с 1,44 до 1,66 мегабайта. Правда, не все дисководы имели достаточную точность, чтобы записывать данные с такой плотностью — нередко на дискетах после записи появлялись так называемые «плохие сектора», участки с нечитаемыми данными.
Дисководы для 3,5-дюймовых дискет имели четырехконтактный разъем для подключения питания (первые устройства требовали питания от 5 и 12 вольт одновременно, но поздние модели уже питали от 5 вольт) и 34-контактный разъем с линиями данных и управления. Первые модели дисководов также имели несколько контактов, замыкая которые можно было назначить устройству одну из четырех системных букв — A, B, D или E. Поздние устройства таких контактов уже лишились. По умолчанию они были настроены на букву B, под которой и определялись в операционных системах.
При этом принудительное назначение буквы производилось уже заземлением одного из четырех управляющих контактов в 34-контактном разъеме. По этой причине шлейфы для подключения дисководов имели группу из нескольких повернутых на 180 градусов проводков, идущих от одного разъема к другому. Таким образом, если дисковод с по умолчанию назначенной ему буквой B подключался к разъему первого устройства на шлейфе, то на землю замыкался соответствующий контакт, и дисководу присваивалась буква A.
Во время работы — при записи или чтении — флоппи-дисководы производили характерные гудение, жужжание и щелканье. Эти звуки издавали два типа электромоторчиков: один — шаговый — отвечал за перемещение каретки с двумя магнитными головками (они-то и намагничивали напыление на гибком диске при записи или измеряли изменение магнитного поля при чтении), а второй — бесколлекторный — за вращение самого гибкого диска дискеты. При использовании одновременно нескольких дисководов шум стоял запредельный.
Железо
Надо признать, что еще до появления знаменитого флопотрона Павла Задрожняка (устройства воспроизведения музыки с помощью 64 флоппи-дисководов, восьми жестких дисков и двух планшетных сканеров), энтузиасты уже использовали дисководы для проигрывания простых мелодий. Благодаря дешевым микроконтроллерным платам вроде Arduino или Raspberry Pi, появившимся в 2010-х годах, решить эту задачу стало в целом несложно: требовались лишь умения программировать и паять, а также усидчивость. Вооружившись этими навыками, я приступил к сборке собственного флопотрона.
Для создания музыкального устройства я приобрел на «Авито» четыре флоппи-дисковода для 3,5-дюймовых дискет, компьютерный блок питания стандарта ATX, микроконтроллерную плату Arduino UNO и неработающий жесткий диск Seagate на 320 гигабайт. Первоочередной задачей, которую мне предстояло решить, было создание аппаратной основы будущего флопотрона. Для этого пришлось найти схемы распиновки 34-контактного разъема дисковода и 24-контактного разъема блока питания ATX.
От разъема блока питания много не требовалось: контакт с номером 16 (единственный зеленый провод) и любой «земляной» контакт (черный провод), например, с номером 17. Если их замкнуть друг с другом, то компьютерный блок питания включится. Если это очень хороший блок питания, то он не включится до тех пор, пока не будет подключен к какому-либо потребителю. Хотя бы к дисководу.
С самими дисководами история посложнее. К разъемам питания от блока ATX нужно было подвести 5 вольт и «землю» — проводки красного и черного цветов соответственно. На разъеме питания дисковода средние два контакта — «земля», крайний правый — 5 вольт. В 34-контактном разъеме нижний ряд штырьков (в некоторых версиях дисковода в нижнем ряду всего один штырек) — «земля», он имеет нечетную нумерацию. Верхний ряд с четными номерами — управляющие контакты, заземление которых включает запись, чтение, определяет букву дисковода, управляет движением каретки с головками.
Для создания флопотрона наибольший интерес представляют контакты 12, 16 и 18 — активация дисковода (при заземлении контакта начинает светиться зеленый светодиод), включение шагового двигателя перемещения каретки и направление вращения шагового двигателя соответственно. 12 контакт можно соединить с контактом под ним. Тогда дисковод будет постоянно активирован, а его светодиод будет постоянно гореть. Можно соединить 12-й контакт с 16-м. В этом случае светодиод будет загораться и гаснуть в зависимости от заземления 16-го контакта. Собственно, этих знаний уже достаточно для проверки дисковода: включаем блок питания и замыкаем 12 и 16 контакты на корпус устройства — каретка с магнитными головками должна начать перемещаться с характерным гулом.
Программа для Arduino UNO (компиляция кода и его загрузка в микроконтроллерную плату производятся с помощью среды разработки Arduino IDE ) выглядит следующим образом:
int startPin = 2,
endPin = 10,
directionPin = 3,
lastDirectPin = 9;
void setup() int pinByPin = startPin;
while (pinByPin <= endPin) pinMode(pinByPin, OUTPUT);
pinByPin++;
>
>
void loop() for (int j = 0; j < endPin; j = j + 2) for (int i = startPin; i < 160; i++) digitalWrite (j, !digitalRead(j));
delay(2);
>
>
for (int i = directionPin; i digitalWrite(i, !digitalRead(i));
>
>
В этой программе я сначала объявил целочисленные переменные для первых и последних цифровых нумерованных контактов Arduino UNO, к которым были подключены контакты шага и направления вращения разъемов дисководов. В процедуре setup () (в среде Arduino функции, объявляемые директивой void, принято называть функциями, однако, коль скоро они ничего не возвращают — например, результат сложения 2 и 2, их правильнее было бы называть процедурами) в теле цикла while производится последовательное переключение всех используемых для управления дисководами контактов в режим выхода — OUTPUT.
Режим выхода означает, что конкретно эти цифровые выходы микроконтроллера Arduino UNO будут использоваться для управления: при высоком уровне (логическая 1) на контакты будут подаваться 5 вольт, а при низком (логический 0) — они будут переключаться на землю.
Процедура loop () в Arduino означает практически непрерывный системный цикл. Если код в процедуре setup () выполняется лишь единожды при включении микроконтроллерной платы, то код в процедуре loop () исполняется по кругу от первой до последней строки снова и снова. В теле цикла loop () я поместил вложенные один в другой два цикла for. Первый цикл с переменной j определяет, каким именно дисководом управляет Arduino UNO, а второй с переменной i — перемещает каретку задействованного дисковода на 160 шагов. В том же теле loop () после вложенных циклов идет еще один цикл for. Его задача проста — переключать направление вращения шагового двигателя дисковода.
Музицируем
Ура. Все заработало. Настало время сыграть на флопотроне какой-нибудь простой мотивчик. Для этого я выбрал заглавную мелодию из «Собаки Баскервилей», двух серий советского сериала «Приключения Шерлока Холмса и доктора Ватсона», снятого в 1980-х годах. Эта мелодия крайне проста (состоит всего из 72 нот), и ее просто закольцевать (музыка будет вечной, если я не переключу рубильник).
При написании «программы Баскервилей» нужно было учесть несколько моментов. Во-первых, нужно помнить, что шаговый двигатель может перемещать каретку лишь на 160 шагов в одном направлении, а затем в другом. Таким образом, при проигрывании мелодии рано или поздно наступил бы момент, когда каретка дошла до предела.
Чтобы она пошла обратно, необходимо было бы написать программный счетчик шагов, который при достижении значения 159 (помним, что счет ведется с 0) переключал бы шаговый двигатель в обратное направление. Но в этом случае программа стала бы существенно сложнее, чего не хотелось бы. Эту проблему я решил довольно просто: при проигрывании мелодии шаговый двигатель как бы топчется на месте — шаг вперед, шаг назад.
Во-вторых, нужно понимать, что шаговые двигатели изначально не созданы для воспроизведения музыки, поэтому им доступен ограниченный набор нот. Ноты, выходящие за возможности двигателей, просто будут не слышны — каретка сдвинется, а звука почти не будет. Для решения этой проблемы пришлось провести ряд экспериментов. В итоге частота шагания двигателя представляет собой результат математических действий — деление подобранного опытным путем числа на частоту определенной ноты с делением же результата на два.
Наконец, в-третьих, при крайних положениях каретки (в центре или с краю) она будет биться об ограничители, создавая неприятный дребезг. Эту проблему можно было бы решить задействовав еще один контакт дисковода — 26-й. Он называется Track00. Если в дисковод вставлена дискета, то на этом контакте формируется напряжение 5 вольт. Если каретка с магнитными головками приезжает к нулевой дорожке гибкого диска, она закрывает оптический датчик, в результате чего линия Track00 разрывается и на контакте напряжение пропадает.
В программе можно было бы написать процедуру, которая бы после включения Arduino отгоняла каретку к краю, а затем переводила ее в середину, то есть на 80 шагов вперед. Но мне повезло — два из четырех купленных мной дисковода автоматически перемещали каретку к краю при включении. Мне оставалось только написать цикл for, с помощью которого каретка при включении флопотрона перемещается на 80 шагов вперед, где уже «топчется» все время исполнения мелодии.
Код программы получился такой:
В процедуре setup () я перевожу управляющие контакты в режим выхода, приостанавливаю исполнение кода на 500 миллисекунд (использую функцию delay () со значением 500, чтобы каретка дисковода успела «запарковаться» в крайнем положении), а затем с помощью цикла for отвожу каретку на 80 шагов вперед, к центру. В процедуре loop () в теле цикла for, отрабатывающего 72 итерации по числу нот в мелодии, на каждом повторе вызываю процедуру noteDuration (), которая и отвечает за проигрывание мелодии. Процедуре передаются два параметра из массивов note[] и duration[] — частота ноты, записанная в соответствующей константе, и ее длительность.
В самой процедуре noteDuration () вычисляется частота «топтания» каретки, длительность ноты в миллисекундах (сколько именно по времени с заданной частотой каретке нужно делать шаги вперед-назад). В процедуре объявлен цикл while, в теле которого и записан код, управляющий движением каретки и направлением вращения шагового двигателя. Один полный цикл while — одна нота. После выхода из цикла программа приостанавливается на пять миллисекунд — это пауза между нотами. Вот так все просто.
Флопотрон
Эту простенькую программу можно немного расширить, чтобы она проигрывала мелодию на нескольких дисководах. При этом на простом процедурном уровне добиться полифонии не получится. Дело в том, что Arduino исполняет код построчно, причем в один момент времени выполняется только одна команда. Соответственно, если мы говорим, что нужно переместить каретку первого дисковода, одновременно переместить каретку второго уже не получится. Это ограничение можно обойти, если опуститься на так называемый низкий уровень — Arduino позволяет управлять состоянием выводов не только с помощью директив и команд, но и напрямую.
Использование регистров значительно усложнит код программы и сделает его более длинным. Кроме того, полноценной полифонии все равно не получится. Для относительного упрощения кода и создания полноценной полифонии (с помощью Arduino UNO можно управлять самое большее девятью дисководами) можно использовать одну из библиотек управления встроенными в чипы семейства ATmega (на них выполнены микроконтроллерные платы Arduino; Arduino UNO построена на базе ATmega328) таймерами.
Именно по пути использования библиотеки управления таймерами — TimerOne — пошел программист под псевдонимом SammyIAm. Он разработал программное обеспечение Moppy (Musical floppy), которое состоит из двух частей. Первая часть — программа для Arduino UNO (есть также версия на Java, Python и для Raspberry Pi). Эта программа управляет портами микроконтроллерной платы, играя музыку на дисководах. Вторая часть — программа для компьютера, которая связывается с одной или несколькими платами Arduino UNO и передает им данные о нотах, полученные из файла формата MIDI .
В самом midi-файле могут содержаться одна или несколько дорожек с записям нот для разных музыкальных инструментов. Каждая из эти дорожек имеет свой номер канала для проигрывания. Именно основываясь на этом номере Moppy и распределяет проигрываемые ноты по дисководам. Таким образом ноты из канала 1 будет играть дисковод с номером 1, из канала 2 — с номером 2 и так далее. При этом в Moppy, в отличие от моей простенькой программы, ведется подсчет шагов шаговых двигателей, благодаря чему каретки ездят вперед и назад при проигрывании музыки.
Moppy также позволяет управлять дисководами через сдвиговые регистры или драйверы шаговых двигателей . Первое устройство позволяет с помощью небольшого числа портов Arduino управлять большим количеством дисководов, а вторые — напрямую шаговыми двигателями без использования элементов управления на платах устройств. Например, в флопотроне Павла Задрожняка управление сканерами выполнено с помощью драйверов шаговых двигателей, а считывающими головками жестких дисков — через транзисторные сборки.
В общем, я построил свой полифонический флопотрон из четырех дисководов с использованием программного обеспечения Moppy. Изначально планировалось, что жесткий диск будет выступать в роли барабана, выстукивая ритм. Однако мощности собственных портов Arduino UNO не хватило, чтобы раскачать звуковую катушку головки жесткого диска. Соответственно пришлось бы применить вторую плату Arduino UNO и драйвер шаговых двигателей, что усложнило бы проект. Одна Arduino UNO с Moppy не может одновременно управлять дисководами и драйверами шаговых двигателей. Да и как-то непрактично задействовать вторую микроконтроллерную плату для всего лишь одного жесткого диска.
Когда я получил готовый флопотрон, в первую очередь захотелось проверить скорость реакции шаговых двигателей дисководов. Для этого с помощью программы Speedy MIDI я из табулатурной записи для гитары мелодии «Полет шмеля» создал midi-файл, который и «скормил» Moppy. Дисководы отработали замечательно.
Тогда я решил проверить нотный диапазон шаговых двигателей. Для этого в программе Guitar Pro я написал простую мелодию с партиями для двух гитар, постаравшись раскрасить ее бендами , пулл-оффами , хаммер-онами и слайдами . С названием мелодии я заморачиваться не стал и назвал ее просто — «Простая мелодия». Послушать ее так, как она задумывалась, можно здесь . Флопотрон же при проигрывании ожидаемо растерял часть нот, которые игрались подтяжкой струн или скольжением.
У простого флопотрона есть особенность: он не способен менять громкость исполняемой мелодии. Физически невозможно заставить шаговые двигатели жужжать одну ноту громче, а другую тише. По этой причине в программном обеспечении Moppy данные о громкости дорожек в midi-файле просто игнорируются. Павел Задрожняк в своем варианте флопотрона управление громкостью проигрываемых нот реализовал с помощью увеличения числа дисководов. В его аппарате партию каждого музыкального инструмента исполняют по восемь дисководов. Каждая из таких колонн дисководов управляется самодельной микроконтроллерной платой на базе чипов ATmega 16. Принцип сам по себе довольно прост — чем громче нота, тем большее количество дисководов ее играет.
Флопотрон — устройство, которое довольно просто собрать и запрограммировать. Особенно если учесть, что на аппаратном уровне все сводится к обычному подключению проводков к соответствующим контактам Arduino UNO (можно использовать и другие совместимые версии, например, Arduino Nano или Arduino Micro), а на программном — к заливке прошивки Moppy с помощью Arduino IDE. Ну, а если вы особенно талантливый и не ленивый человек, то можете создать свой собственный контроллер дисководов, 3D-принтеров, сканеров и жестких дисков, написать для него программу, музыку и удивить мир по-настоящему новым звучанием. Главное помнить: не все дисководы жужжат одинаково.
Трёхфазный бесколлекторный двигатель (из флопика), для его запуска нужно последовательно подавать напряжение на его обмотоки (клеммы 1, 2, 3), тем самым создавая бегущее поле. Думаю путем экспериментов (с участием МК) он должен запустится.
"Петля синхронизации", выполненная в виде печатного проводника под ротором мотора дисоковода (клемы 12, 13). Как я понял, на эти клеммы нужно подать напряжение для создания магн. поля. Но в таком случае, мне не понятно почему петля называется "синхронизации". Что она синхронизирует?
На схеме присутствует три SMD блочка, у каждого 5 ножек. На всех блочках написано SSE. Есть фирма SSE по производству SMD компонентов, это очень затрудняет поиск информации о том какие именно компоненты стоят на схеме.
Подскажите, что это за компоненты и какая их роль в управлении двигателем?
Какие сигналы идут по белым дорожкам?
Также на схеме виден датчик холла (замыкается 1 раз за оборот), его выходы 14, 15. Но по какой-то причине, от него, через сопротивления, отходят еще две дорожки которые соединены с каскадом описанных выше блочков ( голубая дорожка идет к клемме 11, желтая дорожка к клемме 4).
Для чего это сделано?
Возможно кто-то уже имел дело с подобным двигателем.
Буду очень признателен за дельные советы и если подскажете какие наминалы напряжений и куда стоит подавать, особенно интересны клеммы связанные с неизвестными мне SMD элементами?
Так есть же уже похожие темы на сайте! И не одна, и не две! По-моему, лучше их поискать, чем новую открывать.
Да что вы говорите. А я и не знал.
Читайте внимательно описание топика и если способны ответить на поставленные в нем вопросы - отвечайте!
Буду признателен.
Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет
крутиться будет если подавать напряжение ориентировочно 5В на контакты 1,2,3 и землю. 2 СМД возможно предохранители/перемычки. Третий вроде конденсатор.
что за петля синхронизации - без понятия. И тем не одна по БДПС.
На вебинаре были представлены линейка компонентов для электропитания и интерфейсные модули. Мы рассмотрели популярные группы изолированных и неизолированных (PoL) DC/DC-преобразователей последних поколений, новые компактные модульные источники питания, устанавливаемые на печатную плату (открытые и корпусированные), источники питания, монтируемые как на шасси (в кожухе и открытые), так и на DIN-рейку.
это датчики холла, по которому определяется текущее положение ротора.
в общем тема интересная, но лишенная напрочь практического смысла (на мой взгляд).
привод маломощен.
но она может быть полезна с точки зрения практики.
помню, что отдельно заводил двигатель от 3 дюймового флопика, но использовал родной драйвер - ba6478 или что то аналогичное.
( у моего флопика было 2 платы - одна интерфейсная, другая мотор+драйвер. были соеденены шлейфиком. по нему интерфейсная передавала питание, и управление. вот на этот разъем и подавались нужные уровни)
Встраиваемые ИП LM(F) производства MORNSUN заслуженно ценятся производителями во всем мире, поскольку среди широчайшего ассортимента продукции компании можно найти источник питания для любых задач. Представители семейств LM и LMF различаются по мощности и выходному напряжению, их технические и эксплуатационные характеристики подходят для эксплуатации в любых электрических сетях и работают в широком диапазоне условий окружающей среды. Неизменными остаются высокое качество и демократичная цена.
А именно изучения синхронной машины с возбуждением на постоянных магнитах
Если есть огромное желание постигнуть теорию электрических машин, то можно сделать 3-х фазный преобразователь на МК и биполярных транзисторах-ключах (за одно и Н-мост испробовать). Датчики Холла на плате не обязательно использовать (если не предполагается замкнутая система с отрицательной обратной связью и высокой точностью). Их цель - обратная связь по положению, скорости при работе с родным драйвером.
Еще можно сделать маломощный 3-х фазный генератор. Если раскручивать ротор, а со "статора" снимать напряжение, то легко можно получить низковольтную классическую 3-х фазную звезду (или треугольник в зависимости от типа соединения обмоток) нужной частоты.
Словом, идеальный агрегат для изучения основ электротехники!
Почему эти датчики холла выстроены в каскад (выход b4 - выход c2, выход c4 - выход d2)?
Для меня остается непонятным почему соединены именно выходы датчиков, а не выход - вход.
Возможно в итоге мы получаем суммарное выходное напряжение трех датчиков (на клеммах b2, d4)?
Особенно сильно меня интересует, как с помощью этих трех датчиков можно узнать точное положение ротора?
Буду очень признателен, если кто-то, опишет как может меняется магнитное поле на этих трех датчиках за время одного вращения ротора.
Эта тема полезна также тем что флопики понемногу уходят в прошлое, и миллионы людей раскручивают их ради моторчиков.
Пускай моторчики слабые, но и достают их не для серьезных проектов.
На мой взгляд, от дешевых движков из китайских игрушек их отличает только возможность точного позиционирования, и разобравшись как она работает, многие смогут с толком это использовать в своих небольших проектах.
Но давайте сосредоточимся на решении поставленных практических вопросов.
Спасибо.
Особенно сильно меня интересует, как с помощью этих трех датчиков можно узнать точное положение ротора?
на эти и другие вопросы вам поможет даташит на ba6478 - не поленитесь найти и почитать. там есть описан принцип, логика, схема включения.
также есть про датчик холла (по моему)
На мой взгляд, от дешевых движков из китайских игрушек их отличает только возможность точного позиционирования
вы путаете, точного позиционирования вы здесь не получите - это же не шаговый двигатель!!
изначально все это, на мой взгляд, было задумано точно по скорости и равномерно крутить ротор.
_________________
Успех! - Вот что создает великих людей!
вы путаете, точного позиционирования вы здесь не получите - это же не шаговый двигатель!!
изначально все это, на мой взгляд, было задумано точно по скорости и равномерно крутить ротор.
Датчики холла здесь для тяговой характеристики , а для точного и равномерного - петля обратной связи (гребенка).
Читайте также: