Когда заходит речь о физике элементарных частиц, воображение сразу рисует огромные подземные тоннели Большого адронного коллайдера в ЦЕРНе, протянувшиеся на 27 километров. Но изучить физику столкновения частиц можно прямо у себя на столе.
Мы набрели на игрушечную версию адронного коллайдера в виде компактного устройства на базе Arduino Pro Mini и светодиодного кольца NeoPixel, которое визуализирует движение, взаимодействие и «аннигиляцию» виртуальных частиц.
В этой статье мы подробно разберем, как собрать это устройство, какое программное обеспечение потребуется, и как интерпретировать поведение разноцветных «частиц».
По сути, это не настоящий «коллайдер», а симуляция движения частиц в 1D-пространстве (по кольцу) под действием «гравитации», задаваемой наклоном платы.

Принцип работы
«Вы не можете позволить себе собственный Большой адронный коллайдер? Я тоже не могу. И потом, куда бы я его поставил? У меня и так достаточно хлама», — так автор проекта объясняет мотивацию его создания.
Устройство на Arduino имитирует поведение элементарных частиц в ускорителе. Светодиоды на кольце NeoPixel выступают в роли «точек трека», по которым движутся разноцветные огоньки — «частицы». Встроенный акселерометр MPU-9150 позволяет управлять движением частиц наклоном устройства.
Наклоняя коллайдер, вы заставляете частицы «скатываться» в ту или иную сторону, сталкиваться, менять цвет (имитируя превращение частиц) и «аннигилировать».
Физика «частиц»: как это работает и что означают цвета
Как только устройство запустится, вы увидите хаотичное движение огоньков. Вот что они символизируют:
- Цвета. Разные цвета обозначают разные типы частиц (например, красный — кварк, синий — лептон и т.д.).
- Взаимодействия. Когда две частицы встречаются на одном пикселе, они либо меняют цвет (рассеивание), либо оба гаснут (аннигиляция), либо порождают новую частицу третьего цвета.
- Темная материя. Автор проекта упоминает «неуловимую частицу темной материи». Это специальный тип частиц, который не взаимодействует с обычными частицами, их можно заметить только по косвенным эффектам (например, они двигаются, не меняя траекторию при столкновении других).
Что такое WS2812B? Это «умные» светодиоды с контроллером внутри. Каждый пиксель можно программировать индивидуально (отсюда разные «частицы»). Под частицами мы понимаем в этом проекте виртуальные объекты в коде, имеющие координату (номер светодиода), скорость и «цвет/массу». Акселерометр (MPU) измеряет проекцию вектора силы тяжести.
Полный список компонентов
Перед началом сборки убедитесь, что у вас есть все необходимые детали.
Электроника
| Компонент | Характеристики | Примечание |
| Arduino Pro Mini | 5V, 16MHz | Основной мозг устройства. Нет USB-порта, требует программатора. |
| MPU-9150 | Акселерометр + Магнитометр | Датчик инерции, определяющий наклон. |
| Конвертер уровней | Bidirectional (3.3V ↔ 5V), 4 канала | Так как MPU-9150 работает от 3.3V, а Arduino от 5V. |
Существует плата MPU-9150 от компании Drotek со встроенным конвертером уровней. Это упростит монтаж, но удорожит проект.
Дисплей и оптика
| Компонент | Характеристики | Примечание |
| NeoPixel Ring | 60 пикселей (рекомендуется) | Обеспечивает высокую детализацию треков. |
| Бюджетная версия | 24 пикселя | Бюджетный вариант, но отображает только 2 частицы одновременно. |
| Минимум | 12 пикселей | Поддерживается прошивкой автоматически. |
Прошивка автоматически определяет размер кольца. Вы можете использовать любую совместимую модель WS2812B.
Инструменты и расходники
- Макетная плата 65×95 мм (полоски меди).
- Провода многожильные и одножильные.
- Паяльник, кусачки, скальпель (или специальный нож для резки дорожек).
- FTDI адаптер для прошивки Arduino Pro Mini.
- Источник питания Power Bank 5V (через USB) или 2 батарейки AA + повышающий преобразователь до 5V.
Пошаговая инструкция по сборке
Шаг 1. Подготовка платы

На макетной плате необходимо сделать разрезы медных дорожек (как показано на схеме красными точками в оригинальном руководстве). Это предотвратит короткие замыкания между цепями питания, земли и данных. Автор советует использовать лупу для проверки качества резки, чтобы не осталось медных перемычек.
Шаг 2. Монтаж Arduino и датчиков
- Припаяйте SIL-гнездак пинам Arduino Pro Mini для упрощения программирования.
- Установите Arduino, MPU-9150 и конвертер уровней на плату. Автор использует одножильный провод, продетый сквозь отверстия компонентов и платы, чтобы жестко зафиксировать их перед пайкой.
- Подключение I2C шины (SCL, SDA) от Arduino к датчику обязательнодолжно идти через конвертер уровней, так как MPU-9150 не терпит 5V логики.

Шаг 3. Подключение неопиксельного кольца
Все кольца NeoPixel имеют 4 контакта:
- Power (Vcc) — 5V
- Gnd — Земля
- Data-In (IN) — вывод D6 Arduino.
- Data-Out (OUT) — не используется, нужен для последовательного соединения нескольких колец.

Производитель NeoPixel советует подключать электролитический конденсатор на 1000 мкФ (16V) между Vcc и Gnd кольца для сглаживания скачков напряжения. Резистор 220 Ом в разрыв линии Data-In снижает риск повреждения от выбросов. Автор проекта признает, что сам не всегда их ставит, но для надежной работы лучше их добавить.
Шаг 4. Ориентация компонентов
Критически важный момент: компоненты на плате и кольцо должны смотреть в противоположные стороны. То есть, если плата прикручена к фанере или акрилу с одной стороны, кольцо должно быть с другой. Первый пиксель кольца (тот, что сразу после входа Data-In) должен быть расположен строго вверху (12 часов).
Программирование и прошивка
Это самый сложный этап для новичков, так как Arduino Pro Mini не имеет USB. Нам понадобится внешний USB-UART адаптер (FTDI).
Настройка среды (Arduino IDE):
- Скачайте и установите Arduino IDEс официального сайта.
- Подключите FTDI адаптер к компьютеру и к пинам Arduino Pro Mini. Схема подключения: GND — GND, VCC — VCC, TX — RX, RX — TX.
- В Device Manager (Диспетчер устройств) найдите номер COM-порта, который занял адаптер.
Есть два варианта .hex файлов (готовых прошивок):
- hex. Стандартная версия для датчика с адресом 0x68.
- SHC-0x69.hex. Для модулей Drotek или других датчиков, которые «отзываются» на адресе 0x69.
Их можно скачать тут.
Команда для загрузки (AVRDude)
Поскольку стандартный функционал загрузки в Arduino IDE иногда «падает» с ошибками типа stk500_recv(): programmer is not responding, есть метод через командную строку.
Откройте cmd и введите:
set COM=COM10
set ARDUINO=C:\Program Files (x86)\Arduino
cd Downloads
«%ARDUINO%\hardware\tools\avr/bin/avrdude» -C»%ARDUINO%\hardware\tools\avr/etc/avrdude.conf» -v -patmega328p -carduino -P%COM% -b57600 -D -Uflash:w:SHC.hex:i
Разбор аргументов:
- -patmega328p — тип микроконтроллера.
- -b57600 — скорость обмена с загрузчиком.
- -P%COM% — обратите внимание, нет пробела между -P и номером порта. Опытные пользователи отмечают, что пробел может вызывать ошибку cannot open COM port.
Диагностика ошибок прошивки
| Ошибка | Возможная причина | Решение |
| ser_open(): can’t open device | Порт занят или неверный номер COM. | Закройте Serial Monitor в IDE. Проверьте Device Manager. Уберите пробел после -P. |
| not in sync: resp=0x00 | Неверная скорость (Baud rate) или питание. | Проверьте, выбран ли в меню Arduino плата Arduino Pro Mini (16MHz). |
| Вращающиеся паттерны | IMU не отвечает. | Проверьте пайку I2C (SCL/SDA). Попробуйте прошивку SHC-0x69.hex. |
Почему возникают ошибки timeout при прошивке?
- Решение 1. Проблема часто не в команде, а в том, что в команде есть пробел после -P. Нужно писать -PCOM3, а не -P COM3.
- Решение 2. Не мучайтесь с ручным вводом. Загрузите стандартный скетч (например, Blink) через Arduino IDE. Когда загрузка завершится, скопируйте последнюю строку с avrdude из лога внизу окна. Замените в ней путь к файлу .hex на название нашего файла (hex).
- Решение 3. Попробуйте программатор -carduino вместо -cavrispmkII, так как у Pro Mini стоит загрузчик Arduino (bootloader), а не программатор AVRISP.
MPU6050 connection failed или connection failed?
На экране сообщение об ошибке подключения к датчику, хотя I2C сканер видит чип. Причина в том, что устройство отвечает по адресу 0x69 (старый стандарт), а прошивка ищет 0x68. Используйте альтернативную прошивку SHC-0x69.hex.
Можно ли MPU-9250 вместо MPU-9150?
Деталь MPU-9150 снята с производства. Везде продают MPU-9250. MPU-9250 имеет другую внутреннюю структуру регистров. Готовая прошивка скорее всего не заработает с ним без правок исходного кода.
Если не умеете программировать, ищите на вторичном рынке именно MPU-9150 или датчики на базе MPU-6050 (только акселерометр, без магнитометра, но для симуляции наклона этого хватит). Покупать MPU-9250 — лотерея.
Можно ли Arduino Uno / Nano вместо Pro Mini?
Да, вы можете использовать Uno — они практически одинаковы, за исключением того, что на Uno уже встроен FTDI-адаптер для прошивки (просто вставьте Uno в USB).
Большая наука в миниатюре
Игрушечный адронный коллайдер — это идеальный пример проекта на стыке физики, электроники и искусства (Pi-Art). Он требует навыков пайки, понимания логики Arduino и терпения при отладке I2C шины, но результат стоит того.
Глядя на мелькание цветных огней, вы будете вспоминать о реальных экспериментах в ЦЕРНе, где физики точно так же (только на графиках) ищут следы новых частиц.