176 lines
7.1 KiB
Markdown
176 lines
7.1 KiB
Markdown
# Тренажер "Бесконечная Лестница"
|
||
|
||
Система управления тренажером "Бесконечная лестница" на базе Arduino Mega 2560.
|
||
|
||
## Описание проекта
|
||
|
||
Данный проект представляет собой систему управления тренажером с функциями:
|
||
- Управление скоростью двигателя (0-100%)
|
||
- Два режима тренировки: по времени и по дистанции
|
||
- Отображение параметров на LCD дисплее 16x2
|
||
- Отображение скорости на LED матрице 8x MAX7219
|
||
- Локальное управление кнопками
|
||
- Радиоуправление (7 кнопок)
|
||
- Система безопасности с аварийной остановкой
|
||
- Сохранение параметров в EEPROM
|
||
|
||
## Необходимое оборудование
|
||
|
||
- Arduino Mega 2560
|
||
- LCD дисплей 16x2 с I2C модулем (адрес 0x27)
|
||
- LED матрица 8x MAX7219
|
||
- Энкодер LPD3806-360BM-G5-24C
|
||
- Драйвер двигателя с PWM управлением
|
||
- Кнопки управления
|
||
- Приемник радиоуправления
|
||
|
||
## Установка библиотек
|
||
|
||
### Способ 1: Через менеджер библиотек Arduino IDE
|
||
|
||
1. Откройте Arduino IDE
|
||
2. Перейдите в меню **Скетч** → **Подключить библиотеку** → **Управлять библиотеками...**
|
||
3. Установите следующие библиотеки:
|
||
|
||
| Библиотека | Поиск в менеджере | Автор |
|
||
|------------|-------------------|-------|
|
||
| LiquidCrystal I2C | `LiquidCrystal I2C` | Frank de Brabander |
|
||
| LedControl | `LedControl` | Eberhard Fahle |
|
||
|
||
### Способ 2: Ручная установка
|
||
|
||
1. Скачайте библиотеки:
|
||
- [LiquidCrystal_I2C](https://github.com/johnrickman/LiquidCrystal_I2C)
|
||
- [LedControl](https://github.com/wayoda/LedControl)
|
||
|
||
2. Распакуйте архивы в папку библиотек Arduino:
|
||
- **Windows:** `C:\Users\<Пользователь>\Documents\Arduino\libraries\`
|
||
- **Linux:** `~/Arduino/libraries/`
|
||
- **macOS:** `~/Documents/Arduino/libraries/`
|
||
|
||
3. Перезапустите Arduino IDE
|
||
|
||
### Встроенные библиотеки (устанавливать не нужно)
|
||
|
||
Следующие библиотеки входят в состав Arduino IDE:
|
||
- `SPI.h` — для работы с SPI шиной (LED матрица)
|
||
- `Wire.h` — для работы с I2C шиной (LCD дисплей)
|
||
- `EEPROM.h` — для сохранения параметров
|
||
|
||
## Прошивка Arduino
|
||
|
||
### Шаг 1: Подготовка
|
||
|
||
1. Установите [Arduino IDE](https://www.arduino.cc/en/software) (версия 1.8.x или 2.x)
|
||
2. Установите необходимые библиотеки (см. выше)
|
||
3. Подключите Arduino Mega 2560 к компьютеру через USB кабель
|
||
|
||
### Шаг 2: Настройка Arduino IDE
|
||
|
||
1. Откройте файл `stairs_arduino.ino` в Arduino IDE
|
||
2. Выберите плату: **Инструменты** → **Плата** → **Arduino Mega or Mega 2560**
|
||
3. Выберите процессор: **Инструменты** → **Процессор** → **ATmega2560 (Mega 2560)**
|
||
4. Выберите порт: **Инструменты** → **Порт** → выберите COM-порт Arduino
|
||
- **Windows:** `COM3`, `COM4` и т.д.
|
||
- **Linux:** `/dev/ttyACM0` или `/dev/ttyUSB0`
|
||
- **macOS:** `/dev/cu.usbmodem*`
|
||
|
||
### Шаг 3: Загрузка прошивки
|
||
|
||
1. Нажмите кнопку **Загрузка** (стрелка вправо) или используйте `Ctrl+U`
|
||
2. Дождитесь сообщения "Загрузка завершена"
|
||
3. Откройте **Монитор порта** (`Ctrl+Shift+M`) для проверки работы
|
||
- Установите скорость: **115200 бод**
|
||
|
||
## Схема подключения
|
||
|
||
### Управление двигателем
|
||
| Пин Arduino | Назначение |
|
||
|-------------|------------|
|
||
| 9 | PWM выход |
|
||
| 19 | Enable выход |
|
||
|
||
### Кнопки локального управления
|
||
| Пин Arduino | Назначение |
|
||
|-------------|------------|
|
||
| 22 | Выбор режима |
|
||
| 23 | Увеличение параметра |
|
||
| 24 | Уменьшение параметра |
|
||
| 25 | Сброс параметров |
|
||
| 26 | Старт |
|
||
| 27 | Стоп |
|
||
| 30 | Уменьшение скорости |
|
||
| 31 | Увеличение скорости |
|
||
| 29 | Аварийная кнопка (грибок) |
|
||
| 32 | Лазерные датчики безопасности |
|
||
|
||
### Радиоуправление
|
||
| Пин Arduino | Назначение |
|
||
|-------------|------------|
|
||
| 40 | Скорость + |
|
||
| 41 | Скорость - |
|
||
| 42 | Старт/Стоп |
|
||
| 43 | Выбор режима |
|
||
| 44 | Сброс |
|
||
| 45 | Уменьшение |
|
||
| 46 | Увеличение |
|
||
|
||
### Датчики
|
||
| Пин Arduino | Назначение |
|
||
|-------------|------------|
|
||
| 2 | Энкодер A (INT0) |
|
||
| 3 | Энкодер B (INT1) |
|
||
| 33 | Концевой выключатель |
|
||
|
||
### Дисплеи
|
||
| Пин Arduino | Назначение |
|
||
|-------------|------------|
|
||
| 20 (SDA) | LCD I2C данные |
|
||
| 21 (SCL) | LCD I2C тактирование |
|
||
| 51 (MOSI) | LED матрица DIN |
|
||
| 52 (SCK) | LED матрица CLK |
|
||
| 53 (SS) | LED матрица CS |
|
||
|
||
### Светодиоды статуса
|
||
| Пин Arduino | Назначение |
|
||
|-------------|------------|
|
||
| 35 | Зеленый (работа) |
|
||
| 36 | Красный (стоп) |
|
||
| 37 | Аварийный |
|
||
|
||
## Устранение неполадок
|
||
|
||
### Arduino не определяется
|
||
|
||
**Windows:**
|
||
- Установите драйвер CH340 (для китайских клонов Arduino)
|
||
- Проверьте диспетчер устройств
|
||
|
||
**Linux:**
|
||
- Добавьте пользователя в группу `dialout`:
|
||
```bash
|
||
sudo usermod -a -G dialout $USER
|
||
```
|
||
- Перезагрузите компьютер
|
||
|
||
### Ошибка "avrdude: stk500v2_ReceiveMessage(): timeout"
|
||
|
||
- Проверьте правильность выбора платы и порта
|
||
- Попробуйте другой USB кабель
|
||
- Нажмите кнопку Reset на Arduino перед загрузкой
|
||
|
||
### LCD дисплей не работает
|
||
|
||
- Проверьте I2C адрес (может быть 0x27 или 0x3F)
|
||
- Проверьте подключение SDA/SCL
|
||
- Настройте контрастность потенциометром на I2C модуле
|
||
|
||
### LED матрица не работает
|
||
|
||
- Проверьте подключение SPI (DIN, CLK, CS)
|
||
- Проверьте питание матрицы (5V)
|
||
|
||
## Лицензия
|
||
|
||
Проект разработан для КГЭУ (Казанский государственный энергетический университет).
|