Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

Популярные теги в сообществе:

Айтишники, хелп!

Подскажите, что это такое. И сколько может стоить?

Гугл отвечает, но ответы мне не понятны. Некоторые единицы невскрытые, некоторые- открыты и использовались.


Сказали, какое-то оборудование.

Показать полностью 6
36

Юный техник

Посоветуйте где можно научится писать? Я вообще "сырой", микроконтроллеры и вся эта тема интересна, но с какого края поступить я даже не знаю. Рассматривал GeekBrains для обучения, нормально они учат или развод?

Windows ARM 64 на RaspberryPi 4 8GB

Система видит и использует 3ГБ. Хотя и заявляет, что 64-битная (ARM64).

Поиск в Яндексе ничего не дал. Как исправить?

P.S. На RPi 4B 4GB винду установить удалось от слова никак.

Upd: в кратце. В Windows on Raspberry PI используются 32-битные компоненты и максимальный доступный объём памяти - 3ГБ. То есть ответ на вопрос - никак.

14

Как определить полярность провода через Arduino

Добрый день, возможно немного глупый вопрос, я только начинаю изучать ардуино и как это все работает, подскажите пожалуйста. У меня есть приемник\передатчик 27Мгц, в зависимости от нажатия кнопок на двух проводах полярность либо + - либо - +. Как я могу определить с помощью ардуино какая кнопка в данный момент нажата?

У меня есть вот такой код, но в нем наверное что-то не так:

https://codeshare.io/5wNgOK

Серва подключена к 10 порту, а один из двух проводов к шестому.

31

Прошивка для платы управления двигателем RMD-X8 Pro

В рамках создания комплекса экзокисти под управлением нейрокомпьютерного интерфейса написал прошивку для Arduino Mega, которая через CAN-контроллер управляет серводвигателем RMD-X8 Pro, приводящим в движение механизм экзокисти. Модель экзокисти создавали наши студенты, прошивка представляла собой скетч, вырезанный из другого проекта, двигатель мог управляться только с помощью джойстика. Причем джойстик при движении вперед раскручивал двигатель вперед, а при отклонении джойстика в обратную сторону постепенно останавливал его и начинал неконтролируемые движение в обратном направлении. При остановке джойстика движение также не прекращалось. Контроля углов вращения не было.

Прошивка для платы управления двигателем RMD-X8 Pro

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


Для двигателя есть настроечная программа, которая работает по протоколу serial-232, имеются варианты интерфейса двигателей с RS485 у которого больше возможностей, чем у CAN, который через один датафрейм может передать максимум 8 байт. В тестовой вкладке программы настройки примеры интерфейса управлением двигателя работают не так, как хотелось бы, но зато оказалось, что там есть команды, не описанные в документации. При использовании тестовых режимов программа указывает, какие данные она пересылает в датафрейме, и стало видно, что кроме команд позиционирования А1-А6 также используются команды А7 и А8, и последняя команда как раз подошла для нашей задачи.

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

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


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

Также добавил в прошивку работу с внешними интерфейсами через последовательный порт в формате JSON, через которые прошивка будет получать команды от внешней управляющей программы. На Java написана ретранслирующая программа, которая принимает пакеты по протоколу UDP, пересылает их в Ардуино по serial, с последовательного же порта получает ответ от платы и пересылает его обратно в управляющую программу высокого уровня по UDP. Это необходимо для обратной совместимости со сторонним программным обеспечением.

Показать полностью 1 1
453

Электроника для новичков: разводка плат, заказ сборки, прошивка

Привет, Пикабу! Делюсь подробнейшим двухчасовым гайдом по разводке плат в бесплатном редакторе EasyEDA с особенностями разводки под микроконтроллер (на примере AVR), а также рассмотрим заказ сборки платы силами китайцев, прошивку МК и работу с ним в среде Arduino.


Уроки направлены в первую очередь на новичков, которые хотят научиться делать платы под свои электронные поделки. Объясняю всё максимально простыми словами, как сам бы хотел слышать будучи новичком. Прикладываю план уроков, чтобы было понятно, о чём идёт речь:


Первая часть с канала AlexGyver - общий подробный гайд по работе в EasyEDA, включает в себя:

00:01:14 - Обзор возможностей программы

00:04:21 - О сайте и оффлайн версии

00:06:07 - Менеджер проектов и библиотек

00:12:00 - Ещё немного по интерфейсу

00:14:39 - Обзор инструментов рисования

00:16:30 - ВКЛЮЧАЕМ РУССКИЙ ЯЗЫК

00:17:39 - Обзор инструментов создания схемы

00:23:22 - Настройки в верхнем меню, экспорт схемы

00:24:50 - Продолжаем делать схему

00:27:50 - Доделываю свою схему

00:30:29 - Конвертируем схему в плату

00:31:00 - Верхнее меню PCB

00:34:14 - Правое меню PCB

00:38:01 - Инструменты разводки и оформления платы

00:47:25 - Готовимся к разводке

00:18:16 - Автотрассер, настройки

00:52:08 - Земляной полигон

00:56:01 - По поводу силовых частей платы

01:01:29 - Вставка компонентов в плату

01:02:58 - Привязываем 3D модели

01:06:04 - Создаём компонент схемы

01:08:00 - Создаём компонент платы

01:10:12 - Продолжаем делать его

01:10:28 - Привязываем футпринт к компоненту

01:11:50 - Режим симуляции

01:13:58 - Вывод картинки платы для ЛУТ

01:14:54 - Панелизация плат и заказ с JLCPCB

01:18:10 - Обзор полученных плат

01:20:09 - Переделал свою плату, обзор

01:21:58 - Создание "модуля"

01:22:49 - Пытаемся выгодно заказать платы =)

01:24:30 - Делаем плату для проекта из модулей


Вторая часть с канала Заметки Ардуинщика ориентирована на работу с микроконтроллером, особенности разводки платы, тактирования и прошивки при помощи программатора и bootloader'а.

01:51 - Зачем делать проект на плате?

04:22 - Три главных момента

04:57 - Тактирование

06:18 - Переходим в EasyEDA

08:24 - Частота тактирования

09:03 - Конденсатор и питание

09:45 - Кнопка перезагрузки

10:11 - Рекомендации по разводке платы

10:43 - Пример с ATtiny

10:51 - Прошивка

11:50 - Выводим UART

12:36 - Добавляю светодиоды

13:05 - Как прошиваться по USB?

13:57 - JLCPCB SMT сервис

14:43 - Заказ плат и сборки на JLCPCB

18:00 - Настройка Arduino IDE, ядра

18:45 - Фьюзы

20:51 - Немного о ксенофобии

22:31 - Обзор плат

23:52 - Ещё немного о тактировании

24:56 - Плата с ATtiny

26:34 - Плата с ATmega


Также прикладываю список "работы над ошибками и неточностями" из комментариев под видео:

Первая часть:

1. У инструмента "полигон" для печатной платы в настройках можно поставить "вырез" - тогда он сделает физически вырез в плате (при заказе у китайца), например так можно отделить высоковольтную часть, посмотрите например на ардуиновское реле

2. Русский язык в программе есть, смотрите дальше

3. Дорожки после неудачной разводки можно убрать при помощи Ctrl+Z

4. Всё дорожки с платы можно убрать из меню Edit/Unroute all

5. Можно вывести одиночную плату и сделать panel непосредственно на сайте jlcpcb (указать сколько штук). Выходит на несколько центов дешевле, чем заказывать плату с панелизацией EasyEda :)


Вторая часть:

1. "Минимальное количество компонентов" не всегда соответствует, чаще всего можно заказать пару штук при указанных 100+

2. USB-UART можно поставить CH340C - ей не нужен внешний кварц

3. 9:00 есть там в Basic кварц SMD на 8 МГц

4. 14:30 для SMT не V-cut, а второй способ, с отверстиями

5. Резистор на RST можно не ставить, если от RST не идёт длинная дорожка и/или нет кнопки

6. Электролиты и прочие емкости ставить до стабилизатора

7. Можно включить "Confirm Production file" - перед производством вам вышлют подтверждение и файлы для проверки, все ли в порядке

8. В "ядрах" нельзя писать чисто PB PD как в видео! Эти слова задефайнены на номера в порте, то есть PB0 и PD0 равны 0. Читайте описание ядер, в миникоре например нужно дописать PIN_ для работы с дигиталрайтом, например digitalWrite(PIN_PB5, HIGH)

9. Земля балластных конденсаторов от кварца должна идти отдельной дорогой (не полигоном) к ближайшей земляной ноге, чтобы прочие токи через нее не текли

10. Конденсатор 0.01 мкФ надо размещать рядом с каждым выводом питания, а для Avcc еще и бусинку последовательно добавить или хотя бы резистор

Показать полностью 1
Отличная работа, все прочитано!