Files
InfiniteStairs/README.md
2026-01-24 15:17:23 +03:00

176 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Тренажер "Бесконечная Лестница"
Система управления тренажером "Бесконечная лестница" на базе 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)
## Лицензия
Проект разработан для КГЭУ (Казанский государственный энергетический университет).