А сейчас внеплановый выпуск про 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шки
#платки
#ардуиноиде
#уроки
Чтобы использовать еспшки, надо установить специальное дополнение к ардуино иде — ядро. Это делается просто: сначала надо зайти в настройки(файл->настройки ИЛИ 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шки
#платки
#ардуиноиде
#уроки
👍2
Ардуинки, ESP, программирование
А потом будем разбираться с переменными
Наконец-то дошли руки написать этот пост. Очень сильно проще показать всё на картинке. В следующем сообщении будет пример программы + типы данных
П. С. Надеюсь кто-нибудь поймёт мой почерк)
#начало
#уроки
П. С. Надеюсь кто-нибудь поймёт мой почерк)
#начало
#уроки
👍3
Ардуинки, 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'а.
А сейчас программа...
#начало
#уроки
Можно написать а += 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'а.
А сейчас программа...
#начало
#уроки
👍2
Спецвыпуск!
У некоторых плат с еспшками стоит другой юсб-юарт преобразователь (не CH340, а CP2102). И на него нужен другой драйвер — вот ссылка на офф. сайт. Чтобы скачать, заходим туда и ищем драйвер под свою ос, потом тыкаем, а дальше всё как обычно. После установки можно подключить плату и посмотреть в диспетчере устройств, отобразилась она или нет.
#espшки
#уроки
У некоторых плат с еспшками стоит другой юсб-юарт преобразователь (не CH340, а CP2102). И на него нужен другой драйвер — вот ссылка на офф. сайт. Чтобы скачать, заходим туда и ищем драйвер под свою ос, потом тыкаем, а дальше всё как обычно. После установки можно подключить плату и посмотреть в диспетчере устройств, отобразилась она или нет.
#espшки
#уроки
Silabs
CP210x USB to UART Bridge VCP Drivers - Silicon Labs
The CP210x USB to UART Bridge Virtual COM Port (VCP) drivers are required for device operation as a Virtual COM Port to facilitate host communication with CP210x products. These devices can also interface to a host using the direct access driver.
👍3🐳1
Перед тем, как будет обзор железок, надо ещё кое-что рассказать. У ардуины есть 2 вида ног: цифровые и аналоговые. Почти все ноги могут быть входом и выходом сигнала. У обычных avr'ок нет ЦАПа, т.е. они не могут выдавать аналоговый сигнал. Только 0 и 1. Но есть ШИМ, и он позволяет плавно управлять яркостью, скоростью и т.д. У есп есть и ЦАП, и ШИМ. У всех обычных микроконтроллеров есть АЦП, которое преобразовывает аналоговый сигнал в цифровой. Ну и есть цифровой вход/выход. 0 или 1, 0В или 5В. Вот функции для управления этим всем на AVR :
Цифр. выход: digitalWrite(пин, значение)
Цифр. вход: digitalRead(пин)
Аналоговый вход: analogRead(пин)
ШИМ: analogWrite(пин, значение от 0 до 255)
Скоро будет остальное.И проекты!
#начало
#уроки
Цифр. выход: digitalWrite(пин, значение)
Цифр. вход: digitalRead(пин)
Аналоговый вход: analogRead(пин)
ШИМ: analogWrite(пин, значение от 0 до 255)
Скоро будет остальное.
#начало
#уроки
👍2
Сначала расскажу про потенциометр. Это резистор, сопротивлением которого можно управлять. К ардуинке он подключается просто: одна крайняя нога на gnd, другая на 5в, а средняя на аналоговую ногу ардуины(А0, А1, А2 и т.д.). Прошивка для проверки этого всего тоже простая:
#начало
#уроки
П. С. Дополнение: в pinMode 0 можно поменять на INPUT, это то же самое
#define POT_PIN A0 // пин потенциометраТут в порт выводятся числа от 0 до 1024, это значение с АЦП. Ещё можно открыть плоттер(ctrl+shif+l или через инструменты).
void setup() {
Serial.begin(9600); // настраиваем порт
pinMode(POT_PIN, 0); // настраиваем пин
}
void loop() {
// таймер на миллисе
static uint32_t tmr;
if(millis() - tmr >= 150) {
tmr = millis();
Serial.println(analogRead(POT_PIN)); // вывод в порт
}
}
#начало
#уроки
П. С. Дополнение: в pinMode 0 можно поменять на INPUT, это то же самое
👍1
А теперь кнопки. Обычно у них 4 ноги, но они попарно соединены. Остаётся 2 контакта. Кнопку можно подключать по разному. Обычно одна нога идёт на пин, вторая на gnd или 5В. Если на 5В, то к пину надо подключить резистор(обычно на 10 или 4,7 кОм). Вот прошивка без библиотеки:
Это минимальная обработка нажатия, в которой нет антидребезга. Все не сенсорные кнопки дребезжат, т.е. нажатие происходит не сразу, т.е. на ардуину приходит много 0 и 1. Из-за этого будут ложные срабатывания. Потом пришлю прошивку с антидребезгом
#начало
#уроки
#define BTN 3 // кнопка на д3
void setup() {
Serial.begin(9600); // настройка порта
pinMode(BTN, 2); // настройка пина на подтяжку к +
}
void loop() {
static bool flg; // флаг состояния кнопки
bool s = !digitalRead(BTN); // текущее состояние кнопки
if (s && !flg) { // кнопка нажата
flg = true;
Serial.println("Click");
}
if (!s && flg) { // кнопка отпущена
flg = false;
Serial.println("Relase");
}
}
Это минимальная обработка нажатия, в которой нет антидребезга. Все не сенсорные кнопки дребезжат, т.е. нажатие происходит не сразу, т.е. на ардуину приходит много 0 и 1. Из-за этого будут ложные срабатывания. Потом пришлю прошивку с антидребезгом
#начало
#уроки
👍2
А сейчас датчики. Они бывают простыми и сложными. Простые выдают цифровой(0 и 1, 0В и 5В(3,3В)) или аналоговый. А сложные связываются с ардуиной с помощью интерфейсов(I2C, I2S, UART, SPI и т.д.). Простые датчики могут работать и без микроконтроллера.
У простых цифровых или только аналоговых датчиков три ноги — gnd(-, знак земли), out(a0 или d0) и 5v(3,3v, vcc, +). Out подключается к любой ноге если датчик цифровой и к аналоговой, если аналоговый. Ещё есть простые цифроаналоговые датчики, у них 4 ноги — gnd, 5v, d0(цифровой) и a0(аналоговый). Подключать и a0, и d0 не обязательно. Прошивку для простых датчиков присылать не буду. Для аналоговых подойдёт прошивка потенциометра, а для цифровых там же можно заменить analogRead на digitalRead.
А со сложными датчиками всё сложнее. Потом будем разбирать самые популярные.
А потом пришлю фотографии разных датчиков.
#начало
#железки
А ещё я ввожу новый хэштег #уроки
У простых цифровых или только аналоговых датчиков три ноги — gnd(-, знак земли), out(a0 или d0) и 5v(3,3v, vcc, +). Out подключается к любой ноге если датчик цифровой и к аналоговой, если аналоговый. Ещё есть простые цифроаналоговые датчики, у них 4 ноги — gnd, 5v, d0(цифровой) и a0(аналоговый). Подключать и a0, и d0 не обязательно. Прошивку для простых датчиков присылать не буду. Для аналоговых подойдёт прошивка потенциометра, а для цифровых там же можно заменить analogRead на digitalRead.
А со сложными датчиками всё сложнее. Потом будем разбирать самые популярные.
А потом пришлю фотографии разных датчиков.
#начало
#железки
А ещё я ввожу новый хэштег #уроки
А теперь расскажу про светодиод. У него обычно 2 ноги, анод и катод, + и -. Для диодов нужен определённый ток. Если диод напрямую подключить к 5в, то он сгорит. Чтобы этого не произошло, используют резистор (обычно на 220ом). Программа для моргания диодом тут уже есть (см. урок про нанку). Так что вот прошивка для управления светодиодом с помощью кнопки:
А сейчас пришлю схему подключения и как выглядят светодиоды
#начало
#уроки
#define BTN 3 // кнопка на д3Тут уже есть антидребезг
#define LED_PIN 2 // диод на д2
void setup() {
Serial.begin(9600); // настройка порта
pinMode(BTN, 2); // настройка пина на подтяжку к +
pinMode(LED_PIN, 1); // настройка пина диода на выход
}
void loop() {
static uint32_t tmr;
static bool flg; // флаг состояния кнопки
bool s = !digitalRead(BTN); // текущее состояние кнопки
if (s && !flg && millis() - tmr > 100) { // кнопка нажата
flg = true;
tmr = millis();
Serial.println("Click");
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
}
if (!s && flg && millis() - tmr > 100) { // кнопка отпущена
flg = false;
tmr = millis();
Serial.println("Relase");
}
}
А сейчас пришлю схему подключения и как выглядят светодиоды
#начало
#уроки
👍2
А теперь коротко про вайфай в еспшках.
1. Режим АР — точка доступа от самой еспшки, запускается так:
П. П. С. Т.к. я выздоровел, мне надо ходить в школу, и уроки тут будут выходить реже
#вифи
#espшки
#уроки
1. Режим АР — точка доступа от самой еспшки, запускается так:
WiFi.mode(WIFI_AP); // настройка режима вифи2. Подключение к роутеру, режим STA:
WiFi.softAP("ssid", "pass"); // имя и пароль точки доступа
Serial.begin(115200); // открываем портП. С. Скоро будет интересный урок про вифи!
WiFi.mode(WIFI_STA); // настройка режима вифи. Тут необязательно
WiFi.begin("ssid", "pass"); // ssid и пароль от роутера
while(WiFi.status() != WL_CONNECTED) { // если не подключились, пишем в порт .
delay(500);
Serial.print(".");
}
Serial.println(WiFi.localIP()); // вывод айпи адреса
П. П. С. Т.к. я выздоровел, мне надо ходить в школу, и уроки тут будут выходить реже
#вифи
#espшки
#уроки