Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
Мы начинаем I Чемпионат по космической робототехнике "Кубок Роверов" 🏆🤖
Сегодня начинается первый день соревнований. Команды потихоньку начинают собираться в НИИ механики МГУ, в котором для них подготовлены аудитории для подготовки своего оборудования, испытательный полигон с естественным природным ландшафтом, и пирожки и кофе 🥧☕️
Пожелаем удачи командам и организаторам!
#rovercup#voltbro#кубокроверов
Эксперты завершили оценку Итоговых отчетов для допуска к финалу чемпионата по космической робототехнике "Кубок Роверов" и мы готовы объявить результаты. Команды, которые приглашаются на финал:
🏆Лига 1. Навесное оборудование для ровера:
1. KSX - г. Великий Новгород
2. Высотка - г. Москва
3. АЦТ-111 - г. Санкт-Петербург
4. Квазар - г. Калининград
5. Лужайка - г. Волгоград
🏆Лига 2. Малый ровер:
1. techno_team - г. Новосибирск
2. PowerRangers - г. Новосибирск
3. КТИМ - г. Новомосковск
Спасибо командам Космостарс и Космоксик, которые не прошли в финал, за участие! Мы надеемся, что за этот год вы приобрели необходимые навыки для успешного участия в нашем Чемпионате в следующем году!
Напоминаем, что финал пройдет с 8-го по 11-ое июля на базе НИИ механики МГУ им. М.В. Ломоносова
Всю информацию о Чемпионате можно найти на сайте: https://roverchallenge.ru/
#voltbro#кубокроверов#братьявольт
У нас продолжается региональный отбор в конкурсе "АгроНТРИ"
Мы ведем номинацию АгроРоверы и год от года она становится всё серьезней и серьезней. Наша номинация достаточно сложная, но огромный прогресс в том, что мы получаем обратную связь от коллег в АгроВУЗах - что как лучше организовать и как доделать.
Это огромный прогресс по сравнению с первыми разами, когда просто все делали как могли.
Будем расти дальше. Спасибо огромное всем агроВУЗам, которые не бросили из-за сложности, а постарались разобраться.
#АгроНТРИ#АгроРоверы#Voltbro
Небольшой видеоролик о прошедшем финале I-го Чемпионата по космической робототехнике "Кубок Роверов" 2025 года!
https://vk.com/video-206862623_456239563
Будем ждать всех в следующем соревновательном году!
Уже скоро анонс еще одного роверного соревнования 🤖🏎
#rovercup#кубокроверов#voltbro#братьявольт
🚀 1 ноября завершается регистрация на чемпионат по космической робототехнике «Кубок Роверов»!
Регистрация членов команд здесь: roverchallenge.ru/reg
👨🚀 Участвовать могут как школьные (с 8-го класса), так и студенческие команды. Компетенции в команде: электронщик, конструктор, программист.
Регламент чемпионата соответствует международным соревнованиям RoverChallenge, в которых российская команда заняла 2-е место в Канаде в этом году!
Вас ждут космические задания, где вы:
- освоите ROS (Robot Operating System), Python и C;
- попробуете симулятор Gazebo;
- поработаете с электроникой, схемотехникой и системами связи;
- прокачаете навыки проектной деятельности — командную работу, защиту проектов, видеомонтаж, создание презентаций и документации.
Чемпионат проходит при поддержке Госкорпорации «Роскосмос» и НИИ механики МГУ им. М.В. Ломоносова.
#voltbro#кубокроверов#rovercup#вольтбро#роскосмос
🚀 Начинаем новый сезон чемпионата по космической робототехнике «Кубок Роверов»!
Если ты хочешь попробовать себя в разработке роботов, работающих в реальных условиях, — этот чемпионат для тебя.
📅Регистрация открыта до 1 ноября 2025 → roverchallenge.ru/reg
👨🚀 Участвовать могут как школьные (с 8-го класса), так и студенческие команды.
Вас ждет работа над проектом, где вы:
- познакомитесь с космическими миссиями и планетоходами;
- освоите ROS (Robot Operating System), Python и C;
- попробуете симулятор Gazebo;
- поработаете с электроникой, схемотехникой и системами связи;
- прокачаете навыки проектной деятельности — командную работу, защиту проектов, видеомонтаж, создание презентаций и документации.
Каждая команда сможет придумать и реализовать свой научный проект по исследованию планет.
Видео с Финала I-го чемпионата: https://vkvideo.ru/video-206862623_456239563
ℹ️ Подробнее о чемпионате — на сайте: roverchallenge.ru
Чемпионат проходит при поддержке Госкорпорации «Роскосмос» и НИИ механики МГУ им. М.В. Ломоносова.
🏆 Впереди вас ждет много промежуточных отчетов и финальных призов, а финал состоится в Москве в июле 2026 года.
Ждем как начинающих, так и опытных робототехников!
#voltbro#кубокроверов#rovercup#вольтбро#роскосмос
Первый набор электроники VBCores для участия в чемпионате "Кубок Роверов" наконец-то нашёл своих счастливых обладателей! Ими стали прошлогодние финалисты Лиги 1 — команда "Высотка". 🏆
Мы уверены, что с этим комплектом у них получится добиться ещё более впечатляющих результатов, создавая своего собственного ровера для Лиги 2.
А мы тем временем готовим учебный курс по работе с VBCores — от первых шагов и запуска простых примеров до сборки настоящей электроники для управления ровером.
#voltbro#вольтбро#кубокроверов#rovercup#vbcores
🚀 Друзья! Напоминаем, что регистрация на II Чемпионат по космической робототехнике «Кубок Роверов» продолжается!
«Кубок Роверов» — российский аналог международных Rover Challenge, где школьники и студенты создают собственные планетоходы и проверяют их в условиях, максимально приближенных к реальным космическим миссиям. Это шанс проявить инженерное мышление, прокачать навыки проектирования, электроники и программирования, научиться работать в команде и стать частью сообщества будущих исследователей космоса.
✨ В этом году участников ждёт:
1️⃣Совершенно новая станция для задачи технического обслуживания в Лигах 1 и 2
2️⃣Переход на ROS2 в Лиге 1
3️⃣Рекомендуемые наборы электроники на базе STM32
4️⃣Ещё больше образовательных видео и методических материалов
🔗Успейте зарегистрироваться: https://roverchallenge.ru/reg
📸 Фото, результаты прошлого года и все подробности — на официальном сайте: https://roverchallenge.ru/
Будущее космоса начинается здесь — присоединяйтесь к Чемпионату «Кубок Роверов»!
#voltbro#кубокроверов#rovercup#вольтбро#роскосмос#msu