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

Arduino & Pi

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

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

83

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

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

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

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

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

Как стать грамотным разработчиком встраиваемых систем?
Показать полностью 1
135

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

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

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

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

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

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

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

Скетч вот:


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в, катод - к контакту, на котором должен был висеть сервопривод.

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

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

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

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

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

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

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

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

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

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

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

Изделие имеет размеры всего 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.

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

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

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

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