Ардуинки, ESP, программирование
96 subscribers
51 photos
8 videos
5 files
15 links
Канал о программировании и вообще об электронике

Вот наш чат: https://yangx.top/arduinki_esp_chat
加入频道
Пришло время терминов. Начнём с простого:
Ардуинка - простонародное название плат Arduino, которые могут выполнять разные функции(от открывания двери, подсветки и сигнализации, до умного дома).
Еспшка - контроллер от фирмы Espressif. Мощный, много памяти и есть wifi. Бывает esp8266(мини-версия) и esp32(тот самый очень мощный контролер). Бывает с камерой(как на фотографии канала).
Камушек, камень - микроконтроллер - простыми словами штука, которая делает то, что напишешь в прошивке. Сложными - схема из транзисторов, способная выполнять команды.
Arduino IDE - среда разработки прошивок для еспшек и ардуинок.
Из простых терминов всё. Потом будут из электроники.
#начало
#уроки
А теперь электроника:
ток(или сила тока) (I) - условно говоря, кол-во электронов в момент времени в проводе. Именно из-за него нельзя втыкать пальцы в розетку. Измеряется в Амперах(А)
напряжение(U) - разность потенциалов между двумя проводами: если на одном относительно нуля 3В, а на другом 8В, то напряжение 8-3=5В. Измеряется в Вольтах(В, V)
резистор - элемент, ограничивающий ток. Основная характеристика резистора - сопротивление. Измеряется в Омах(например, 5 Ом, 10кОм)
мощность(P) - произведение тока и напряжения. Измеряется в Ваттах(Вт, W)
закон Ома - главный закон электроники. I = U/R.
Более подробно про эти первые термины в этом видео и на этом сайте

постоянное напряжение - когда напряжение всегда примерно одинаковое
переменное напряжение - когда напряжение меняется(как в розетке), чаще всего синусоидой

конденсатор - элемент, который может сглаживать сигнал, задерживать заряд и отделять переменную составляющую сигнала от постоянной. Основная характеристика - ёмкость. По идее измеряется в Фарадах, но почти всегда используют микрофарад(мкФ, uF)

транзистор - полупроводниковый элемент, он усиливает сигнал. Транзисторы бывают разных видов
диод - тоже полупроводниковый элемент. Он проводит ток только в одном направлении, а ещё способен сделать из переменного тока постоянный
Это далеко не всё, но думаю пока хватит, дальше будет уже про ардуинки.
#начало
#резисторы
#уроки
Всем привет! Сегодня я расскажу вам об ардуине нане.
Обзор платы:
Все ноги этой ардуинки делятся на 4 группы: питание(5в, 3,3в, gnd), gpio (обычные ноги, которыми можно управлять), управляющие(aref, rst) и среди gpio есть ноги для подключения специальных датчиков.
Основа этой платы — микроконтроллер ATmega328p с архитектурой AVR. В нём 30 КБ flash памяти, в которой хранится программа, 2 КБ оперативной памяти под переменные(потом расскажу про них) и 1КБ энергонезависимой еепром памяти, в которой можно хранить настройки. Частота у этого камушка небольшая, всего 16МГц, но для большинства под(д)елок этого хватает. У наны 30 ног, из них 20 обычные и 2 только аналоговые. Среди этих 20 ног есть 6 ШИМ ног(для плавного управления яркостью, скоростью и т.д.), и ещё 6 аналоговых ног. Так же у наны есть по одному интерфейсу I2C, UART, SPI. Ноги этих I2C, UART и SPI как раз та самая 4 группа из начала сообщения.
В следующем сообщении будет про программирование наны. И про то, почему лучше нана, а не уна!
#платки
#начало
#уроки
Сегодня, как и ожидалось, мы будем программировать нану. Сначала надо установить ардуино иде, заходим на офф.сайт, тычем на версию 1,8 если система 32 битная и виндовс 7 и выше, если ниже, то 1.6.13, а если 64, то можно ставить версию 2,2(можно и меньше). Теперь нужно поставить драйвер на ch340 по этой ссылке(кстати на этом сайте хорошо описан процесс установки, всё таки в телеграме есть ограничение на длину текста) . Потом запускаем ардуино иде, заходим в инструменты->плата->(AVR boards->)arduino nano. Далее, если плата китайская, надо в инструменты->процессор(загрузчик) и меняем на ATmega328p old bootloader,а порт меняем на любой, кроме com1. Если других нет, проблема с платой или кабелем.Для проверки платы можно загрузить тестовую прошивку. Она называется блинк и мигает встроенным диодом на плате. Чтобы её загрузить, переходим в файл->примеры->basic->blinc, ждём пока всё загрузится и нажимаем стрелочку в верхнем левом углу или ctrl+u. Всё! Спустя пару секунд диод начнёт мигать.
А теперь сравнение другой ардуины уны и уже известной наны:у уны столько же памяти, но унаны на 2 ноги больше. 1:0 в пользу наны.
Уна большая. Нет, огромная! А нана компактная. 2:0 в пользу наны.
Нана втыкается в макетную плату. Или по простому, в макетку. Уна висит на проводочках. 3:0.
Нану можно паять для всяких самоделок. С уной так нельзя делать. Или будет очень неудобно. 4:0
У некоторых нан разъём для прошивки микро юсб. Он легко отрывается. Стандартный для нан мини юсб сложнее оторвать. У уны громоздкий и малоудобный юсб тип б. Его практически невозможно сломать. 4:0,5.
Выбор очевиден.
#начало
#платки
#ардуиноиде
#уроки
А сегодня мы подготавливаемся а настоящему программированию. Будем изучать структуру программы.
Изначально, если открыть ардуино иде, можно увидеть следующее:
void setup() {
// put your setup code here, to run once
}
void loop() {
// put your main code here, to run repeatedly:
}
А теперь объяснение:
void setup - основная функция, внутри скобок пишутся команды, которые должны выполниться один раз. Например, инициализация датчиков, настройка пинов и т.д.
void loop() - главная функция, команды в ней повторяются циклично: выполнилась последняя и всё начинается с начала loop'a.
// слова
- комментарий. В выполнении программы не участвует. Есть ещё многострочный комментарий, у него с /* и до */ всё пропускается:
/*
Коты
Ардуинки
Ещё что-то
*/
А потом будем разбираться с переменными

#начало
#уроки
А сейчас внеплановый выпуск про esp-01. Просто столкнулся с проблемами, починил и решил поделиться решением этих проблем. Обзора платы сейчас не будет!
Чтобы использовать еспшки, надо установить специальное дополнение к ардуино иде — ядро. Это делается просто: сначала надо зайти в настройки(файл->настройки ИЛИ ctrl+,) и в дополнительные ссылки вставляем https://arduino.esp8266.com/stable/package_esp8266com_index.json, потом уже переходим в инструменты->плата->менеджер плат, в появившемся окне пишем esp8266, выбираем версию 2.7.2 и нажимаем установить. Это не всё. Потом обязательно надо зайти по пути C:\Users\имяпользователя\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.7.2\tools\pyserial\serial\serialwin32.py и в начале 219, 220, 221 и 222 строки поставить #. Чтобы прошивать esp-01, надо замкнуть её ногу io0 на gnd. Это решается припаянной на программаторе перемычкой (фотография потом будет). Дальше надо установить настройки так, как будет на следующей фотографии, которая тоже будет потом. После этого всё должно заработать!
#espшки
#платки
#ардуиноиде
#уроки
Настройки. Порт надо выбрать любой, кроме COM1. В моём случае ещё кроме COM2. (См. сообщение про нану)
Доработка программатора и еспшка рядом и в нём
Не забывайте, что ещё есть чат, куда по хэштегу #идея можно предложить идею для поста(в том числе проблема с ардуиной и загрузкой прошивки).
А если что-то не работает из моих выпусков, пишите проблему + #техподдержка

П. С. Просто оставлю это здесь
https://yangx.top/arduinki_electronica?boost
Ардуинки, ESP, программирование pinned «Всем привет! На связи я, а это канал об электронике(это и так понятно). Всего будет 8 видов сообщений(уже больше): #начало - для новичков #avrки - для тех, кто уже что-то знает #espшки - для тех, кому уже мало обычных ардуинок #вифи - для тех, кому нравится…»
Ардуинки, ESP, программирование pinned «Не забывайте, что ещё есть чат, куда по хэштегу #идея можно предложить идею для поста(в том числе проблема с ардуиной и загрузкой прошивки). А если что-то не работает из моих выпусков, пишите проблему + #техподдержка П. С. Просто оставлю это здесь https…»
Ардуинки, ESP, программирование
Перед примером программы надо кое-что ещё уточнить. С переменными работают почти все математические операции(корень и степень записываются подругому). Чтобы не писать a = a + 1;
Можно написать а += 1. Ещё есть особенный оператор — %. Это остаток от деления. Например 5%2=1 , 8%3=2 , 123%100=23.

Чтобы вывести на экран переменную или какой-нибудь текст, надо написать
Serial.print("ваш текст");
ВАЖНЫЕ ДОПОЛНЕНИЯ: 1.чтобы вывести число или переменную, кавычки НЕ нужны. Для текста они обязательны!
2.этим способом весь текст выводится в одну строку, это неудобно. Если не надо выводить что-то типа
Значение 1: 1234
то лучше заменить print на println. Это выведет в столбик. 3.чтобы всё это работало, внутри {} скобок void setup надо написать Serial.begin(9600);
Это инициализация uart'а.
А сейчас программа...
#начало
#уроки
//глобальные переменные. Видны и доступны везде
int a = 1;
byte val = 123;
void setup() {
Serial.begin(9600);
Serial.println(a); // выведет 1
a = -10*2+40;
Serial.println(a); // выведет 20
byte ostatok = val % a; // локальная переменная. Видна только в этих фигурных скобках.
val -= 3; // 123 - 3 = 120
val /= a; // 120 / 20 = 6
Serial.println(val); // выведет 6
}
void loop() {}
П. С. Чтобы открыть порт, надо нажать на значок лупы в правом верхнем углу или нажать ctrl+shift+m
#ардуиноиде
В ближайшее время на канале выйдет инструкция, как собрать такую лампу.
А теперь зачем это всё: в магазинах похожая штука стоит 5 тыс. р., а эта собрана примерно за 1500р., в магазинном варианте нет эффектов и вайфая, а тут есть, в этой лампе можно настроить потребляемый ток, а в магазинной лампе нельзя. Короче дешевле, лучше, но придётся самому собрать
#поделки
#espшки
#вифи
#адреска