В до-андроидо-айфоновские времена мне в руки попал телефон с qwerty-клавиатурой (Sony ericsson P990i), с которым я проходил несколько месяцев. Мне так понравилось сочетание скорости, удобства и ощущений этого метода ввода текста, что последующие телефоны я выбирал в первую очередь по наличию полноразмерной клавиатуры. С последним клавиатурником Sony ericsson XPERIA X1 я проходил аж до конца 2016го года.
Большого морального усилия стоило решение пересесть на современный сенсорник, но программно-аппаратных мощностей windows mobile стало сильно не хватать. В итоге фактором, повлиявшем на моё решение, стало наличие OTG на новом Andriod-смартфоне, и умение создавать на базе arduino pro micro устройства ввода. Я не сдался.
Вдохновившись самой удобной из испробованных, клавиатурой P990i, я напаял на макетке тактовые кнопки, добавив два столбца для русских букв, которые обычно отправлялись на Fn-слой: Х,Ъ,Ж,Э,Б и Ю. Подключил их матрицей на pro micro и испытал в деле:
К сожалению, тот смартфон у меня прожил недолго, и все наработки пришлось переносить на новый: Xiaomi Redmi 4 Pro. Для обкатки прошивки я решил сделать чехол-клавиатуру, как из поста, на который я ссылался в начале своего. Надо повышать степень интеграции.
Заказал самые плоские и компакнтные из возможных кнопок, распаял их на макетку, закрепил с обратной стороны pro micro. Заказал у одного знакомого корпус клавиатуры на гидрорезке, у другого знакомого 3д-печать кнопок. Собрал всё воедино (Извиняюсь за дендрофекальные методы, на тот момент это был максимум моих возможностей):
Три кнопки над клавиатурой дублируют меню|домой|назад (Андроид понимает медиаклавиши USB-клавиатур), а при наборе текста и три секунды после ввода последнего символа превращаются в кнопки выбора вариантов завершения слов (В swiftkey ctrl+1, 2 и 3 соответственно).
Proof of concept сработал: текст набирался, кнопки под экраном работали корректно, поэтому было решено продолжать интеграцию, чтобы в итоге получить смартфон обычного (Ну или хотя бы не настолько чудовищного) веса и размера. Это должен быть вертикальный слайдер.
Я разобрал свой телефон, чтобы понять, в каком месте разделить его схему, чтобы как можно больше оставить внизу для правильной развесовки. Оказалось, что на верхней сдвигающейся части можно оставить только динамик и экран с тачскрином, раснеся их с основной платой единым шлейфом. Вооружившись копеечным USB-микроскопом, я посчитал общее количество проводников в шлейфе экрана и тачскрина, добавил два для динамика и начал поиски подходящего по длине и количеству проводников шлейфа с разъёмами. Мягко говоря, это было непросто. Подобрал такой, на 51 проводник:
Дальше мне предстояло разобраться с программой DipTrace, которую используют для создания проектов печатных плат для дальнейшего заказа. Разметил на будущей плате пятаки для кнопочных мембран, светодиодов подсветки, ардуины, соединил всё дорожками. Дальше нужно было разметить контакты для разъёмов шлейфов, которых не было в библиотеках DipTrace. Снова вооружившись микроскопом и комплектной линейкой, я начал высчитывать размеры:
По зелёной линии плата разрезается: часть с ардуиной и контактными площадками клавиатуры остаётся на нижней стороне телефона, к ней подпаиваются шлейфы, идущие на материнскую плату. Вторая часть отправляется на подвижную часть с экраном, к которой подключаются шлейфы от экрана, тача и провода динамика. Между первой и второй частью будет проходить пятидесятипиновый шлейф, купленный ранее.
Распаял все элементы на плате. Разъёмы тоже пришлось паять обычным паяльником, потому что от фена они деформировались. Хорошо, что был запас по разъёмам.
Ах да, герконы. Они нужны для того, чтобы подключать ардуину к телефону только тогда, когда слайдер открыт. Дело в том, что в этом проекте нет места для юсб-хаба, поэтому подключённая клавиатура забирает себе функционал юсб-разъёма телефона, не позволяя подключать флешки и заряжать телефон быстрой зарядкой. Поэтому герконы отключают не только питание ардуины, но и D+ и D-, оставляя всегда подключённым только GND.
Потерпите, осталось немного.
Я заказал новый корпус и экран, чтобы продолжить работу над проектом и не остаться без телефона. Я же всё ещё продолжал использовать его как основное устройство. Так же нарисовал в DipTrace и заказал макет шлейфа, который приводит сигналы экрана и тача от платы с клавиатурой на материнку телефона.
Вырезал в корпусе все необходимые отвестия, прикинул плату:
Ииии... На этом всё. В процессе проверки оказалось, что я ошибся с распиновкой гибкого шлейфа, и при стоимости около 3500 рублей пришлось отложить проект на неопределнённый срок (Моя З/П на тот момент была 21к, большая часть которой уходила на обязательные траты). Дальше фокус внимания сместился на другое, а потом переезд, смена работы, смена смартфона, и так далее. Так этот грандиозный проект и лежит дома в столе, уже неактуальный и ненужный.
Если бы всё пошло как надо, следующим этапом было бы проектирование и заказ корпуса со слайдерным механизмом из алюминия, который должен был вклеиваться в стардартные пазы для экрана на нижней части и держать экран на верхней части. Дальше изготовление кнопочек из оргстекла (Про фотополимерную печать я узнал сильно позже), сборка всего воедино и торжественная презентация всему Интернету. Но имеем что имеем.
После просмотра фильма День сурка, захотел завести себе перекидные часы. И так как желание не пропало за много лет, а купить в магазине не наш выбор, то я решил сделать из сам. В ящике с деталями нашёл контроллер, накропал программу, а корпус напечатал на 3d принтере на работе. Рассыпуха на плату стоила в полтора раза дороже, чем часы в магазине, но здесь важен путь, а не цель. И так, представляю вашему вниманию... Часы.
Небольшая история о создании самодельного 3D принтера. Пара советов.
В самом низу ссылки на проект - сделайте своими руками.
Делал я это, ни черта не зная о принтере, платах и прочем. Опишу, что помню, с чем сталкивался, и какое решение находил. Скажу сразу, если вам нужен просто 3D принтер - купите. Если нужен большой, масштабируемый принтер, но нет денег - сделайте. Если у вас есть принтер - напечатайте запчасти ближнему своему. Если хотите иметь возможность модернизировать, чинить, менять, просто знать как оно работает - сделайте. Если хотите просто печатать не парясь - с 3D принтерами так не получится, но лучше купить.
Ну и как пример: у человека сгорел Ender 3 (дешевая громыхалка, которую модернизировать надо в половину стоимости). Просто плата полетела. А на ней драйверы. Припаяны. Надо менять все, если сам перепаять не можешь.
Предыстория: Собственно, напечатал себе CoreXY на напечатанный CoreXY, кой мне временно выделил незнакомец. Не смотря на то, что у меня образец был перед глазами - это была та еще возня. Так как принтер приехал разобранный, я потратил пару недель только чтобы его подключить, что весьма не очевидное занятие, учитывая, что гражданин паял провода, не парясь насчет их цветов, а результат первого подключения Arduino Mega от разных производителей +драйверов от оных же приводил к случайному результату: каретка может поехать куда угодно. Запчасти заказывал на Ozon, вместо Ali, иначе бы до сих пор собирал бы это дело.
О пластиковых деталях. Вначале я хотел использовать максимум пластиковых деталей, вроде шкивов и подшипников - не занимайтесь этим грязным извращением. Результат выйдет препаршивейшим.
О профилях. Я использовал профили 40х40, поскольку они у меня были и они халявные. Если не желаете размечать и сверлить пару сотен отверстий, лучше купите алюминиевый профиль для станков. Экономия того не стоит - убьете больше времени. Я этим занимался интереса ради - сколько всего можно не покупать. Насчет точности - она больше от натяжения ремней зависит, чем от перпендикулярности профилей.
Не используйте SBS. Мне привезли пару катушек с пластиком SBS, коим я начал печатать запчасти. Без запекания он начал расслаиваться через месяц, из-за чего пришлось все перепечатывать на Petg, когда принтер буквально разваливался и держался на кабельных стяжках
О подогреве стола и адгезии: Для Petg он не нужен. К тому же подогрев только помогает с адгезией первого слоя (прилипание). 12V просто не хватит, чтобы разогреть стол до рабочей температуры. Для хорошей адгезии - используйте стекло (не стекловолокно). Единственный его недостаток - не оторвать деталь. Потому я использую обычный карандашный клей. Следов не оставляет, приклеивается умеренно. Алюминиевую подложку можно найти нахаляву.
У Ramps платы есть проблема - при подключении высокого напряжения, пластиковые детали могут расплавиться, а пара деталей выпаяться. Потому я использую только питание для хотэнда.
О механизме подачи пластикаЯ использую Bulldog. Из преимуществ - нить не вылетает, нет переэкструзии. Из недостатков - нет переэкструзии. Т.е соплом 0.4 с шириной 0.8 и высотой 0.3 не попечатаешь. Так же нельзя печатать на скоростях 140 и прочим. +Разок мне попался брак.
О блоках питанияЯ умудрился спалить два блока питания пока не запустил принтер. Один из-за того что не стоит использовать хотэнды с неизвестными параметрами напряжения и пытаться перещелкивать фазы на коробочке, чтобы таки разогреть их. Жутко глупо получилось. На втором разорвало предохранитель.
Как спалить Arduino + RampsСамое простое решение - неправильно подключить датчики-концевики. С драйверами - плевать. А вот концевики при срабатывании приводят к неким изменениям в плате. При доле везения ее при том можно использовать. У меня перестали работать термодатчики и я долго думал что дело именно в них. Ну и экран перестает работать без USB при любом косяке.
Как попасть домойПри первом запуске каретка, если каретка поедет туда куда вы хотите - к датчикам концевикам - это будет чудо. Скорее всего вам придется переворачивать провода для драйверов, до достижения нужного результата. Хотя можно и просто концевики переместить и не париться. Но это по XY. По Z каретка попросту не выедет на нужную высоту, что придется править в проге Pronterface: Запускаем принтер и через меню настроек производим инициализацию EEPROM; Подключаем слайсер и отправляем команду M851 Z0; Вводим G28; После хоуминга опускаем сопло, пультом управления осями в слайсере, до нужной высоты, проверяя расстояние листом бумаги А4 между столом и соплом; После выставления нужной высоты смотрим на дисплей принтера и записываем получившуюся отрицательную высоту по оси Z, к примеру у меня Z-1,29; Вписываем значение в команду M851 Z-1,29; Сохраняем вписанные значения в EEPROM командой М500; Проверяем правильность установки офсета. Отправляем команду G28, после хоуминга ложим листок на центр стола, отправляем команду G1 Z0 и проверяем листочком высоту сопла.Об оси ZСоветую ставить 2 двигателя, иначе рано или поздно произойдет перекос, и вам придется постоянно настраивать рабочий стол, подкладывая с одной стороны монетки.
Трещины между Z слоямиТак как я использую винт, соединенный с двигателями через муфту, при печати по вертикали в масштабе 0.2 появляются трещины. Вот меры по устранению: - Купить двигатель с винтом, отказавшись от муфт. Не пробовал, но советы поступали - Настроит подачу пластика в Marlin. Т.е при подаче на 1см, пластика должно вылезать на 1см. Это очевидно, но я с этим не заморачивался поначалу, ибо и так работает, а отрегулировать подачу можно и программно. - Затянуть ремни. Это слегка выровняет стенки - Увеличить температуру. Я использую 240 вопреки советов производителей. При этом прекрасно сплавляется пластик, так что линий не видно. Единственно что 245 градусов блок питания может не вытянуть, и на 240 иногда температура "уходит". Ну и так как у меня экструдер "слабый", это помогает ему толкать пластик. - Увеличить подачу. На 10%, посмотреть, если не устраивает, продолжать увеличивать. до 150% - Если при 150% проблема остается - сопло засорилось.
О смене и чистке сопелТак как мне лень выкручивать сопло, я просто купил два хотенда, и поставил сопла на 0.2 и 0.4. Учитывая, что сопла из латуни - они постепенно из шестигранных превращаются в круглые. Сопло нужно снимать при температуре большей, чем температура печати, если не хотите, чтобы пластик залил модель. Ну это понятно. Сами сопла не дорогие, и это расходник, но их можно нагреть на газовой плите до красна - весь мусор выгорит и их можно будет использовать повторно.
Перпендикулярность моделиДля проверки достаточно напечатать кубик и измерить гипотенузы соответствующих углов. Они должны быть равны. Если проблема по XY: - Я печатал квадрат - просто пара линий. Проверял их параллельность осям. Они не параллельны, но это не страшно... Ослабил ремни и затянул из так, чтобы компенсировать искажения. Т.е один из них надо натянуть чуть сильнее, а потом аккуратно все это дело подтянуть. Если проблема по оси Z:- С высокой долей вероятности раскрутился шкив на движке. Эта зараза может нормально работать при вас, но в процессе печати пропускать часть ремня вперед, постепенно искажая деталь. Ну и в целом все должно быть намертво прикручено в идеале. Хотя я до сих пор забил на некоторые "лишние винтики", в конструкции.
Приостановка печати в середине печатиПричины: - Подключение USB к ПК. Не знаю, как с блоками на 1000, но мой на 500 регулярно отключал оборудование, которое не может питать. Так что я подключаю принтер через док станцию. - Коробка для Ардуино давит на кнопку сброса. У меня открывающийся короб, и крышка как раз напротив кнопки сброса. Отверстие для нее смещено и я в целом забил на это.
В целом о печати чужих моделей: Это касается механики и старых проектов. Если можете пользоваться, скажем, Blender, печатайте тестовые образцы для зубцов, отверстий, пазов. перспектива шлифовки отверстий в проекте, кой хотя бы 5 часов печатался - мало увлекает.
По цене: Если есть инструменты, ничего не сгорит, все получится с первого раза, не экспериментировать, да не покупать профили - можно уложиться тысяч в 20-25 на 2021год. Получите точный масштабируемый принтер с печатью хоть метр на метр.
Найдя незнакомый флеш накопитель, будьте осторожны, вставляя его в свой ПК. Любой USB HID контроллер поместится в корпус от флешки. Последствия могут быть очень неприятными. Для примера в ролике я набросал "мирную" программу для ATmega32u4.
При подключении к компьютеру Ардуино перехватывает управление с клавиатуры и мыши на себя, открывает окно "Выполнить", меняет раскладку клавиатуры на "EN", вызывает Paint, разворачивает его во весь экран, открывает окно "Свойства изображения", устанавливает разрешение 1280х1024, одобряет и начинает рисовать символ "@", после окончания рисования разворачивает изображение на весь экран и возвращает управление клавиатуре и мыши. Все происходит за несколько секунд.
Отличный комментарий!
помнится паста с баша, где чувак в маршрутке у кого-то на рюкзаке подрезал флешку с надписью 256, вставил себе в комп и тот пошел по пизде. чувак исправил с 256 на 257 и повесил на рюкзак себе
Бабушка хотела выкинуть старый дисковый телефон, но я ее остановил, хотя телефон мне был нужен не весь. Я еще не знал, как именно реализую сложившийся в голове пазл, но точно знал, что я это сделаю! =))
Под видео опишу вкратце, как это сделать с применением контроллера Arduino.
Подключение диска от советского телефона к Arduino Leonardo. (Работать будет под любой ОС)
Вместо Leonardo можно использовать любую другую плату, только в скетче надо будет применять не Keyboard а Serial для вывода результатов.
#include <Bounce.h>; //для снижения эффекта дребезга Bounce bouncer = Bounce(2, 40); int pulses = 0; void setup() { pinMode(2, INPUT); pinMode(3, INPUT); pinMode(13, OUTPUT); Keyboard.begin(); } void loop() { while(digitalRead(3) == HIGH) { //пока идет набор if (bouncer.update()) { //если произошло событие if (bouncer.read()==0) { //если пришел сигнал с контактной группы pulses++; //добавить 1 в переменную bouncer.rebounce(500); } } } if(pulses > 0 && pulses < 10) { //чтобы в com порт шли только реальные цифры и ничего больше Keyboard.print(pulses); //шлем в порт pulses = 0; // обнуляем переменную } else if(pulses == 10) { //если с номеронабирателя пришло 10 pulses = 0; //то реальная цифра - ноль (особенности набирателя), заодно обнуляем переменную Keyboard.print(pulses); //шлем в порт } }
Привет, Реактор! Выношу на Ваш суд разработку контроллера для авиасимуляторов, спроектированную и собранную мной и двумя моими товарищами.
Контроллер авиасимов на Arduino Micro + инерционный трекер на Arduino Nano с акселерометром GY-85 + VR-Box. Пока что первая, сырая, но, тем не менее, уже эффектная версия. Многое еще подлежит переделке, но впечатлений и эмоций очень много.
Узел Педали+РУС начерчен и изготовлен из стали при помощи плазменной резки, всё на подшипниках и газ-лифтах. Оси на датчиках Холла. РУД временно собран из Lego и потенциометра на 10КОм. Рукоятка РУС начерчена и распечатана на 3д принтере.
В WarThunder показания приборов тянутся из игры и выводятся в WEB-интерфейс.
Пока из очевидных недостатков тяжелая ручка управления самолетом с большим ходом. Во первых масса не дает работать возвратным пружинам корректно срабатывать (при сборке под руку подвернулась стальная толстостенная труба, далее будет алюминиевая), во вторых ручка, вероятнее всего, будет укорочена, а механизм джоя поднят выше и уменьшен диапозон свободного хода, пока же трубой стучим по коленям)) Зато ручка "быстросъем", на защелках от пневматики.
Как сделать трекер, хорошо описано во многих статьях в рунете, а в софтвенной части контроллера нам очень помог проект MMJOY2.
Вот, получился такой небольшой сумбур, первопост всё-таки.
Всем привет! Меня зовут Илья и у меня есть хобби - это любительское ракетостроение. Точнее даже, скажем так, карамельное ракетостроение. За то время, что я занимаюсь темой, я успел набить себе немало шишек, во многом действуя по наитию и ставя различные, часто неудачные, эксперименты. Возможно, кто-то скажет, что я криворук и это не моё, что нужно срочно учить матчасть, что всё придумано до меня. И, пожалуй я соглашусь. Но, на мой взгляд, в любительском ракетостроении, как хобби, важен сам процесс инженерных поисков. Решение возникающих проблем и, конечно, создание себе новых. Наверное было бы проще взять уже готовую модель, заправить её готовым двигателем и…Но если бы действительно этим путём пользовались все, то наверное не было бы и развития.
Ракетостроение, даже не ракетомоделизм из кружков (Model Rocketry или High Power Rocketry), пожалуй отличное хобби для технаря, и, конечно айтишника. Даже сам Джон Кармак (один из создателей Doom, кто не знает) в детстве занимался ракетостроением, что уже после id Software переросло в свою ракетную компанию Armadillo Aerospace.
И таких, как он и я, к счастью не единицы. Хотя и совсем немного по земному шару. Наверное это из-за трудоёмкости, спектра проблем из разных научных областей. У той же Амперки в серии «Ракета против Лёхи» по официальной версии всё закончилось как раз из-за отсутствия возможности столько вкладывать ресурсов. Потому что процесс создания любой ракеты - это череда неудач, начала сызнова и итеративное приближение к цели. И к новой. И к ещё одной.
Для меня увлечение ракетами началось с . Сама простота и дешевизна такой «ракетой техники» меня подкупила и я решил воспроизвести этот эксперимент. Собственно тогда родилась цель - сделать такую ракету, которая бы взлетела метров на 300-400, ну, до полкилометра, и спокойно бы вернулась обратно на парашюте. С полезной нагрузкой: скажем, с небольшим бортовым компьютером и камерой. Всё тогда казалось просто, если бы не нюансы, коих было… много…
Конструкция ракеты
Конструкции большинства ракет в основном схожи между собой. Они удовлетворяют в большинстве случаев, так скажем, идеальной "эмпирической ракете":
- длина ракеты полная: L= 15~25 D
- длина головного обтекателя: Ln = 2.5~3.5*D
- размах стабилизатора: S = 1~2*D
- общая площадь стабилизаторов: F= 0,7~0,8*A, где A=L*D - площадь продольного сечения корпуса,
- запас устойчивости: k = 1,5~3*D
В зависимости от поставленных целей и используемых компонентов параметры ракеты могут варьироваться, конечно же, но почти всегда укладываются в вышеобозначенные границы. В моём случае размер ракеты будет определяться исходя из размеров двигателя, парашюта и электроники. Чтобы уместить всё в корпусе ракеты я использую трубу диаметром в 50мм. Трубу можно сделать, в идеале, из стеклопластика, а можно взять ПП канализационную трубу - она сравнительно прочная и лёгкая. Головной обтекатель так же делается из этой же трубы - вырезается "корона" (длиной в 2-3 диаметра ракеты) и склеивается вместе, образуя параболическую форму. Хотя, конечно есть и другие варианты - выточить обтекатель из деревянной заготовки на токарном станке или распечатать его на 3D-принтере. Обтекатель должен быть максимально правильной формы, гладким - это необходимо для снижения аэродинамического сопротивления ракеты и снижения вредных срывных течений в носовой части ракеты.
Стабилизаторы стоит изготавливать из достаточно лёгкого, но прочного материала. Например пластика, фанеры или бальзы. Форма и размер стабилизаторов зависят от размеров ракеты, а если быть точным, то от расположения центра тяжести ракеты и центра давления.
Ракета никогда не летит прямо, а все время поворачивается от направления полета то в одну, то в другую сторону, т.е. рыскает. На ракету набегает встречный поток воздуха, направление которого строго противоположно направлению полета. Получается, что ракета все время поворачивается боком к набегающему потоку на некоторый угол. В аэродинамике такой угол называется углом атаки. Мы уже установили, что ракета, как любое твердое тело, поворачивается относительно ЦТ, но результирующая сила давления воздуха приложена совсем к другой точке, т.е. к ЦД. Если ракета имеет симметричную форму относительно оси, то ЦД потока воздуха расположен на оси ракеты. Если ЦД расположен ближе к хвосту ракеты, то давление воздуха стремится вернуть ракету навстречу набегающему потоку, т.е. на траекторию. Ракета будет устойчива. Тут вполне допустима аналогия с флюгером. Если ракету насадить на стержень, проходящий поперек оси ракеты через ЦТ и вынести её на улицу, где сильный ветер, то устойчивая ракета повернется навстречу ветру. Из этих же соображений делается простейшая проверка ракеты на устойчивость с помощью веревки: привязываем веревку к ракете в месте расположения центра тяжести и начинаем вращать ракету вокруг себя. Если ракета при вращении ориентируется строго по направлению движения, то она аэродинамически устойчива, если ракету крутит в разные стороны или она летит хвостом вперед, то ракета неустойчива.
Центр давления рассчитывается используя метод определения центра давления по Борроумену. К слову сказать, есть и другой, хотя и куда менее точный способ определения центра давления - метод аэродинамической проекции. В любом случае, какой бы мы метод не использовали, чтобы ракета была устойчивой, расстояние между центром тяжести и центром давления должно составлять хотя бы 1,5 диаметра самой ракеты. Эта, так называемая "устойчивость в диаметрах" может быть и выше, хотя устойчивость больше 2-2,5 диаметров не рекомендуется, так как в этом случае стабилизаторы будут больше, а значит тяжелее. Кроме того, большая площадь стабилизаторов приведёт к тому, что ракета будет испытывать большие боковые нагрузки, что приведёт к тому, что она будет, как флюгер разворачиваться по ветру и лететь не вверх, а вбок; в худшем случае - флаттер приведёт к разрушению ракеты в полёте. Подробно об устойчивости можно почитать здесь.
Есть готовые программные решения для расчёта параметров ракеты. Я использую Rocki-design, но чаще, тем более в англоязычном мире используют OpenRocket. Подобрав нужный размер стабилизаторов, вырезаем их из заготовки и прикручиваем винтами к корпусу, используя металлические уголки. Крепление должно быть жёстким. Для лёгких ракет сгодится и просто приклеивание, но для тяжелой ракеты лучше перестраховаться.
Система спасения - одна из самых сложных в ракете. Она включает в себя парашют, крепление к корпусу, а так же механизм выброса парашюта. Она в обязательном порядке порядке должна быть проверена не один раз на земле. Я использую пиротехнический вариант выброса парашюта (мортирка), инициируемый бортовым компьютером. Хотя встречаются и другие решения - механические и пневматические, или вовсе инерционные. Пиротехническая система одна из самых популярных и простых, содержит минимум компонентов.
Сам парашют - это купол диаметром в 70 сантиметров, сшитый из прочной и лёгкой ткани (рип-стоп). Можно рассчитать точно необходимую площадь парашюта для плавного спуска в зависимости от массы ракеты. Хотя, из практики, парашют лучше делать меньше диаметром - это увеличит скорость падения ракеты, конечно, но ракету будет меньше сдувать ветром, и поэтому меньше шансов намотать километры от места запуска до места падения.
Не менее важно обеспечить крепление ракеты с корпусом. Обычно в корпус устанавливаются силовые болты, к которым привязывается силовой трос (фал), соединяющийся со стропами парашюта. Фал пропускается через пыж - лёгкий цилиндр, который впритирку устанавливается ко внутреннему диаметру ракеты - он необходим для выброса парашюта, работая как поршень, приводимый в движение газами из мортирки.
В отличие от ракетомоделизма, в любительском, "карамельном" ракетостроении используются собственно изготовленные двигатели. Ракетные двигатели - это долгий и обширный разговор, который можно растянуть на не одну статью. Если рассказывать очень кратко, то в любительском ракетостроение в большинстве случаев используются твердотопливные двигатели, которые по конструкции очень схожи с двигателями настоящих твердотопливных ракет. Отличие состоит в материалах из которых изготовлен двигатель и в используемом топливе. Чаще всего для изготовления двигателей используется бумага, пластик или композит (стеклоровинг). В моём случае - пластик (полипропиленовая армированная труба в 40мм внешним диаметром). В качестве топлива используется смесь из калиевой селитры и сахара\сорбита в пропорции 65\35. Собственно при плавлении такой смеси образуется сладкая масса (несъедобная!), похожая на карамель, откуда и происходит название "карамельное топливо".
Топливо запресовывается в так называемые "топливные шашки" - цилиндры с отверстием. Размер шашек подбирается таким образом, чтобы во время работы двигателя топливо успевало выгореть равномерно во всех направлениях (в направлении от внутреннего канала к краю). Оптимальной длиной шашки внешним диаметром D и внутренним диаметром d является длина L=1.67D. Шашки в обязательном запрессовываются\оборачиваются в так называемую "бронировку" - внешнюю негорючую оболочку шашки. Бронировка препятствует горению шашки по внешней поверхности, что недопустимо. Слишком большая площадь горения топлива может привести к разрушению двигателя.
Из шашек формируется сборка двигателя с единым топливным каналом. При этом шашки укладываются в теплоизоляционную (негорючую) трубку из тефлона\бумаги, пропитанной силикатным клеем. Теплоизоляция нужна для того, чтобы не допустить разрушения двигателя из-за температуры (фронта горения и горячих газов) при горении топлива.
Карамельное топливо горит сравнительно медленно, поэтому для создания тяги зажигание двигателя производится в дальней точке канала (противоположного от сопла). Немаловажными параметрами двигателя, кроме тяги, является критика сопла и рабочее давление. Чем больше давление в двигателе - тем больше тяга. Чем больше давление - тем выше скорость горения топлива. Настоящим вызовом в создании двигателя является задача создания такого решения, которое при минимальной массе корпуса будет держать максимальное давление и содержать наибольшее количество топлива.
Для расчёта двигателя используются расчёты на основе закона горения. Безусловно, есть готовые решения для расчёта параметров двигателя.
Кроме того, обязательно проводятся стендовые испытания движков. Это позволяет отработать надёжность двигателя на земле, а так же снять реальные показания тяги двигателя (которые могут отличаться от расчётных).
При запуске компьютера инициализируются все датчики и модули, записывается текущая высота, подаётся звуковой сигнал перехода в режим ожидания старта. Моментом старта считается случай изменения высоты на пороговое значение (например 5 метров).
В момент старта фиксируется (записывается время), далее на карту начинают записываться данные с датчиков. В процессе полёта отслеживается апогей - записывается текущая высота, если она меньше предыдущей. Если текущая высота падает на пороговое значение, активируем вышибной заряд. Момент приземления не вычисляется, просто считаем, что через две минуты ракета должна сесть на землю. Через две минуты останавливается запись на карту и начинается подача звуковых сигналов для облегчения поиска ракеты.Полный скетч можно найти тут.
Полёт и результаты
Характеристики собранной ракеты:
- Длина: 1300 миллиметров
- Диаметр: 50 миллиметров
- Масса корпуса (со всеми компонентами): 1000 грамм
Любопытно, что на данных с акселерометра видны всплески, соответствующие работе системы спасения (мортирки).
В итоге...
проект у меня занял целый год в неспешном режиме. Это отличное хобби, которое позволяет столкнуться с огромным разнообразным спектром задач из разных областей. Это и физика, химия, электроника, программирование, инженерия и технология изготовления, включая токарные работы. И, конечно, позволяющее получить незабываемые эмоции от рёва гула у взлетающей ракеты, до трепета и переживаний во время поиска ракеты и снятия показаний с логгера.
Продолжение http://joy.reactor.cc/post/4225166
После 8 часов в горячем растворителе (~60') и охлаждения сухим льдом, компаунд рассыпался и удалось очистить плату. Внутри большую часть занимает литий ионный аккумулятор на 20000 mA*h. и небольшая плата с двумя микросхемами в mqfp корпусе без опознавательных знаков,терморезистор пикейный к аккумулятору, твердотельное реле (нормально замкнутое) коммутирующие выход Vout;GND, большей дроссель и большей количество smd расыпухи. при посылке на BSCL;BSDA старт байта (0x20) в ответ выдает 2 байта, первый байт напряжение на батарее, второй байт уровень заряда. По всей видимость это блок обеспечения временного резервирования питания какой то автоматики.
Недавно ко мне попало устройство представляющее собой плату практически полностью залитую компаундом. с краю платы на не залитом компаундом пространстве находиться двухцветный светодиод, нераспаянный micro usb, разъем и дублирующие его "пяточки". пины подписаны как: (Vout;GND;SCK;SDA;BSCL;BSDA;Vin;GND). пин Vin соединен с питанием usb разъема. если припаять usb и подключить к к компьютеру, то компьютер не находит новых устройств. при сканирование шины I2C находит 2 адреса 80 и 84.
Вопрос к знатокам можно ли каким нибудь обзором запросить список команд у устройства или перебором понять что оно может (в наличии 2 ардуинки и куча радио деталей, в программирование разбираюсь плохо).
Пишу прогу на C++ для управления всякой дичью (2 шаговика, и измерительный АЦП, и прочая дичь по мелочи). Выбрал ардуину для управления устройствами, а сама ардуина получает команды от компа и выполняет их, подключается по USB (сигналами обмениваются в обе стороны). ибо думаю что, для всех алгоритмов обработки данных, полученных с устройства и правил их обработки, может не хватить памяти на ардуине). А как исключить ардуину из этой схемы я не очень понимаю.
Десктопная приложуха пишется на Qt (хочу запилить на линуксе, ак думаю меньше проблем), используется библиотека QserialPort (ранее называлась Qserialdevice) для связи. Связь их мне видится примерно такой: При подтверждении отправки команды формируется строка (символы и цифры норм передаются, поэтому ебаться с кодированием не вижу смысла. посему использую буквы и цифры по максимуму) типа: КЧ\ИК_0/арг1\ИК_1/арг1/арг2\0
Пример реальной команды "11L/1\R/1\0" - включить led(светодиод), отправить сопротивление подстроечного резистора на комп.
где:
КЧ - контрольное число, для проверки, если не совпадает с длинной строки то значит команда пришла не полностью или с ошибкой.
ИК- идентификатор команды - одна большая буква
арг - аргументы, может быть несколько. в зависимости от того что хочешь. например может быть одна и та же буква но разное количество аргументов. тогда будет применяться перегрузка(выглядит как ужасный говнокод swich в котором другие свичи. как сделать красиво и хорошо я хуй его знает. из патернов знаю только визитор)
\0 - конец строки.
была идея сделать таблицу команд что бы они обменивались для подтверждения получения только идентификаторами. и если какая-то команда была пропущена то ардуина поймёт что порядок нарушен и запросит повтор команды. (но это мне кажется ебалой которая только память съест.
собсна к главному вопросу. что я делаю не так, какие предложения могут быть для улучшения/ускорения/итд, как лучше обменивать данные и команды. если есть варик напрямую управлять драйверами ШД, светодиодами, датчиками и тд то как это сделать?.
Также непонятки с частотой обмена данными, ставил маленькую- команды принимались кусками. на большой в начале выполнения ардуина ловит какие-то шумы и выводит "ppppppppp" на дисплейчик(что б понимать что она приняла), потом норм работает.
Как лучше организовать обратную связь? что бы были подтверждения получения команды.
Если кто либо занимался чем то подобным то поделитесь своей мудростью.
Здесь мы собираем самые интересные картинки, арты, комиксы, мемасики по теме arduino (+41 постов - arduino)
Отличный комментарий!