An open API service indexing awesome lists of open source software.

https://github.com/f33rni/ilet-103-motor-controller

Digital speed controller for ILET 103 reel-to-reel deck | Цифровой контроллер скорости ленты катушечного магнитофона ИЛЕТЬ 103
https://github.com/f33rni/ilet-103-motor-controller

103 103-1 arduino audio avr deck motor-controller motor-driver platformio pwm-driver recorder reel-to-reel retro speedcontrol speedcontroller vintage

Last synced: 4 months ago
JSON representation

Digital speed controller for ILET 103 reel-to-reel deck | Цифровой контроллер скорости ленты катушечного магнитофона ИЛЕТЬ 103

Awesome Lists containing this project

README

          

# ➿ ilet-103-motor-controller

## Digital speed controller for ILET 103 reel-to-reel deck | Цифровой контроллер скорости ленты катушечного магнитофона ИЛЕТЬ 103

----------

## ❓ Что это

Данный репозиторий содержит инструкцию по переделке катушечного магнитофона на примере ИЛЕТЬ 103-1 для добавления цифровой регулировки скорости, замены асинхронного двигателя на двигатель постоянного тока, роликовой передачи на пассик, а также, исходный код контроллера с ПИД-регулятором скорости.

Кроме ИЛЕТЬ 103-1, данная переделка возможна **для любых других катушечных магнитофонов** с подобным устройством и принципом работы.

![ИЛЕТЬ 103-1](assets/main.jpg)

----------

## ⚠️ Дисклеймер

> Авторка репозитория не несёт ответственности за любой причинённый моральный / материальный / физический или иной ущерб, связанный с использованием данного репозитория / кода / 3д-моделей / схем / иных других материалов. Вы всё делаете на свой страх и риск!
> Сетевое напряжение может быть **смертельно**!

----------

## 🔧 Замена двигателя и роликового привода на пассик, сборка контроллера

### Контроллер двигателя

1. Подберите мощный двигатель постонного тока. Например, от старого принтера. Обычно для питания таких двигателей можно использовать блок питания напряжением 24V и током не менее 2А.

> ВАЖНО ⚠️: Для питания двигателя используйте отдельный экранированный блок питания, PEN проводник которого необходимо соединить с общим корпусом магнитофона и сетевым проводником PEN.

2. На заднюю часть двигателя установите готовый или самодельный оптический энкодер. Я использовала самодельный энкодер, содержащий 4 чёрных и 4 белых сегмента;
3. Соберите контроллер, используя схему ниже:
![Схема контроллера](assets/ilet-103-motor-controller.kicad_sch.jpg)

4. Собранный и установленный контроллер и мотор должны выглядеть следующим образом:
![Установленный мотор и плата контроллера](assets/motor.jpg)

> Ваши компоненты, их номиналы и т.д. могут отличаться. Экспериментируйте!

Ниже представлены фото подключенного переключателя включения мотора и переключателя скорости. Переключатель паузы подключен последовательно с кнопкой включения мотора

> ВАЖНО ⚠️: Отключите и заизолируйте от переключателя паузы все остальные провода, т.к. на них высокий потенциал!

| ![Включение мотора](assets/enable_switch.jpg) | ![Переключатель скорости](assets/rotary_switch_back.jpg) |
|-----------------------------------------------|----------------------------------------------------------|

> Если в процессе работы мотор нагревается, можно установить небольшой кулер

### Шкив и пассик вместо роликового привода

> В ИЛЕТЬ 103-1 изначально крайне шумный привод капстана. Чтобы убрать шум (также, после установки контроллера и мотора постоянного тока необходимости в механическом изменении скорости нет), необходимо заменить привод на пассик, в качестве которого можно отрезать 8-10мм диэлектрической перчатки

1. Распечатайте на 3Д-принтере или изготовьте иным образом детали шкива `3d/ILET103-Top.stl` и `3d/ILET103-Bottom.stl`;
2. Соберите шкив, как показано на фото ниже:

| ![Шкив в сборе, вид сверху](assets/pulley_top.jpg) | ![Шкив в сборе, вид снизу](assets/pulley_bottom.jpg) |
|----------------------------------------------------|------------------------------------------------------|

3. Отключите и уберите электромагнит паузы
4. Установите пассик:
![Пассик](assets/pulley_installed.jpg)

----------

## 🏗️🟠 Сборка при помощи PlatformIO

1. Клонируйте репозиторий с модулями:

```shell
git clone --recursive https://github.com/F33RNI/ilet-103-motor-controller.git
cd ilet-103-motor-controlle
```

- IDE версия:
- Откройте репозиторий `ilet-103-motor-controller` в IDE и запустите сборку.

- Консольная версия (PlatformIO Core):

```shell
pio run
```

----------

## 🏗️🔵 Сборка при помощи Arduino IDE / arduino-cli

1. Клонируйте репозиторий с модулями:

```shell
git clone --recursive https://github.com/F33RNI/ilet-103-motor-controller.git
cd ilet-103-motor-controlle
```

- IDE версия
- Откройте файл `ilet-103-motor-controller.ino` в IDE, выберите нужную платформу и запустите сборку.

- Консольная версия (arduino-cli)

- Создайте директорию `build`:

```shell
mkdir build
```

- Запустите сборку (заменив `arduino:avr:uno` на требуюмую платформу):

```shell
arduino-cli compile --verbose --build-path ./build -b arduino:avr:uno ilet-103-motor-controller.ino
```

----------

## ⚙️ Настройка контроллера и ПИД-регулятора

- Все настройки находятся в файле `include/config.h`
- Настройки портов находятся в файле `include/pins.h`

Если, указанные в настройках, параметры ПИД не подошли для вашей сборки, настройте ПИД вручную. Для этого:

> К сожалению, автоматическая настройка PID-регулятора методом Циглера-Никольса не подходит для данного проекта, хотя,
> можете попробовать. Для этого, обратитесь к документации библиотеки [PetalPID](https://github.com/F33RNI/PetalPID)

1. Включите режим `DEBUG`. Используйте любую программу плоттера последовательного порта, чтобы следить за графиками скорости;
2. Установите все параметры в 0 (`PID_P_GAIN = 0.f`, `PID_I_GAIN = 0.f` и `PID_D_GAIN = 0.f`);
3. Установите среднюю скорость;
4. Постепенно повышайте `PID_P_GAIN` до тех пор, пока не начнутся осцилляции;
5. Уменьшите `PID_P_GAIN` до тех пор, пока осцилляции не пропадут полностью и ещё немного;
6. Увеличьте `PID_I_GAIN` так, чтобы скорость достигалась максимально быстро без осцилляций;
7. Плавно повышайте `PID_D_GAIN`, `PID_P_GAIN` и `PID_I_GAIN`, стараясь добиться максимальной стабильности и скорости реакции.

----------

## ✨ Участие в разработке

1. Клонируйте репозиторий с модулями:

```shell
git clone --recursive https://github.com/F33RNI/ilet-103-motor-controller.git
```

2. При редактиовании / добавлении кода, следуйте стилю, указанному в `.clang-format`;
3. При создании коммитов, используйте стиль [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#specification>)
4. Создайте пул-реквест.