8-900-374-94-44
[email protected]
Slide Image
Меню

Как сделать контроллер своими руками: Электробайк. Контроллер двигателя своими руками / Хабр

Содержание

Микроконтроллер своими руками / Хабр

Пытаясь освоить контроллеры и уже владея навыками программирования ПЛИС, мне пришла в голову дурная мысль. Пришла, постучала и вошла. Всем тем, к кому приходят дурные мысли, и кому интересно как с этим явлением справляются другие, посвящается.

Возникла идея нарисовать свой контроллер, не ограниченный по количеству периферии, ОЗУ и другим параметрам, кроме ёмкости ПЛИС. Скажем контроллер содержит 5 UARTов, а позарез нужен шестой, придётся изворачиваться. А зачем, если можно просто щёлкнуть мышкой и добавить необходимое? Или наоборот, задачка хорошо решается на пяти контроллерах с разрядностью 5, 32, 20, 32 и 20 с непредсказуемым количеством линий связи между ними. Жалко использовать пять 32 разрядников, ресурс всегда жалко, а совмещать две подзадачи на одно ядро – некрасиво, что ли.

Время отклика на прерывание в контроллерах достаточно велико. Да, контроллер прерываний мониторит входы (почему-то ограниченные по количеству) независимо от ядра.

Но прежде чем начать выполнение кода программы по обработке прерывания, скажем, читать порт, требуется сохранить регистры общего назначения, а затем их ещё и восстановить. А это не один такт на пустое с точки зрения логики программы переписывание регистров в стек и возврат этих же значений обратно. Оно конечно вписывается в понятие реального времени, но ведь можно же делать это мгновенно: выполнялся код с низким приоритетом, на следующем же такте по причине резкой необходимости начинает выполнятся высокоприоритетное прерывание по таймеру, а через такт выполняется код по обработке внешнего потока данных, ибо там совсем всё быстро надо.

Конечно, все эти проблемы надуманы и решаются и легко и просто. Но дурная мысль не ищет таких решений, она просто бродит в переполненном пространстве сознания и подталкивает сделать нестандарт. А, если у молодого инженера отпуск, то прости жена и дети, но папа не «опять сидит за компьютером», а профессионально растёт. Тем более иногда хочется выполнять не кем-то придуманные задачки, а свои, полностью свои.

Рис. 1. Таймеры. Добавляй сколько хочешь. Обратите внимание на грамматическую ошибку. Стыдно, но не хочется Builder устанавливать для перекомпиляции.

Разрешите представить вам контроллер, архитектура которого, не то чтобы отличается от всех прочих, скорее она не принята на вооружение. Уже давно забыт список прочитанной перед началом работ литературы, использованы мысли многих людей из разных компьютерных эпох, простите меня мои забытые учителя. Зато вам не придётся от меня открещиваться. Да и денег это не пронесло, поэтому и делиться нечем.

Сразу скажу, что контроллер состоялся, прошит в Спартаны всех поколений и успешно трудится на просторах СНГ и одной стране Прибалтики. Сейчас бы многое было сделано по другому, но любые изменения мне уже ленивы и, что случилось, то случилось. А случилось вот что.

— Разрядность контроллера от 1 до 32, со знаком или без оного. (Не помню проверял ли я работу на малых разрядностях). Используется дополнительный код.
— Количество портов ввода/вывода ни чем не ограничена, разрядность ограничена разрядностью ядра.
— Количество таймеров так же не ограничено. На каждый таймер можно установить свой обработчик прерывания.
— Обработчик прерываний с бесконечным количеством входов, каждый вход имеет приоритет от 0 до 99 (ограничение по причине «и так большого числа»). Возможность запрещать все прерывания или низкоприоритетные только.
— Количество последовательных портов типа UART неограниченно, разрядность ограничена разрядностью ядра.
— Делитель частоты сделан плохо и неправильно, но исправно выдаёт любую частоту для любой периферии или просто наружу контроллера.

— Сопроцессор. О нём ниже.

То есть мы имеем контроллер, поддерживающий основные операции арифметики и прочего изменения битов в словах (плюс, минус, сдвиг, побитовая логика…). Так же он обращается к внутренней памяти и хранит код программы так же внутри себя. Память используется блочная, именно она является платформозависимой и в настройках программы обязательно нужно указать какая микросхема будет носителем контроллера. Все операции по любому направлению действий выполняются за один такт, это может и не всегда хорошо, но упростило проектирование архитектуры. Исключением является целочисленный делитель, функции которого реализованы в сопроцессоре, деление выполняется медленно, но уверенно. Алгоритм деления был выбран самый простой – побитный.

Хотелось бы рассказать про код команд, но сам не помню из чего он состоит. Исходя из принципа «не использовать то, что не используется» даже длинна кода команды является величиной не константной, тем более его содержимое. Скажем, если в компилируемой программе встречается 14 команд, то каждая команда кодируется 4 битами, если используется 18 команд – выделяется пятый бит. Плюс к каждой команде добавляется бит длинны, если он равен 0, то команда одинарная, если 1 – двойная, или наоборот, это не важно. Двойная команда нужна для операций, содержащих адрес ОЗУ или ПЗУ. Добавим к этому то, что шины адреса так же имеют не константные длины, и получим полный бардак в коде команд, рассматривать его никаким дизассемблером смысла нет, как собственно и ассемблер в этом контроллере.

Форт – вот тот язык, который позволил мне реализовать эти странные идеи. Форт прост и низкоуровневый. Писать компилятор данного языка – одно удовольствие. Ну, конечно, все конструкции языка не поддерживаются, только основные по пересылке данных и их изменении.


Рис. 2. Руководство достаточно скромное. Нескромное так и не написано.


Рис. 3. Вторая часть руководства. Не знаю почему, но окно расширить нельзя. Есть ещё и третья часть, но уж совсем скучная.

И, естественно, мы имеем стековый контроллер. То есть Форт функционирует в своей естественно среде – в стеке, в аппаратном стеке, а не медленном программном. «Всё за такт!» — второй девиз проекта. Аппаратный стек позволил при переходе в функции или вызове прерывания сразу приступать к выполнению команд обработки данных, без необходимости сохранять контент прерванного процесса. «Новые» данные просто помещаются в стек сверху, «старые» уходят в глубь и прекрасно там сохраняются. Затем «новые» данные, поучаствовав в разных операциях, благополучно переходят в ОЗУ или другие места, а «старые» выталкиваются на вершину.

При возврате в прерванный участок кода никто ничего не заметит. Адрес прерванного кода сохраняется в другом стеке, и максимальное количество прерванных процессов зависит только ото глубины Стека Возвратов. Это величина настраивается при компиляции, хоть бы и «очень большое число». Параметры в функции передаются так же через стек.

Stackcpu – именно так и называется контроллер, почему-то латиницей, хотя писать код можно и кириллицей. Что я и делаю, приведу пример функции «меняем_биты_в_слове»:

:меняем_биты_в_слове 
	читаем_из_нужного_порта, 
	меняем_прочитанное_из_нужного_порта, 
	записываем_в_требуемую_ячейку_памяти;

Где: «читаем_из_нужного_порта», «меняем_прочитанное_из_нужного_порта», «записываем_в_требуемую_ячейку_памяти» — функции, выполняющие определённые действия.

Ну не псих ли я красиво ли? Приведу ещё доказательства, программа управления светофором:

			\\main 
BEGIN
	зелёный потушить, жёлтый потушить, красный зажечь.
	пятьдесят секунд ждём…
	зелёный потушить, жёлтый зажечь, красный потушить.
четыре секунды ждём… зелёный зажечь, жёлтый потушить, красный потушить. сорок секунд ждём… зелёный уменьшить_яркость_до_нуля, жёлтый гори, а красный не_гори. четыре секунды ждём… 0 UNTIL \бесконечный цикл

Ну что, псих красиво? Третий принцип проекта: «Литературный язык в управление электроникой!» Хотя, как показала практика, писать так программы довольно утомительно. Для знатоков Форт сообщу, что точку мой компилятор воспринимает как разделитель, и запятую тоже. Конечно, лучше использовать язык С, но компилятор С мне не по зубам, а использовать сторонние компиляторы архитектура не позволяет.


Рис. 4. Среда разработки с отчётом компилятора и линковщика.

Сколько ёмкости FPGA занимает контроллер? Да кто ж его знает. Всё зависит от разрядности числа, выбранной периферии, ещё чего-то, и от текста программы. В контроллере не будет умножителя, если он не встречается в программном коде, или не будет делителя, если его не использует программист. Под программистом я подразумеваю себя, так как других программистов данного контроллера не существует (принцип «не использовать тем, кто не использует»).

По блочной памяти для ОЗУ данных и ПЗУ команд: минимум два блока, максимум вся блочная память кристалла.

Максимальная частота работы высчитывается только опытным путём, под конкретную архитектуру. Один из моих 24 разрядных контроллеров не работал на частоте 48 Mhz в Spartan2, на частоте 40Mhz заработал. В Spartan6 на сотне Mhz работал 32 разрядный. А может и на паре сотен заработает, ничего в нём такого сложного нет.


Рис. 5. Вот такой код увидит процессор. Обратите внимание, одна команда FORTH – это одна команда ядра процессора – один системный такт.

Первый PS: упомяну одну возможность сопроцессора – фильтр. Обычный БИХ фильтр. Но вот, что необычного в нём, так это то, что он использует плавающую точку. Не то что б в этом был какой-то смысл, просто прочитал какую-то книжку про форму представления чисел, и решил: ерунда интересна эта ваша плавающая точка, сделаем.


Рис. 6. Моделирование результатов работы фильтра. Высчитывается логика кода VHDL с точностью до битика.

Так же были планы по превращения проекта в систему на кристалле: добавление различных, писанных на VHDL блоков в периферию контроллера. И вроде не так уж и сложно, но запал иссяк. Дурные мысли меня покинули, и бродят где-то между программистами и электронщиками. И зовут их теперь Стартапами.
Так что, если к вам кто-то придёт и представится Стартапом, подумайте, а не скрывается ли под ним какой-нибудь Времяубиватель.

И ещё одно PS: С другой стороны, за время работы над проектом Stackcpu я неплохо подучил три два языка программирования:
1. FORTH, точнее некое его подмножество, необходимое для проверки работоспособности контроллера.
2. С++, на чистом С было бы тяжело написать среду разработки и компилятор.
3. VHDL, именно буквы этого языка и есть контроллер.

Понятно, что рассказывать можно долго, но на этом хватит. Пойду заниматься чужими идеями, но с моей реализацией!
Собственно контроллер (половина мегабайта): cloud. mail.ru/public/1cdf4b1d4799/StackCPU.rar

Электровелосипед своими руками: контроллер

Как выбрать контроллер для электровелосипеда, какие контроллеры бывают и в чём их разница?

Прежде чем ответить на этот вопрос, давайте разберёмся, зачем вообще нужен контроллер.

Для чего электровелосипеду контроллер

Наверняка почти каждый любознательный представитель мужской половины человечества в детстве имел дело с моторчиками, установленными в детских игрушках, например, электрических машинках или лодках.

Эти моторчики представляли собой двигатели постоянного тока. Для вращения к ним достаточно было подключить батарейку, и направление вращения менялось в зависимости от полярности подключения.

В том случае обмотки ротора (вращающейся части электродвигателя) подключаются к источнику питания по очереди через пару графитовых щёток, таким образом ротор приводится во вращение.

В электровелосипедах же используются бесщёточные моторы, а точнее трёхфазные асинхронные двигатели, которым недостаточно просто подать напряжение питания от батареи. На первый взгляд кажется, что всё только усложнилось, но дело вот в чём.

Во-первых, двигатели постоянного тока имеют узел, который требует обслуживания и периодического ремонта — это как раз те самые щётки и коллектор, по которому они скользят.

Во-вторых, КПД этих двигателей ниже, а вес больше. В третьих, они имеют ограниченный диапазон скоростей вращения. Всех этих недостатков трёхфазные асинхронные двигатели лишены.

Но последним требуется контроллер — устройство, обеспечивающее коммутацию обмоток строго по определённому алгоритму.

В зависимости от типа двигателя (с датчиками положения ротора или без) от контроллера к двигателю идёт либо только три силовых провода, либо к ним добавляются 5 или 6 тонких проводов.

Силовые провода — это те, которые непосредственно подключены к обмоткам двигателя. А тонкие (слаботочные) провода — это провода питания и сигналов с датчиков положения.

На фото силовые провода (синий, зелёный и жёлтый) спрятаны в стеклоармированных трубках, а слаботочные видны: синий, зелёный и жёлтый — это сигналы с датчиков положения, красный и чёрный — это питание датчиков, а белый — с датчика температуры, который спрятан под платой ближе к обмоткам.

Контроллер определяет положение ротора по датчикам и коммутирует напряжение батареи в нужный момент на нужную обмотку двигателя.

В каких случаях

датчики положения в двигателе необходимы, а в каких нет?

В тех случаях, когда двигатель должен стартовать со значительной нагрузкой на валу (в нашем случае нужно сдвинуть с места велосипед с наездником) используются двигатели с датчиками.

Если же на старте нагрузки нет или она незначительная (например, вентиляция), используются так называемые бездатчиковые двигатели. Хотя, в некоторых случаях и на электровелосипеды малой мощности ставят бездатчиковые двигатели.

Соответственно, и контроллеры бывают как для двигателей с датчиками, так и для двигателей без датчиков положения.

Корпус и размещение контроллера

Теперь давайте поговорим об исполнении, то есть о корпусе и размещении контроллера.

И здесь мы снова переводим акцент на двигатели, которые устанавливаются либо в колесо (вместо втулки), либо в кареточный узел.

В случае мотор-колеса, то есть мотора, заспицеванного в обод, контроллер является отдельным блоком со своим собственным корпусом, и размещается отдельно от двигателе (за исключением нескольких специфических решений).

В случае же центрального (кареточного) мотора контроллер устанавливается внутри корпуса двигателя, что позволяет сократить количество видимой проводки на электровелосипеде.

Есть ещё одна важная характеристика контроллера, которая влияет на дальность поездки, или, другими словами, на эффективность использования энергии, накопленной в батарее.

Я имею в виду тип ассистента, или помощника, поддерживаемого контроллером.

Разновидности педального ассистента

Самый распространённый — PAS (Pedal Assist Sensor). Данное исполнение представляет собой пару из датчика Холла и кольца с магнитами. При вращении педалей магниты движутся мимо датчика и последний отправляет соответствующий сигналы на контроллер.

То есть PAS регистрирует сам факт вращения педалей, независимо от того, насколько быстро их крутит велосипедист и насколько сильно на них давит.

Менее распространён другой тип — Torque sensor, или датчик крутящего момента. Он-то как раз измеряет усилие, прилагаемое к педалям, и сообщает его контроллеру.

Несложно догадаться, что второй вариант более эффективен в плане экономичности использования заряда батареи, так как он не даст велосипедисту крутить педали вхолостую.

Более того, отпадает необходимость использования ручки газа, ведь при сильном нажатии на педаль контроллер подаст на двигатель максимальную мощность.

Какие контроллеры существуют на рынке?

Теперь давайте взглянем на рынок контроллеров для электровелосипедов. Начнём с одного из самых заказываемых на Aliexpress контроллеров.

Если верить заявленным на этикетке характеристикам, он рассчитан на работу с напряжением 36 или 48 вольт и максимальный ток 30 ампер. Габариты контроллера 8 см х 15 см.

Рассмотрим провода, которые из него выходят, и разберёмся для чего каждый из них предназначен. В общем-то, продавец расписал что есть что в описании товара, но не всем эти надписи будут понятны.

Итак, по порядку:

1. Motor (синий, зелёный и жёлтый) — три силовых провода для подключения мотора. О них я писал выше.

2. Speed meter — сигнальный провод к датчику измерения скорости. Но ведь у датчика скорости два провода! Правильно. Второй провод («земля», или GND) придётся взять от другого разъёма, например, от разъёма PAS.

3. PAS — три провода к датчику педального ассистента. Как правило, чёрный провод — это GND, так что его можно использовать как второй провод датчика скорости.

4. Alarm — два разъёма для подключения сигнализации.

5. H-brake и Low-brake — провода для подключения датчиков тормоза. В одном случае датчик (или кнопка) срабатывает при замыкании сигнального провода на «землю» (GND), в другом — при подаче +5 вольт.

6. Cruising — подключение функции круиз-контроль.

7. Throttle — три провода для подключения ручки газа: «земля» (GND), +5В и сигнальный, напряжение на котором меняется в зависимости от положения ручки газа.

8. Battery and Ignition — два силовых провода для подключения к батарее и один сигнальный для включения контроллера. Когда батарейное напряжение подаётся на сигнальный провод, контроллер запускается.

9. Reverse — два провода, при замыкании которых двигатель будет крутиться в обратном направлении.

10. Hall sensor — разъём для подключения мотора, а точнее — датчиков положения, установленных в моторе. О них я писал выше.

11. 3 Speed — три провода для выбора максимальной скорости движения.

12. Self learn — два провода, при замыкании которых включается режим самообучения контроллера. После того, как контроллер выполнил процедуру обучения, провод размыкается.

Кстати, данный контроллер, судя по набору проводов, не подразумевает подключение дисплея, хотя в самой плате, возможно, есть места для впайки дисплейного разъёма (TX, RX, DM, B+, GND — при это я расскажу в одной из будущих статей).

Недостаток использования такого контроллера

Дело в том, что когда мы соединим все провода с остальными элементами системы, у нас получится приличная вязанка, и её надо будет где-то прятать.

Как правило, контроллер вместе с вязанкой прячут в велосипедной сумке, подвешенной на раме. Но, как показала практика, со временем от вибраций и воздействия влажной окружающей среды происходит окисление контактов и нарушение соединений.

Также есть вариант использования герметичного пластикового корпуса, с того же Aliexpress, но тут возникает другая проблема.

В данном контроллере установлено 12 силовых транзисторов, прикрученных к корпусу контроллера для охлаждения. То есть подразумевается, что контроллер будет находиться в окружающей среде, а в идеале — обдуваться потоком набегающего воздуха.

Однако в закрытом герметичном корпусе охлаждение будет затруднено, и контроллер может выйти из строя в результате сгорания транзисторов.

Для решения данной проблемы используют герметичные разъёмы и интеграционный кабель.

Контроллер с герметичной проводкой

Это более предпочтительный вариант, так как количество выходящих проводов значительно меньше, а значит проще произвести диагностику в случае возникновения неисправности.

На данном фото слева направо расположены следующие разъёмы:

1. Интеграционный кабель — это кабель, объединяющий в себе все провода, идущие на руль: для подключения дисплея, ручки газа и датчиков тормоза.

2. Разъём для подключения фонаря.

3. Разъём для подключения PAS-сенсора.

4. Разъём для подключения двигателя. Объединяет в себе три силовых провода, пять проводов на датчики положения и 1 провод на датчики температуры и скорости.

5. Жёлтый разъём предназначен для подключения батареи.

Несмотря на то, что данный контроллер менее мощный (22 ампера против 30 ампер в первом случае), стоит он в три раза дороже.

Но эта разница в цене полностью оправдана, так как надёжность и долговечность конструкции позволит один раз собрать электровелосипед и эксплуатировать его на протяжении нескольких лет без каких-либо проблем.

Примерно так же, как опытные монтажники выбирают профессиональный надёжный инструмент чтобы быть в нём полностью уверенным и работать с удобством и удовольствием.

Контроллер

ы Kelly

Кроме контроллеров с Aliexpress в продаже имеются контроллеры Kelly, представленные на официальном сайте kellycontrollers. Это хорошие контроллеры, но они стоят дороже.

Например, версия на 25 ампер на момент написания статьи имеет цену 141,54 евро, что примерно в 3 раза дороже предыдущего рассматриваемого нами варианта.

Контроллеры Electronbikes

Также следует упомянуть об отечественной разработке. Компания Electronbikes представила компактную модель контроллера, и обещает начать серийный выпуск до конца текущего года.

На фото представлен новый контроллер (снизу) в сравнении с китайским аналогом (сверху), оба рассчитаны на ток 45 ампер.

Конечно, нижний контроллер будет помещён в корпус, служащий радиатором, но очевидно, что его габариты не сравнятся с китайским аналогом.

Особенно интересна новая разработка тем, что контроллер будет поддерживать Torque-сенсор.

Контроллеры центральных моторов

И конечно в данной статье нельзя не упомянуть о контроллерах, установленных в центральных моторах Tongsheng, представленных на Aliexpress. Эти контроллеры также поддерживают Torque-сенсор.

Многие начинающие сборщики электровелосипедов заметят, что я не стал рассматривать мощные контроллеры, рассчитанные на большие токи.

Дело в том, что мощные контроллеры подразумевают мощные батареи, мощные двигатели и, как следствие, очень крепкие (часто стальные) пространственные рамы, которые способны выдержать большие весовые нагрузки.

Тогда это уже будут не электровелосипеды (весом до 25 кг), а электромотоциклы, вес которых достигает 50 кг и более, и кручение педалей теряет смысл.

Я же всё-таки являюсь сторонником лёгкого и компактного оборудования, и придерживаюсь мнения, что электровелосипед должен оставаться велосипедом.

06 ОКТЯБРЯ 2019

Читать другие статьи

Евгений Бегин

Автор статьи

Как собрать игровой контроллер без помощи рук | от Демодерн | Demodern Creative Technologies

Геймификация без помощи рук: Представляем нашу изготовленную на заказ балансировочную доску и цифровые напольные решения

Играем в Mystical Quest Сасу — ничего не касаясь руками!

Для Royal Caribbean мы разработали игру, основанную на действиях, цель которой помочь Сасу, главному герою, перемещаться по четырем подводным мирам. Гости могут управлять Сасу с помощью специальной светодиодной балансировочной доски, перемещая свое тело влево и вправо, прыгая или встряхивая. Для другого проекта, находящегося в стадии реализации, мы включили игровой процесс с помощью быстрого отслеживания шагов на настраиваемом полу с цифровой сеткой, используемом для управления продвижением дружелюбных животных в игре «Прыгай и беги» для молодежи.

Балансировочная доска на одном из круизных лайнеров Royal Caribbean: The Spectrum of the Seas

Изготовленные на заказ балансировочные доски

Наша цель в Royal Caribbean состояла в том, чтобы поддерживать физическую активность гостей корабля, используя их тела в качестве ключевого элемента взаимодействия. Чтобы реализовать эту уникальную механику, нам пришлось решить множество проблем, включая непредсказуемые условия солнечного света, широкий диапазон роста и веса пользователей, создание системы, устойчивой к вибрациям корабля, и необходимость бесперебойной работы 24/7. Со всеми этими факторами в play, мы отказались от Kinect или других оптических сенсоров и приступили к разработке собственной системы слежения на основе баланса пользователя.

Создание индивидуальных контроллеров с использованием Arduino.

Каждая плата содержит различные датчики веса (выдерживает до 120 кг) для измерения смещения баланса и закрыта слоем светодиодов, покрытым размытым плексигласом. Это позволило нам обеспечить более визуальную обратную связь с нашими игроками, а также защитить систему в целом от влаги и пыли. С площадью поверхности 85 см в квадрате, размер платы и чувствительность также доступны для инвалидных колясок, чтобы установка была полностью инклюзивной, с дополнительной опцией входа контроллера джойстика для людей с ограниченной подвижностью мышц. Чтобы контролировать все показания датчиков и отправлять их в наше приложение Unity, мы разработали собственные печатные платы под маркой Demodern с модульной конструкцией, обеспечивающей легкую замену компонентов.

Digital Grid Flooring Solution

Мы всегда ищем творческие решения, которые решают новые проблемы, и считаем, что игры без помощи рук остаются важным фактором для индустрии развлечений. Имея это в виду, мы адаптировали доску в другом направлении, чтобы предложить еще больше разнообразия игрового процесса, создав вторую модель, которая работает на цифровой сетке 3X3 с датчиками давления, а не баланса/веса. Площадь поверхности 33 см в квадрате может быть легко масштабирована, а цифровая сетка просто умножается в зависимости от желаемой аппаратной и программной настройки.

Механика сетки дает обратную связь в режиме реального времени о положении опоры пользователя (думаю, «Dance Dance Revolution» соответствует креативной технологии 2020 года), , которую можно просто и легко интегрировать в пол любого помещения — будь то виниловый ламинат или ковер. Точность и чувствительность отслеживания легко поддерживаются под защитным слоем пола благодаря внутренним датчикам давления, подключенным к цифровой сети, что обеспечивает практически безграничные возможности установки.

Если вы заинтересованы в настройке нашего балансборда или цифровых контроллеров пола для вашей следующей игры — свяжитесь с нами!

Создание пользовательских игровых контроллеров для людей с ограниченными физическими возможностями

 

Держитесь крепче. Это будет длинный пост. Я сдержался в видео, но здесь я могу просто выйти и дать вам понять, что я в ярости. Каждый раз, когда я начинаю думать об этом, я чувствую себя такой злой и беспомощной, что мое лицо становится горячим, а руки трясутся. Я забегаю вперед, так что давайте немного отступим и поговорим о довольно крутом парне по имени [Томас].

[Томас] страдает мышечной дистрофией. Это означает, что со временем он будет постепенно терять силу и контроль над своими мышцами. Он уже потерял способность стоять, и даже удерживать кнопки на геймпаде в течение длительного времени может быть сложно. Игры, как вы понимаете, очень важны для [Томаса] и таких людей, как он. Он предлагает освобождение от разочарования, как и для всех нас, но также и равные условия игры. Когда он в игре, он такой же, как все.

Я быстро изучил доступное оборудование. Тут я начал злиться. Что-то простое, вроде этого реле низкого давления, стоит очень дорого. Возьмем, к примеру, этих двоих. Оба представляют собой единый мгновенный выключатель с кабелем и корпусом.

рыночная цена 79 долларов

рыночная цена 69 долларов

70 долларов? 70 Ф*$ И ИНГ ДОЛЛАРОВ ? Это не компьютерный интерфейс, это просто переключатель. Мы все знаем, что мы можем купить эти переключатели по розничной цене менее чем за доллар. В этот момент я подумал: «Чувак, эти компании точно завышают цены для страховых компаний».

Я упомянул о страховой мысли матери [Томаса]. Она сказала что-то, от чего мне захотелось просто сесть и заплакать прямо здесь. Она ответила: « О нет, страховые компании обычно не платят за такие вещи. Они не считают это необходимостью. ” Может быть, это потому, что я родитель, но это было разрушительно. Какое-то время после этого визита мне было трудно даже думать. Я был так зол, так расстроен и чувствовал себя таким беспомощным, и я был вовлечен лишь косвенно .

Я решил сделать нечто большее, чем просто сделать простой контроллер для [Томаса], мне нужно было помочь как можно большему количеству людей. Подробнее об этом позже.

Контроллер [Томаса].

Как вы видели в видео, [Томас] любит играть в майнкрафт. Я встретился с ним и поговорил о том, что ему нужно в плане контроллера. На данный момент [Томасу] действительно не нужно много. Он может использовать геймпад Xbox, шестиосевой контроллер, клавиатуру и мышь. У него небольшие проблемы с удерживанием курка более пары секунд, но он справляется.

Это означало, что у меня действительно не было конкретной проблемы, которую нужно было решить, поэтому я просто пытался создать что-то, что помогло бы как можно большему количеству людей. Я прыгал от идеи к идее, но в итоге остановился на идее модульных кнопок, которые можно было бы перенастроить по мере необходимости.

конфигурация платы для коленей

teensy

все биты

Я использовал Teensy с чрезвычайно простым кодом эмуляции клавиатуры/мыши. Это позволяет мне давать импуты к играм без использования дополнительного программного обеспечения. Я должен отметить здесь, что это не новая или удивительная идея. Супердорогие кнопки, о которых я упоминал ранее, подключаются прямо к чему-то, называемому «переключателем», который эмулирует мышь и клавиатуру. Обычно коммутаторы имеют массу функций, которых нет у меня.

teensy

все биты

конфигурация доски

Все, что я делаю, это эмулирует W, A, S, D, пробел, escape, E, Q, движение мыши, а также правый и левый щелчки мыши. Вот и все. Это все, что нужно для майнкрафта. Сначала я начал делать систему, в которой использовались разъемы для наушников, подобные тем, что я видел в других системах, но потом передумал. Оставив разъемы доступными, люди могли буквально подключить к нему два провода и эмулировать нажатие на клавиатуру. Нужна кнопка, для активации которой требуется очень небольшое нажатие (очень распространено)? Как без давления.

Поскольку Томас все еще может пользоваться клавиатурой и мышью, мой контроллер ему мало чем помогает. Он отнесся к этому с пониманием, и мы сохраняем открытое общение на будущее, потому что, к сожалению, он не сможет вечно пользоваться клавиатурой и мышью.

Файлы

Я не инженер. Я просто посмотрел на то, что там было, и начал делать сверхбыстрые 3D-печатные корпуса. Они не очень хорошо продуманы, но они работают. К счастью, Lulzbot дал мне 3D-принтер для этого проекта, так что я смог очень быстро создать прототип и протестировать его. Загрузите их и улучшите.

Вот детали.

1. Мгновенный выключатель, активируемый рычагом низкого давления.

В этом случае используется очень дешевый 6-миллиметровый мгновенный переключатель, который использует рычаг для активации, уменьшая необходимое давление примерно до 15 граммов. Это работает так же, как изображено выше, и я думаю, что даже если я включу в уравнение труд, это будет меньше 30 долларов. Есть несколько вариантов, в основном потому, что у меня не было хорошей идеи шарнира.

Загрузите реле низкого давления здесь.

2. Крестовина и четырехпозиционная кнопка

Это просто чехол для 4 6-мм переключателей мгновенного действия. У них нет рычага, и для нажатия требуется примерно 60 граммов давления, что примерно такое же, как у контроллера Xbox. Они не идеальны, но они работают.

Некоторые люди упомянули, что, по их мнению, крестовине нужно больше кнопок, чтобы быть похожей на Xbox. Если вы разберете контроллер Xbox, вы увидите, что там всего 4 кнопки. Это НЕ 8-полосная система.

Вы также можете увидеть блок в форме контроллера, который я напечатал для их хранения.

Загрузите файл D-Pad здесь.

Загрузите файл четырехъядерной кнопки здесь.

Кстати, используйте гибкий многожильный провод. Я понятия не имею, о чем я думал, используя ленты с твердым сердечником. Они не продлятся долго.

Есть еще несколько файлов, которые вы можете загрузить из этого проекта:

Чехол для большого пальца psp

Корпус с одной кнопкой (не используется в окончательной версии)

Пустая форма контроллера для приклеивания вещей.

Чем вы можете помочь?

Как я уже сказал. Я не мог просто уйти. Я перешел от мысли, что сделаю [Томаса] вещь, к мысли, что сделаю вещь, которая будет идеальной для ВСЕХ! Я даже подумывал о том, чтобы сделать какой-нибудь кикстартер или что-то в этом роде, чтобы сделать для себя хороший маленький бизнес. Однако ни одна из этих идей не казалась правильной.

Я понял, что мне не нужно быть тем, кто поможет всем , сделав контроллер. Хотя я сделал вещь для [Томаса], мои навыки не обязательно заключаются в создании вещей. Я умею делиться информацией, объединять людей и создавать сообщества.

Я создал Thecontrollerproject.com. Это форум, на котором люди могут предлагать свои услуги по созданию пользовательских интерфейсов. Вам не нужно тратить свое время бесплатно. Даже с трудом некоторые из этих простых интерфейсов можно сделать дома дешевле, чем коммерческие версии. Многим людям нужны настройки, которые даже не доступны в продаже.

Многие из вас думают: «О, об этом позаботятся инженеры». ОСТАНОВИТЕ ЭТО. ВЫ ТОЖЕ МОЖЕТЕ ПОМОЧЬ.

Я лично выложу простые инструкции о том, как сделать несколько простых устройств для людей, даже если вы никогда не паяли и не трогали микроконтроллер. Если вы хотите помочь, вы можете. Пожалуйста, сделай. Я умоляю.

Что делать, если вы не хотите работать, вы просто хотите пожертвовать?


Хорошо, это хорошо, но не делайте мне пожертвований. Перейдите на сайт Ablegamers.com и сделайте пожертвование в фонд Able Gamers Foundation. Они стремятся к тем же целям, что и я, и действуют сообща. Они уже помогают людям повсюду и могли бы использовать ваш вклад лучше, чем я.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *