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

Arduino & Pi

886 постов 16 610 подписчиков
75

Как стать грамотным разработчиком встраиваемых систем?

Доброго времени суток, в начале этого года я написал пост как жить чуть больше чем на МРОТ и тут же настал коронавирус. Через некоторое время меня сократили, и чет стало вообще грустно. Не знал куда податься, хотел попробовать себя в web разработчиках, но обстоятельства сложились так, что я  стал делать несложные проекты на ардуино, а теперь и на esp32, благо я понимаю в схемотехнике и моделировании, но был полным нулем в программировании (да и сейчас не далеко ушел). Но мне понравилось это направление и в будущем хочу стать серьезным разработчиком, не только на атмегах, esp и stm, но вообще на любых микроконтроллерных системах. И вот тут я опять столкнулся с отсутствием информации, в универе нас этому не учили и я понимаю, что могу не осознавать, что какие то вещи надо учить уже сейчас, например FreeRTOS, работа с аппаратной частью микроконтроллеров, взаимодействие программно с ними, высшая математика вдруг нужна оказалась и углубиться в нее надо. Просто поверхностное знание C++ и Phyton  не позволит что то серьезное создавать. Сам С++ это тоже не просто синтаксис, я знаю что в нем есть очень мощные инструменты, которыми те же ардуинщики не пользуются. Время у меня есть, минимум год, есть база, есть желание и заказы в этом направлении, очень простые, но на хлеб хватит. Хочу делать серьезные и крутые штуки. Может подскажите подходящие книги, может зарубежные каналы или даже курсы, если надо летом в Москву поеду. А вот поступать 3й раз в вуз точно не хочу, это бесполезно.

Просто прошу совета. Без рейтинга.

Жаль что только в 33 пришло осознание чем хочу заниматься.

P.S. Кстати в университете успел пообщаться с системами National Instruments, но было это лет 10 назад.

Как стать грамотным разработчиком встраиваемых систем? Без рейтинга, IT, Программирование, Встраиваемые системы, Arduino
125

Программатор PIC

На прошлый пост, к сожалению никто так и не смог помочь. Но упорные поиски привели меня на сайт, на котором я нашел все необходимую информацию и таки смог прошить микроконтроллер. Собственно сам программатор в сборе, но без Arduino. Был собран из того, что было, единственное пришлось докупить повышающий преобразователь DC-DC.

Программатор PIC Arduino, Программирование, Микроконтроллеры, Я сделяль, Пайка, Длиннопост

Собственно, программатор и Arduinка.

Программатор PIC Arduino, Программирование, Микроконтроллеры, Я сделяль, Пайка, Длиннопост

Главное не сдаваться и все получится

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

Помогите со скетчем в ардуино!

Добрый день граждане-товарищи сочувствующие и мимо проходящие. Пытаюсь сделать свет в курятнике, типа рассвет закат. Собрал платку на симисторе. Скетч из тырнета приладил. Само медленное угасание и зажигание проблем не вызывает.  А вот управление ни в голове ни в ардуино не видится. Т.Е. Мне надо чтобы при замыкании кнопки он начал цикл рассвет и продолжал гореть пока кнопка не разомкнется и начался цикл закат и до смены . Помогите хоть советом как реализовать . Сейчас после ресета он постоянно выполняет цикл тот или этот в зависимости от состояния кнопки в момент ресета. Понятно что без рейтинга ибо очень надо. Птицы, говорят мрут от резкого включения освещения. Также не понял как вставить код не вставляя код в пост поэтому.... Простите извините минусите.

Скетч вот:


int AC_LOAD = 3; // Выход для управления семистором

int ButPin = 9;

volatile int dimming = 128; // Уровень яркости (0-128) 0 = ON, 128 = OFF

void setup()

{

pinMode(AC_LOAD, OUTPUT); // Пин на выход

attachInterrupt(0, zero_crosss_int, RISING); // Установить прерывание при переходе сетевого напряжжения через "0"

}

void zero_crosss_int() // функцию, вызываемая при пересечении нуля, для регулировки яркостью

{

// Рассчет угла включения :: 50Hz-> 10ms (1/2 цикла)

// (10000us - 10us) / 128 = 75 (приблизительно)

int dimtime = (75*dimming);

delayMicroseconds(dimtime); // Период включенного состояния

digitalWrite(AC_LOAD, HIGH); // Включаем симистор

delayMicroseconds(20); // triac On propogation delay

digitalWrite(AC_LOAD, LOW); // Выключаем симистор

}

void loop()

{

if(digitalRead(ButPin) == HIGH)

{

dimming = 120;

delay(500);

dimming = 117;

delay(500);

dimming = 115;

delay(500);

dimming = 113;

delay(500);

dimming = 110;

delay(500);

dimming = 107;

delay(500);

dimming = 106;

delay(500);

dimming = 104;

delay(500);

dimming = 102;

delay(500);

dimming = 100;

delay(500);

dimming = 98;

delay(500);

dimming = 96;

delay(500);

dimming = 94;

delay(500);

dimming = 92;

delay(500);

dimming = 90;

delay(500);

dimming = 88;

delay(500);

dimming = 86;

delay(500);

dimming = 84;

delay(500);

dimming = 82;

delay(500);

dimming = 80;

delay(500);

dimming = 78;

delay(500);

dimming = 76;

delay(500);

dimming = 74;

delay(500);

dimming = 72;

delay(500);

dimming = 70;

delay(500);

dimming = 68;

delay(500);

dimming = 66;

delay(500);

dimming = 64;

delay(500);

dimming = 62;

delay(500);

dimming = 60;

delay(500);

dimming = 58;

delay(500);

dimming = 56;

delay(500);

dimming = 54;

delay(500);

dimming = 52;

delay(500);

dimming = 50;

delay(500);

dimming = 48;

delay(500);

dimming = 46;

delay(500);

dimming = 44;

delay(500);

dimming = 42;

delay(500);

dimming = 40;

delay(500);

dimming = 38;

delay(500);

dimming = 36;

delay(500);

dimming = 34;

delay(500);

dimming = 32;

delay(500);

dimming = 30;

delay(500);

dimming = 28;

delay(500);

dimming = 26;

delay(500);

}

else

{

dimming = 26;

delay(500);

dimming = 28;

delay(500);

dimming = 30;

delay(500);

dimming = 32;

delay(500);

dimming = 34;

delay(500);

dimming = 36;

delay(500);

dimming = 38;

delay(500);

dimming = 40;

delay(500);

dimming = 42;

delay(500);

dimming = 46;

delay(500);

dimming = 48;

delay(500);

dimming = 50;

delay(500);

dimming = 52;

delay(500);

dimming = 54;

delay(500);

dimming = 56;

delay(500);

dimming = 58;

delay(500);

dimming = 60;

delay(500);

dimming = 62;

delay(500);

dimming = 64;

delay(500);

dimming = 66;

delay(500);

dimming = 68;

delay(500);

dimming = 70;

delay(500);

dimming = 72;

delay(500);

dimming = 74;

delay(500);

dimming = 76;

delay(500);

dimming = 78;

delay(500);

dimming = 80;

delay(500);

dimming = 82;

delay(500);

dimming = 84;

delay(500);

dimming = 86;

delay(500);

dimming = 88;

delay(500);

dimming = 90;

delay(500);

dimming = 92;

delay(500);

dimming = 94;

delay(500);

dimming = 96;

delay(500);

dimming = 98;

delay(500);

dimming = 100;

delay(500);

dimming = 102;

delay(500);

dimming = 103;

delay(500);

dimming = 104;

delay(500);

dimming = 106;

delay(500);

dimming = 108;

delay(500);

dimming = 112;

delay(500);

dimming = 118;

delay(500);

dimming = 122;

delay(500);

dimming = 126;

delay(500);

dimming = 128;

delay(500);

}

}

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

Управление сервоприводом через ИК

Года три назад мне пришла интересная идея, которую в силу ее очевидности я не стал проверять. Суть проста: управлять сервоприводом с помощью инфракрасного сигнала. Скорее всего так уже кто-нибудь сделал, а если нет, то странно.

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

Управление сервоприводом через ИК Arduino, Сервопривод, Инфракрасный, Видео

У этого способа куча недостатков, начнем с того, что у него:

• Чудовищно низкая помехоустойчивость, а точнее ее полно отсутствие

• Невысокая дальность

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

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

Видео версия. Демонстрация работы скетчей Sweep и Knob на 0:47.

P.S. если кто, вдруг найдет адекватное применение, дайте знать)

254

Tinker Board 2: новинка от Asus на 6 ядерном процессоре

Компания ASUS, по сообщениям сетевых источников, подготовила к выпуску одноплатный компьютер Tinker Board 2, ориентированный на разработчиков умных гаджетов и устройств для Интернета вещей.

Tinker Board 2: новинка от Asus на 6 ядерном процессоре Asus, Soc, Arm, Одноплатный компьютер

Изделие имеет размеры всего 85,6 × 54 мм. В основу положен процессор Rockchip 3399, содержащий шесть вычислительных ядер: это дуэт ARM Cortex-A72 с тактовой частотой до 2,0 ГГц и квартет ARM Cortex-A53 с частотой до 1,5 ГГц. Обработкой графики занят ускоритель ARM Mali-T860 MP4 с частотой 800 МГц.


Объём оперативной памяти LPDDR4 может составлять 2 или 4 Гбайт. Для хранения данных предлагается использовать карту microSD, но также будет выпущена модификация Tinker Board 2S с флеш-модулем eMMC вместимостью 16 Гбайт.


Новинка несёт на борту контроллер Gigabit Ethernet для проводного подключения к компьютерной сети. За беспроводные соединения отвечают адаптеры Wi-Fi 802.11b/g/n/ac (2,4/5 ГГц) и Bluetooth 5.0.

Tinker Board 2: новинка от Asus на 6 ядерном процессоре Asus, Soc, Arm, Одноплатный компьютер

Для вывода изображения служит интерфейс HDMI 2.0 с поддержкой формата 4К/60р. Есть три порта USB 3.2 Gen1 Type-A и один порт USB 3.2 Gen1 Type-C. Упомянута поддержка интерфейсов GPIO, SPI, I2C, UART, PWM.

Вместе с новинкой разработчики смогут применять операционную систему Android. Сведений о цене пока нет.

Одноплатные компьютеры

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

Tigard - плата с открытым исходным кодом для взлома оборудования

Существует множество дешевых отладочных плат USB на TTL 5 В или 3,3 В, используемых для доступа к последовательной консоли и/или программным платам, но аппаратная плата с открытым исходным кодом Tigard на базе FTDI FT2232H делает гораздо больше, поскольку поддерживает несколько протоколов, несколько напряжений для взлом оборудования и отладка.


Разработчик объясняет, что Tigard можно использовать в качестве прямой замены для десятков других аппаратных инструментов на базе чипов FTDI и включает встроенную поддержку OpenOCD, FlashROM и многое другое.

Tigard - плата с открытым исходным кодом для взлома оборудования Отладочная плата, Краудфандинг, Сбор денег, Видео, Длиннопост

Технические характеристики платы Tigard:


Основной чип — FTDI FT2232HQ, двойной высокоскоростной USB-порт для многоцелевого - UART/FIFO IC

- Основной порт, предназначенный для UART, включая доступ ко всем сигналам управления потоком

- Вторичный порт совместно используется выделенными разъемами для SWD, JTAG, SPI и I²C


USB – порт USB 2.0 Type-C (480 Мбит/с)

Вводы/выводы

- 9-контактный разъем UART

- Разъем Qwiic I2C

- 8-контактный разъем SPI и I2C

- 8-контактный разъем JTAG

- 10-контактный отладочный разъем Cortex

- 14-контактный разъем логического анализатора (LA) для наблюдения за сигналами на уровне  устройства

- Направленные переключатели уровня для работы от 1,8 до 5,5 В


Разное

- Переключатель, чтобы выбрать между встроенными источниками питания vTarget 1,8 В, 3,3 В, 5,0 В и внешними

- Переключатель, для выбора между режимами SPI/JTAG и I²C/SWD.

- Световые индикаторы для облегчения отладки


Нет необходимости в специальных инструментах для Tigard, и плата будет работать со стандартными инструментами и библиотеками, включая драйверы последовательного порта USB, OpenOCD и UrJTAG для JTAG, Flashrom, PyFtdi/PySpiFlash, LibMPSSE и другие инструменты для интерфейса SPI, а также LibMPSSE и PyFtdi / PyI2CFlash для интерфейсов I2C.

Tigard - плата с открытым исходным кодом для взлома оборудования Отладочная плата, Краудфандинг, Сбор денег, Видео, Длиннопост

Плата будет поставляться со всеми необходимыми кабелями (SPI, JTAG, Cortex, последовательный) с четко обозначенными проводами. Также есть два набора, первый из которых включает плату логического анализатора Bitmagic для отладки последовательных протоколов в реальном времени с помощью Sigrok / PulseView, а второй — «Applied Physical Attacks Online Kit», в который добавляются зажимы и разъемы, простой мультиметр, сумочка-органайзер, USB-микроскоп и целевая система (неназванный Wi-Fi-маршрутизатор на базе Linux).

Tigard - плата с открытым исходным кодом для взлома оборудования Отладочная плата, Краудфандинг, Сбор денег, Видео, Длиннопост

На Github выложены файлы проектирования оборудования KiCAD и документация.

Tigard уже собрал более 20 000 долларов на Crowd Supply ( от $39 за плату и провода и до $1337 за полный комплект) . Доставка в США бесплатна, а в остальные страны — от 10 до 20 долларов.

Поставки планируется начать во второй половине февраля 2021 года.

Источник: cnx-software

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

Успешно профинансирован карманный робот - вероятно, лучший подарок на новый год

Успешно профинансирован карманный робот - вероятно, лучший подарок на новый год Робот, Собака, Arduino, Kickstarter, Робототехника, Видео

На сайте indiegogo.com успешно профинансирован Bittle — робот-собака размером с ладонь. На данный момент собрано 46 миллионов рублей.


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


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


Благодаря настраиваемой плате Arduino "неигрушку" можно улучшать с помощью различных датчиков, ИИ Raspberry Pi и других микросхем.


В комплекте имеется пульт для запуска основных движений: ходить и сидеть.

МК — ATMega328P (16 МГц),

IMU — ICM20600 (6-осевой, 16-битные гироскоп+акселерометр )

для управления сервами используется PCA9685,

ИК-приёмник — HX18388,

пищалка-зуммер (бузер),

разъём 5х2 — для подключения Raspberry Pi,

4 разъёма для подключения модулей Seeed Grove (2 цифровых, 1 аналоговый, 1 — i2c) — зажимаются в «пасти» робота,

электропитание — 7.4 В.


Робот на Github.


Предзаказ на кикстартере набора для сборки своей робо-собаки обойдётся в $225 (ожидаемый срок отправки — декабрь 2020).

Показать полностью
Мои подписки
Подписывайтесь на интересные вам теги, сообщества,
пользователей — и читайте персональное «Свежее».
Чтобы добавить подписку, нужно авторизоваться.
Отличная работа, все прочитано!