Jump to content

FreeJoy. OpenSource контроллер на STM32


Recommended Posts

10 минут назад, mixedd сказал:

Спасибо за совет. 

Порисуем прикинем как будет. Изначально разсчытывалось на посадочные места под 35мм для механики Объект 77б v2 от Karavan. 

Но думаю нарисую несколько вариантов с вырезамы и под разные посадочные 

Посматрел объект 77 не лучше выйдет вырезать механику джоя лазером из метала? Не так и дорого выйдет.

Link to comment
Share on other sites

Потратил уже порядка месяца на попытки внедрить некоторый скриптовый язык в свои поделки. 

 

Поделюсь выводами.

 

MicroPython, очень крутой змей. Почти обычный питон который мы все так любим, только поменьше - бинарник всего 66кб :( Зато умеет запускать скомпиленый байткод из флеша, затаскивая в озу только необходимый минимум.

 

Berry, новый парень на районе, весь ООП и неплохой синтаксис, и вродебы какраз предназначен чтобы скриптами расширять функционал именно м.к. Бинарник получилось сделать 39к. Прекомпиленный код исполняеть может, но пока только из ОЗУ.

 

PAWN. Основное время убил именно на это. Это, достаточно древняя штука, и подкупило крайне подробной документацией. Бинарник с VM распухает всего на 15кб! Озу требует мизер на описание состояния самой вм, ну там, регистры, границы, вот это вот всё + стэк/куча и глобальные пременные. Компилиируется в байткод без всяких побочных инструкций типа "принт", как у питоныча, только банальные, почти машинные add jmp и прочее(есть JIT в машинный код, но не для арм, вообще виртуалка крайне похожа на q3vm). Умеет жестко контролировать выход за пределы отведенного адресного пространства.

 

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

 

Сам по себе компилятор это переписанный Small-C, знакомый многим. При этом в языке нет структур. Но зато есть массивы с именованными элементами о_О объявление выглядит как 

new foo[.bar, .abrvalg, .vasia];

 

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

 

Вызова функций по указателю - нет(ладно, решается натив функцией Call("КогоПозвать")). Потоков - нет(опять полез в код VM, добавил, вродебы). ООП, чтобы скрыть жуть и ужас - тоже нет. Максимум это вытащить жуть в другой модуль.

 

 

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

 

Просто для кода "если х = 1 то кнопка33=0", оно подходит. Но как неблокирующе, удобно и красиво сделать посылку комбинаций клавиш(и вообще вызовов всяких функций), с ожиданием отправки, да для десятка разных комбинаций?(Если откинуть красиво, то можно, я сделал, но код получается ужасным: провоцирующим на ошибки, создал функцию А проверки необходимости запуска, создал функцию В где последовательно описано что делать, создал поток П для этой функции, в цикле проверяй что А стала перешла из 0в1 и запускай поток П, и так для каждой комбинации.  Опытному win32 паграмисту нормально, а для простого пользователя...)

 

 

Тоска, одним словом.

 

Но если у коллег есть чем поделиться на эту тему, то прошу! (только давайте без FORTHа)

 

Link to comment
Share on other sites

23 часа назад, l3VGV сказал:

И в ответ начинать ... мигание диодиком, вывод текста на экранчик... 

А я вот крайние три недели тоже пытался что-нить придумать в этом направлении.

В программировании я не слишком силен, так, любитель...

В общем, взял ПроМикру из соседнего проекта, конвертнул ее обратно в Ардуину. Водрузил на нее ТМ1638 на двух 74НС595...

Задал прерывание по защелке 74НС165 (под управлением STM который). Но вот считать состояние пина с него для последующей обработки корректно не получилось: много пропусков в процессе обработки (хоть я и поставил туда банальный счетчик единственной переменной).

На том идеи кончились (ну, кроме банального подпаивания к нужной кнопке. Но это же не кошерно!).

Edited by Milit
Link to comment
Share on other sites

24.03.2021 в 17:48, ZERgyt сказал:

Посматрел объект 77 не лучше выйдет вырезать механику джоя лазером из метала? Не так и дорого выйдет.

Субъективно, особенно когда есть друг с 3д принтером у которого руки чешутся что-то разпечятать 🤣

Да и на резку лазером вообшем не нашёл чертёж (может плохо искал 🤣) и получится ли он таким же компактным вопрос 

Link to comment
Share on other sites

9 минут назад, mixedd сказал:

Субъективно, особенно когда есть друг с 3д принтером у которого руки чешутся что-то разпечятать 🤣

Да и на резку лазером вообшем не нашёл чертёж (может плохо искал 🤣) и получится ли он таким же компактным вопрос 

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

Link to comment
Share on other sites

1 час назад, ZERgyt сказал:

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

Спасибо, рассмотрим. Быстрим глазом гляну и вижу там много вкусного 

Link to comment
Share on other sites

@WG_Magners А вам не попадался готовый пример compound устройства? Не компоизита, а именно кампаунда, чтобы виртуальный хаб, даунстрим порты и вот это вот всё. Или я ищу неправильно, но ничего кроме композитов - нет.

Link to comment
Share on other sites

WG_Magners
1 час назад, l3VGV сказал:

@WG_Magners А вам не попадался готовый пример compound устройства? Не компоизита, а именно кампаунда, чтобы виртуальный хаб, даунстрим порты и вот это вот всё. Или я ищу неправильно, но ничего кроме композитов - нет.

Нет, не попадался. Даже для композитов чуть-чуть шаг в сторону от HID+CDC или Mass-Storage и уже ничего нет

Link to comment
Share on other sites

3BAG_Orion33

Задал вопрос нашим программерам про модули.

Один предложил подменить указатель на функцию на бинарный код модуля, который должен быть функцией.

Второй  - сделать такой же переход, как делает загрузчик.

 

Что-то мне кажется, то ни тот, ни другой способ работать не будут :)

 

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

Edited by 3BAG_Orion33
Link to comment
Share on other sites

21 минуту назад, 3BAG_Orion33 сказал:

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

 

Это ардуинщина. Значительный плюс для пользователя сейчас - не нужно качать сотни МБ иде и сношать себе мосх освоением один раз нужного. Вот еслибы сделать это в онлайне, где галочками пометил чо надо оно вернуло бинарник, то да(скомпилять то всё во всех вариантах и заранее можно). Но этож надо умный сайт делать.

 

 

21 минуту назад, 3BAG_Orion33 сказал:

Один предложил подменить указатель на функцию на бинарный код модуля, который должен быть функцией.

Второй  - сделать такой же переход, как делает загрузчик.

 

Модули нужны каждому свои, и если это подумать станет ясно что лежать они будут в неизвесном заранее месте. Т.е. "как загрузчик" не покатит, но делать ссылку на функцию - можно. Динамическая подгрузка возможна, в некотором роде. PIC + некоторое АПИ чтобы в функции насовать нужные указатели(например, запрашивать из мейна подгружаемого модуля таблицу функций, или класть её на фиксированный адрес бинарника, на гитхабе есть примеры как скрптом из ельфа делают подобное).

 

 

21 минуту назад, 3BAG_Orion33 сказал:

Что-то мне кажется, то ни тот, ни другой способ работать не будут :)

 

Ну, если никто не напишет - то точно не будет!

 

 

 

Работы во всём этом крайне много. Тогда уже сразу переписать на ч0рную пелюлю, там 512к флеша. А стоит она несущественно дороже.

Edited by l3VGV
Link to comment
Share on other sites

vvm13ru

Поискал STM32F411CEU6... То ли я глючу, то ли там (на Али) всё стало существенно дороже... (Заодно в очередной раз испоганили интерфейс - теперь полную цену заказа стало видеть ещё неудобнее).

Link to comment
Share on other sites

18 минут назад, vvm13ru сказал:

Поискал STM32F411CEU6... То ли я глючу, то ли там (на Али) всё стало существенно дороже... (Заодно в очередной раз испоганили интерфейс - теперь полную цену заказа стало видеть ещё неудобнее).

 

Плюс минус лапоть - также 

https://aliexpress.ru/item/4001113377360.html

Link to comment
Share on other sites

WG_Magners
13 часов назад, vvm13ru сказал:

всё стало существенно дороже...

С компонентами на рынке сейчас ситуация такая, что волосы рвать охота) Например посмотрите цену на STM32F103 хоть на том же чип и дипе. На моузере и диджики всё закончилось в наличии

  • Sad 1
Link to comment
Share on other sites

41 минуту назад, WG_Magners сказал:

С компонентами на рынке сейчас ситуация такая, что волосы рвать охота) Например посмотрите цену на STM32F103 хоть на том же чип и дипе. На моузере и диджики всё закончилось в наличии

 

https://www.chipdip.ru/product/stm32f103c8t6 300р? так и было год назад(ну ладно может было 250)

 

 

Link to comment
Share on other sites

3BAG_Orion33
3 часа назад, WG_Magners сказал:

С компонентами на рынке сейчас ситуация такая, что волосы рвать охота

Это еще только начало. Наша коммерция говорит, что из-за корововируса нарушились объемы производства по всему миру, так что к концу года ожидается повышение цен на 25-50%.

 

Вот бы крутануть машину времени и пристрелить того пип-дараса...

Edited by 3BAG_Orion33
Link to comment
Share on other sites

WG_Magners
10 часов назад, l3VGV сказал:

 

https://www.chipdip.ru/product/stm32f103c8t6 300р? так и было год назад(ну ладно может было 250)

 

 

По этой ссылке купить низя. Вот актуальное и то со сроком поставки:

https://www.chipdip.ru/product0/8067555111?from=suggest_product

Link to comment
Share on other sites

10 минут назад, WG_Magners сказал:

По этой ссылке купить низя. Вот актуальное и то со сроком поставки:

https://www.chipdip.ru/product0/8067555111?from=suggest_product

 

Может от города зависит, мне показывает что можно минима 15шт взять.

image.thumb.png.69a10bb5e65479579325344fbd201ec0.png

Link to comment
Share on other sites

=M=PiloT

Вчера ток заметил, что все лоты али на чипы взлетели на от 25% и более

  • Sad 1
Link to comment
Share on other sites

=M=PiloT

Сейчас глянул проверенный магазин в котором брал десятками лот,  теперь вообще лот распродан, а те магазины и лоты что были в любимых сохраненными взлетели на 100+%, что за волна, кто может понять?

https://pikabu.ru/story/ne_tolko_videokartyi_defitsit_stm32_8041937

 

Link to comment
Share on other sites

=M=PiloT
18 часов назад, WG_Magners сказал:

С компонентами на рынке сейчас ситуация такая, что волосы рвать охота) Например посмотрите цену на STM32F103 хоть на том же чип и дипе. На моузере и диджики всё закончилось в наличии

А прогноз какой? Есть заслуживающие доверия дебаты по этому поводу? И что делать?))

Link to comment
Share on other sites

WG_Magners
4 часа назад, =M=PiloT сказал:

что за волна, кто может понять?

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

Link to comment
Share on other sites

А между прочим, чем @WG_Magners пользуется для отладки. Я вот чот не могу решиться, хочу я JLINK или нет. Полноценный или пока просто перешить STLINK.

Link to comment
Share on other sites

WG_Magners
16 минут назад, l3VGV сказал:

А между прочим, чем @WG_Magners пользуется для отладки. Я вот чот не могу решиться, хочу я JLINK или нет. Полноценный или пока просто перешить STLINK.

Есть оригинальный STLINK, есть парк отладок с STLINK-ом на борту, одна или две из них перешиты в JLINK.

JLINK удобен для отладки всяких ртосов и просто сложных проектов, так как SEGGER предоставляет прикольные инструменты, как System View. 

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

 

 

  • Like 1
Link to comment
Share on other sites

Только что, WG_Magners сказал:

JLINK

 

Я думаю вот этот https://www.electronshik.ru/item/SEGGER/J-LINK EDU не сильно дорого, и для наших целей даже лицензионно чисто. И вродебы даже есть лицензия на флеш брекпоинты. 

 

 

Link to comment
Share on other sites

WG_Magners
Posted (edited)
9 минут назад, l3VGV сказал:

 

Я думаю вот этот https://www.electronshik.ru/item/SEGGER/J-LINK EDU не сильно дорого, и для наших целей даже лицензионно чисто. И вродебы даже есть лицензия на флеш брекпоинты. 

 

 

Ну этот за 4-5к еще куда ни шло. Это не 40-50к за его черненького собрата) Меня ограничение по брейкпоинтам хоть и немного раздражает, но фактически не особо мешает. Тут надо от задач отталкиваться наверное
Я для себя определил, что в хорошее оборудование для отладки железа вкладываться полезнее, чем в программаторный парк. Например миллион раз себе спасибо уже сказал, что раздобыл NI VirtualBench.

Edited by WG_Magners
  • Upvote 1
Link to comment
Share on other sites

=M=PiloT
4 часа назад, WG_Magners сказал:

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

 

https://aliexpress.ru/item/32964730634.html?af=843361&utm_campaign=843361&aff_platform=portals-tool&utm_medium=cpa&dp=0e4a9cc02eb0ba93fa1ea035e9be94e4&aff_fcid=0d486b70da8246b58306643604740f35-1617177031666-08918-_ePNSNV&cv=47843&aff_fsk=_ePNSNV&mall_affr=pr3&sk=_ePNSNV&aff_trace_key=0d486b70da8246b58306643604740f35-1617177031666-08918-_ePNSNV&terminal_id=5098ca533cfd4e51b1997c700e162c7c&utm_source=admitad&utm_content=47843&sku_id=66604564548

 

 

 

на утро:

 

2021-03-31_105021.jpg

2021-03-31_104953.jpg

 

 

 

GD32F103C8T6  не могли бы высказать свое мнение? Это вроде не в подвале лепят, как бы просто фирма Китай.

Edited by =M=PiloT
  • Haha 1
Link to comment
Share on other sites

3BAG_Orion33

Хорошо, что я купил пару штук на 128к :)

Теперь дешевле БлюПилл покупать и выпаивать оттуда 😂

7 часов назад, WG_Magners сказал:

NI VirtualBench

Однако, мажор... :)

  • Haha 2
  • Upvote 1
Link to comment
Share on other sites

A_Bereg_UAA_Bereg_UA

А на STM32F411CEU6 проекта можно не ждать?

Link to comment
Share on other sites

=M=PiloT

Может быть сейчас по миру кипит работа по переходу с f103 и иных дефицитных на f4 итд...но да, сейчас это выглядит как большой кайф, дешевле, доступнее, мощнее.

Link to comment
Share on other sites

30.03.2021 в 19:17, WG_Magners сказал:

По этой ссылке купить низя. Вот актуальное и то со сроком поставки:

https://www.chipdip.ru/product0/8067555111?from=suggest_product

 

Дане, во! https://www.chipdip.ru/product1/8003595676

 

Пока скидка, налетай!

 

image.thumb.png.25b6627f467d17cdffaec18c12d602c5.png

 

 

**

 

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

 

Пичалька!

 

Прям великая депрессия.

(внезапно)

 

Edited by l3VGV
  • Haha 2
Link to comment
Share on other sites

=M=PiloT
Arrow Electronics
Цитата

STM32F103C8T6 - доставка 27-01-23,

Цитата

что это может значить? Спасибо!

 

 

GetChips.ru <sales@getchips.ru>

вт, 9 мар., 15:08
   
кому: я

 

Здравствуйте
Это значит, что поставка на 2023 год

Это еще 9го марта беседа

 

Link to comment
Share on other sites

3BAG_Orion33

Похоже, аврки опять станут актуальны 😁

  • Upvote 2
Link to comment
Share on other sites

Извиняюсь если такой вопрос уже был или он звучит глупо. Но возможно ли заставить СТМ работать в режиме моста ком-порта, как arduino pro micro, что бы слать данные на nextion? И планируется ли такое? Более правильно описать не смогу, сам не особо шарю в этом. Но как пример, скетч можно найти в SimHub, nextionMicroBridge

Link to comment
Share on other sites

WG_Magners
2 часа назад, GooGT сказал:

Извиняюсь если такой вопрос уже был или он звучит глупо. Но возможно ли заставить СТМ работать в режиме моста ком-порта, как arduino pro micro, что бы слать данные на nextion? И планируется ли такое? Более правильно описать не смогу, сам не особо шарю в этом. Но как пример, скетч можно найти в SimHub, nextionMicroBridge

Добрый день! Возможно, но не не планируется (по крайней мере мной)

Link to comment
Share on other sites

Накидал схему, после выфрезеровал на своем чпу платку. Но никак не могу понять даже по мануалу как правильно подключить в матрицу кнопок теперь 4 энкодера, может ли кто нибудь нарисовать? И будут ли они работать без диодов? Попробовал всяко но работает странно, то срабатывает как нужно, то зажимаются рандомные кнопки, которые не должны иметь к этому отношения. Спасибо

shceme.png

Edited by GooGT
Link to comment
Share on other sites

А матрица кнопок почему без диодов?

Link to comment
Share on other sites

18 часов назад, Johnet сказал:

А матрица кнопок почему без диодов?

Эксперимент показал, что кнопки прекрасно работают и без них. Да и откуда там помехам взяться, если каждой кнопки соответствует только 2 контакта. На самом деле у меня диодов столько нет))

  • Sad 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...