For Russian description scroll down the page.
Описание на русском --- внизу страницы.
Caustic project is a full-featured outdoor and indoor wireless lasertag system. It consists of principial schemes, PCBs and firmware for devices used in lasertag game. For now, system consists of:
- Player's gun
- Player's sensor to detect shoots
- Smart control point for 'capture the point' game and some other things
- Bluetooth bridge that provide interconnection between your smartphone and all the devices in game near bridge
- Android application (currently alpha state) to control the game and change settings
Caustic Lasertag System licensed under GPLv3. Third party code used in project may be licensed under other licences, see corresponding files and comments in the sources. Copyright 2016, see AUTHORS file.
Here is a directories description:
Android/
--- Android application to control the game and change settingscpp-sources/
--- MCU firmware. Here:bootloader-usb/
is a reference to https://github.com/DAlexis/stm32-usb-bootloader --- bootloader that supports cardreader functionality and flash controller from fileflash.bin
universal-device/
--- universal firmware for any Caustic LTS device.
Docs/
--- some datasheets and useful documents for projectmedia/
--- sounds and its raws. Most of them were get from https://www.freesound.org/schematic/
--- electic schemes, PCBs and gerbers made with KiCadtools/
--- some scripts to simplify primitive jobssdcards/
--- samples of devices' SD cards containment
Now only Linux OS supported to build Caustic LTS firmware, but I use CMake
so add Windows support should not be a very complicated task.
You need to install cmake
, arm-none-eabi-gcc
compiler with arm-none-eabi-newlib
and arm-none-eabi-binutils
installed, and installation dirs should be in $PATH
. Simply installation from your distro's repository usually enough. To flash the MCU with ST-link programmer you should install stlink
utility. Then:
-
Clone this repository:
git clone https://github.com/DAlexis/caustic-lasertag-system.git
-
Go to
cpp-sources
directory:cd caustic-lasertag-system/cpp-sources
-
Download git submodule containing bootloader:
git submodule init && git submodule update
-
Run
build.sh
for debug build andbuild.sh release
for release one
Then, to program the board:
-
Connect ST-link programmer to the board and to yout PC's USB
-
To flash main firmware run
flash-universal-device.sh
-
To flash bootloader run
flash-bootloader.sh
To flash release version addrelease
parameter to both scriptsNOTE: flashing bootloader means removing previous firmware. To flash main program after flashing bootloader you should rename
universal-device.bin
toflash.bin
and copy it to sd-card's root, then reboot device. -
Then, copy proper sh-card containment to your device's sd-card. For example, for gun you should copy all files and dirs from
sdcards/rifle
to gun's sd-card.
Caustic --- это полноценная беспроводная система для внеаренного и аренного лазертага. Проект содержит принципиальные схемы, печатные платы, прошивки микроконтроллера и другой необходимый код. На данный момент, система включает:
- Оружие игрока
- Датчики попадания ("головная повязка") для игрока
- Умная контрольная точка для игры в "захват точки", поддерживающая другие вспомогательные функции
- Bluetooth-мост, позволяющий подключать смартфон одновременно к любому количеству устройств системы
- Приложение для Android (на данный момент в альфа-версии) для управления игрой и настройки игровых устройств
Система Caustic лицензирована под GPLv3. Система включает код тертьих лиц, который может быть лицензирован под другими лицензиями. Copyright 2016, Алексей Булатов.
Проект устроен следующим образом:
Android/
--- Приложение для Androidcpp-sources/
--- Прошивка для контроллераbootloader-usb/
--- ссылка на https://github.com/DAlexis/stm32-usb-bootloader --- загрузчик, превращающий устройство в кардридер, если при запуске оно подключено к компьютеру по USB. Прошивает контроллер из файлаflash.bin
universal-device/
--- универсальная прошивка для любого устройства системы Caustic
Docs/
--- даташиты, документация и некоторые полезные документыmedia/
--- звуки и их исходники. по большей части, взяты с https://www.freesound.org/schematic/
--- схемы, печатные платы, герберы, сделанные в KiCadtools/
--- некоторые скрипты, упрощающие некоторые простые действияsdcards/
--- содержимое SD-карт для устройств разных типов
На данный момент поддерживается сборка только из-под Linux, однако проект использует CMake
, так что добавить поддержку Windows не составит труда.
У вас дожен быть установлен cmake
, компилятор arm-none-eabi-gcc
, включая arm-none-eabi-newlib
и arm-none-eabi-binutils
. Компилятор должен быть доступен в $PATH
. Обычно, достаточно просто установить соответствующие пакеты из репозитория вашего дистрибутива. Для прошивки нужен программатор ST-link и соответствующая утилита stlink
.
Загрузчик не является обязательным.
Итак, для установки:
-
Склонируйте этот репозиторий:
git clone https://github.com/DAlexis/caustic-lasertag-system.git
-
Перейдите в папку
cpp-sources
:cd caustic-lasertag-system/cpp-sources
-
Инициализируйте и загрузите подмодуль, содержащий загрузчик:
git submodule init && git submodule update
-
Запустите
build.sh
для сборки в режиме build, илиbuild.sh release
для сборки в release
Теперь, чтобы запрограммировать устройство:
-
Подключите программатор к плате устройства и к компьютеру. Включите питание устройства
-
Чтобы прошить основную программу, наберите
flash-universal-device.sh
-
Чтобы прошить загрузчик:
flash-bootloader.sh
Чтобы прошить программу, собранную в release, добавьте параметрrelease
к каждому из скриптов.ВАЖНО: При прошивке загрузчика стирается всё, что до этого было зашито в контроллер. Поэтому после прошивки загрузчика нужно сделать следующее: переименовать
universal-device.bin
вflash.bin
и положить в корень sd-карты (это можно сделать, просто подключив устройство по USB к компьютеру). После перезагрузки устройства загрузчик автоматически зальет прошивку в контроллер. Вообще говоря, можно вообще не использовать загрузчик. -
Скопируйте необходимое содержимое на sd-карту. Например, если устройство --- это оружие игрока, скопируйте всё содержимое
sdcards/rifle
на карту устройства. Именно так прошивка поймёт, "кем быть".