Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Это idle-игра стратегия о рыцарях, исследованиях, крафте и сражениях, которая предоставляет пользователям расслабляющий опыт. Игра не требует концентрации и идеально подходит, когда вам нужно сделать перерыв или отдохнуть.

Герои Мини-Королевства

Кликер, Стратегии, Мидкорные

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
TheSupMike
TheSupMike
8 лет назад

Мои попытки писать и тяга к критике⁠⁠

Всем привет! Так уж получилось, что открыл я в себе желание "писать". Однако, проблема в том, что, во-первых, я не знаю, на сколько хорошо у меня это получается, а, во-вторых, я очень сильно, можно сказать, зависим от чужого мнения (не спорю, что это не есть хорошо, но такой уж я). Я начал писать расссказ и мне интересно, что о нём скажут другие. Но ведь, ясное дело, если я покажу это знакомым, скорее всего, будет больше похвалы, нежели критики. Так что я решил обратиться к вам, обитатели пикабу. У меня 2 вопроса. На сколько хорошо "это" и стоит ли продолжать? Сразу скажу, что я не очень умею в пунктуацию, так что у ярых грмар наци могут заболеть глаза. И ещё. Текст, по сути, планируется в жанре фентези, но так как признаков этого жанра в этом коротком отрывке ещё нет - соответствующий тег я решил не ставить.

(Название, на данный момент, отсутствует)


«И как я вообще сюда забрёл?» – пробурчал я себе под нос уставшим голосом. Вокруг не было ни души, только лес. Мой конь шёл по тропинке посреди деревьев, с которых уже давно опала вся листва. Было уже около восьми часов, начинало темнеть. Я подумал о том, что надо бы найти, где переночевать. Когда вот так едешь по дороге – невольно задумываешься: «А вдруг всё, что я когда-либо видел – иллюзия? Может, этого мира и нет вовсе, а всё, что я вижу, да и я сам – чей-то сон?»... На эти мысли меня подталкивал свет луны, на фоне бескрайнего чёрного неба, крики воронов, периодически заглушаемые стуком копыт. «Нет, не думаю... Возможно чья-то игра, но не полный обман»… С этой мыслью мне стало чуть легче. Возможно я утешал себя… Создавал те самые иллюзии. Тем не менее, дорога всё шла и шла, а мне оставалось только вглядываться вдаль, в надежде увидеть хоть кого-нибудь или разглядеть тусклый свет факела, такого же уставшего путника, как я.

Уже стемнело. Если бы не стук копыт – стояла бы гробовая тишина. Я зажёг фонарь и повесил себе на пояс. До сих пор об этом жалею… Я услышал шорох в кустах. «Ветер, волки или бандиты», - с лёгкой усмешкой подумал я. «Ставлю на бандитов». В этот момент, в тени, неподалёку от того места, где был слышен шорох, появилась фигура. «Значит всё-таки бандиты». Недолго думая, я спрыгнул коня и вынул саблю из ножен. И об этом я до сих пор жалею... Фигура не двигалась с места. Единственной идеей было крикнуть. Ответа не последовало. Внезапно, я вновь услышал шорох у себя за спиной. Резким движением руки я рассёк воздух своей саблей. А вот об этом я не жалею нисколько. Из шеи незнакомца полилась кровь. Он упал. Оглядевшись, я не заметил никого и, убрав саблю в ножны, решил осмотреть его. Пульса уже не было. При нём было немного монет, кусок хлеба и фляга с чем-то. Сам он был в плаще, а на его лице была маска. В руке у него лежал кинжал. Слегка покрытый ржавчиной, а может и засохшей кровью, кинжал. «Как я и думал». На мой последующий крик никто не вышел. «Значит либо испугались, либо был один», - подумал я. Было принято решение забрать часть его вещей себе, всё рано они ему уже не нужны. Я достал кошель и бросил туда монеты. Кинжал тоже решил забрать. Засунул его за пояс, ближе к спине. Тут, вдруг, по всему телу прошёл лёгкий холод. На мгновение задумавшись, я внезапно вспомнил о силуэте, что видел чуть раньше. В этот раз там никого уже не было… Не придав никакого значения этому «холоду» и, уже отсутствующему, силуэту, я сел на коня и поехал дальше. Путь продолжался всё также… Лес, луна, стук копыт. Вдруг, сквозь тьму, я стал видеть еле различимые очертания дома. Тут я решил ускориться. Подъехав ближе, я увидел достаточно крупный дом, в котором, о счастье, на втором этаже горел свет.


P.S. Сказал бы я, мол, не судите строго. Но, нет. Судите. Критика (конструктивная) не помешает, ведь нужно всегда стримиться к лучшему. Всем добра)

Показать полностью
[моё] Литература Вопрос Начинающий Текст
5
987
DELETED
8 лет назад
Arduino & Pi

Сircuits от Autodesk — бесплатный online-конструктор⁠⁠

Очень давно я слышал про Arduino, что есть такая заморская вещица, что можно с её помощью делать всякие-интересные электронные штуковины типа подсветки, «волшебные» фонарики, самоходные машинки и прочее. Но как-то не интересовало меня всё это… Пару-тройку недель назад на Пикабу я увидел пост, о том, как сделать Ambilight-подсветку для монитора своими руками на базе Arduino и тут меня зацепило! Я не мог ни есть, ни пить, ни спать, все думал о Arduino и о том, что можно сделать с ним. Начал читать форумы, искать сайты с обучающими материалами и наткнулся на Progmk.ru. Стал смотреть основы Ардуино для начинающих. В четвертом выпуске Виктор сказал, что пора приобретать устройство, послушавшись его я приобрел на всем известном сайте у братского народа Arduino и детали к нему. Тут меня постигли грустные мысли… Видео смотрю, книги про микроконтроллеры листаю…


Но что делать пока Arduino идет в посылке ко мне?


Посмотрел на форумах о программном обеспечении, наткнулся на Fritzing. Программа хороша, и макетку можно рядом с Arduino положить, и проводами контакты соединить, и код прописать… Но плоды своего труда не посмотреть… Нет эмуляции. Пришлось копать интернет дальше. На одном из форумов шло обсуждение VBB, что мол может она эмулировать, но платная. В комментариях предложили воспользоваться бесплатным online- конструктором circuits.io от Autodesk. Для меня это было открытием!


Circuits.io – электроника от новичка до профессионала!


После прохождения регистрации и согласия со всем, что предлагает сделать с моей душой автодеск в лицензионном соглашении, моему взору предстала страница с предложением начать

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

В правом верхнем углу жму + New и выбираю New Elecronic Labs, открывается страница ради которой все и писалось! :) Перед собой я вижу макетную плату!

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

Добавив Arduino Uno R3 с помощью кнопки Components +,

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

я перешел в редактор кода, скрытый под кнопкой Code Editor. После ввода кода для мигания встроенным светодиодом, жму Upload & Run и наслаждаюсь магией! СВЕТОДИОД МИГАЕТ! ЭМУЛЯЦИЯ РАБОТАЕТ!

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

Для программы из пятого выпуска мне понадобились:

- Резистор

- Кнопка

- Соединительные провода

Добавив все компоненты, соединив все проводами и переписав код, я получил вторую магию: кнопка жмется, светодиод светится! :)

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

Также cirquit.io позволяет строить схему и печатную плату, но для меня это пока не нужно.

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост
Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

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


Кстати, забыл упомянуть, в приложении есть множество модулей, для построения и тестирования электронных схем.


Спасибо всем, кто дочитал до конца! :)

Показать полностью 7
[моё] Arduino Электроника Начинающий Circuits Программа Длиннопост
68
471
XZX64
8 лет назад
Arduino & Pi

Fritzing - электроника доступна всем! Часть вторая.⁠⁠

Немного истории:

Программный пакет Fritzing был разработан в 2009 году в Потсдамском университете прикладных наук за счет субсидий, выделяемых государством на исследования научной программы под названием «From prototype to product» (от прототипа к продукту). В настоящее время создатели САПР предлагают талантливым программистам сотрудничать с ними по вопросам дальнейшего развития программы.

Будем надеяться что проект будет расти и развиваться.

Так же хочу добавить что Fritzing это простая в работе программа для рисования наглядных электрических схем, заточенная под Arduino-проекты.

Но хватит истории и описаний, попробую показать как с ней работать.

Первое: в программе есть примеры как с кодом, так и без. Лежат они здесь:

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Выбираем пример, я взял два светодиода и кнопку.

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Левый клик выбирает элемент и в окне инспектора появляются его свойства, а в нижней части повернуть и отразить. Там же сообщение от трассировщика.

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост
Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Правый клик - выпадающее меню, все как всегда))

Для тех кто не знает распиновку элемента или где анод и катод у светодиода:

Наводим указатель на пин делали и все написано

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост
Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Также можно посмотреть пины Ардуины и других микросхем из библиотеки.

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Во вкладке принципиальная схема есть полезная функция "Автотрассировка"

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Но иногда создает излишние перегибы:

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Придется руками переставлять точки перегиба и удалять лишнее, а можно и самому нарисовать, ориентируясь на пунктиры (так указаны провода с макетки)

Fritzing - электроника доступна всем! Часть вторая. Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост

Вот в общем то и все. Программа достаточно проста, для самостоятельного изучения.

Во вкладке Code - смотрим код из примера или записываем свой. Можно залить в Ардуину, но я предпочитаю Arduino IE.

Р.S. Про "Печатную плату" рассказывать не буду )) ИМХО тот кто соберется травить плату сам, вполне разберется с этой программой.

Показать полностью 10
Arduino Начинающий Электроника Программа Схема Длиннопост
30
381
Kerbiter
Kerbiter
8 лет назад
Arduino & Pi

Поднимаем Raspberry Pi - Введение⁠⁠

Сразу прошу простить за долгое отсутствие от меня чего-либо - БП компа приказал долго жить и ещё куча мелких проблем была. Зато пост написан с Raspberry Pi :)

Поднимаем Raspberry Pi - Введение Raspberry pi, Одноплатный компьютер, Начинающий, Руководство, Длиннопост

Итак, если ты, %username%, собрался обзавестись Raspberry Pi, то, скорее всего, тебе придётся заиметь ещё ворох всяких мелочей для комфортного её использования.


Те, кто уже затарился всем нужным, скажу сразу, можете не читать всё, что написано ниже. Пост для тех, кто ещё незнаком с малиной. Поэтому сначала - коротко о моделях Малины:


- RPi 3 - самая мощная и свежая (Zero в учёт не берём) модель, имеет на борту ВайФай, Блютуз 4.1 (в т. ч. и BLE), гиг оперативки, 4-ядерный процессор на гигагерц с лишним. Подойдёт для компьютерного зрения, использования в качестве компа, сервера, медиацентра. 4 USB, Ethernet, HDMI, A/V out, GPIO, CSI, DSI. Процессор - аж ARMv8!

- RPi 2 - почти та же трёшка, но без вафляя, блюпупа и более слабым процессором (ARMv7 в более ранних ревизиях). Как сервер пойдёт неплохо. Как десктоп - слабовато, но потянет. По деньгам отличается от трёшки слабо, потому ИМХО - лучше брать трёшку чем двушку.

- RPi 1 А+ - самая простая и недорогая из полноразмерных малинок, но при этом урезанная по длине, с ещё более слабым 1-ядерным процессором (ARMv6). Из интерфейсов 1 USB, HDMI, GPIO, CSI, DSI, A/V out. Нет Ethernet'а!

- RPi 1 B+ - та же А+, только неурезанная по длине, с разьёмами как у двушки и трёшки.

- RPi Zero - компьютер за $5 (но не у нас!) - самая маленькая малина с полгигом памяти, процом помощнее чем в единичке и минимумом интерфейсов (1 USB-OTG, miniHDMI, нераспаянная GPIO). Идеально для робототехники.


С малинами разобрались. Но саму малину просто так не запустишь - нужен обвес к ней. Для начала стоит определиться - будем использовать малину в режиме ПК или в режиме headless (без монитора и клавомыши, с доступом через сеть/консольный кабель)? Для headless понадобится, естественно, меньше обвеса. С него и начнём.

Поднимаем Raspberry Pi - Введение Raspberry pi, Одноплатный компьютер, Начинающий, Руководство, Длиннопост

Один из наборов начинающего от Adafruit


Список ингредиентов (пока самый минимум):

- Блок питания (читай - зарядка для USB - McroUSB). Для трёшки желательно минимум 2А, а лучше 2,5А. Двушка и единичка-Б - 2А, единичка-А - 1А. Ах да, и шнурочек для MicroUSB не забудьте!

- microSD карта минимум на 8 гигабайт (распакованный образ системы весит больше 4 гиг). Желательно брать класс повыше, иначе может тормозить.

- Патчкорд RJ-45 или WiFi (для трёшки) для подключения с другого компа/смартфона/планшета к малине, да и доступ в интернет малинке не помешает.


Из обязательного - всё. Но нам же интересно максимизировать приятность знакомства с Raspberry Pi, не так ли?

- Не помешает (а для трёшки так и вообще очень желательно) установить радиатор(ы) на чип(ы) на плате. Можно купить на Али, в интернете, магазинах-рынках или выпилить самому.

- Корпус! Значительно повышает опрятность и придаёт завершённый вид Малине. +10 к внешнему виду. В инете есть множество корпусов и инструкций по их изготовлению (даже из картона есть корпус).

- Чтобы использовать малину в режиме ПК, понадобится монитор/телевизор (+ дисплейный шнур) с поддержкой HDMI/DVI. Если поддерживается только VGA - придётся потратиться на активный адаптер, как сделал я. Ну и, конечно же, клавомышь с подключением по USB тоже нужны.

- Для всех моделей может пригодиться USB-свисток для Блютуза и ВайФая (кроме RPi3), а также USB-хаб.


Если ты, %username%, будешь использовать малинку не только в компьютерных целях, то тебе может пригодиться также официальная камера, подключающаяся в порт CSI, а также беспаечная макетная плата с набором джамперов/сенсоров/дисплейчиков/радиоэлементов/прочих радиолюбительских вещей. Не говоря уже о так называемых "шляпах" (HAT - Hardware On Top - "железо" сверху) - надстройках для малины, расширяющих её возможности и подключающихся через 40 ножек GPIO.


Продолжать список полезностей можно почти бесконечно. Но начинающему этого будет с головой достаточно.

Показать полностью 1
[моё] Raspberry pi Одноплатный компьютер Начинающий Руководство Длиннопост
130
Irinkavel
Irinkavel
8 лет назад
Сообщество поэтов

Что-то новенькое, просьба не судить строго))⁠⁠

Нынче слова потеряли цену,

Впредь очень сложно понять исток громких слов.


То ли душа,


То ли цель твоего обладания,


То ли желание взять над другим контроль.



Люди влюблённые очень слабы рассудком.


Слишком слепы, чтоб что-то понять.


Люди влюблённые бывают такими придурками,


И не замечают они как попадают в капкан.



Просто их душу потом не залечат медики,


И психиатр, и алкоголь с энергетиками..Уже не разгонят кровь


Просто они теперь судят по действиям.


Страшная шутка для них


Поверить снова в любовь.



Нынче слова потеряли цену.


Потеряли смысл свой-такой пустой звук,


Нынче люди ценятся за действия


Только поступки заставят поверить вновь.

Что-то новенькое, просьба не судить строго)) Стихи, Стихоплеты, Начинающий, Поэт, Отношения
Показать полностью 1
[моё] Стихи Стихоплеты Начинающий Поэт Отношения
7
1117
XZX64
8 лет назад
Arduino & Pi

Fritzing - электроника доступна для всем!⁠⁠

Всем привет!

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

Побродив по просторам интернета я случайно наткнулся на программу Fritzing. Причем "старички" постят скриншоты из нее и не признаются как они их сделали)))


Итак коротко о Fritzing

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

Приятно, что Fritzing является изначально переносимой (portable), т. е. для неё не существует какого-то инсталлятора - просто нужно скачать пакет архива, распаковать его в любую папку на диске, и система сразу готова к работе. Кроме того, система автоматически определяет язык операционной системы, и сама переключается на русифицированный интерфейс меню.

После первого запуска Fritzing сразу бросаются в глаза 5 главных рабочих закладок: Welcome, Макетная плата, Принципиальная схема, Печатная плата и Code. Изначально активна первая закладка Welcome, на ней просто представлены совет дня (Tip of the Day), ссылка на блог разработчиков (где представлены статьи, реклама новых стартер-китов и прочее), ссылка на фабрику печатных плат и на магазин, и справа браузер готовых компонентов и инспектор их свойств.

Fritzing - электроника доступна для всем! Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост, Текст
Показать полностью 1
Arduino Начинающий Электроника Программа Схема Длиннопост Текст
56
93
vivaos
vivaos
8 лет назад
Arduino & Pi

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino⁠⁠

Всем привет!  :)


Очередной выпуск из серии Arduino для начинающих, в котором мы впервые познакомимся со структурой программ на Arduino, а так же разберем пару примеров по работе со светодиодом и кнопкой и их подключением.


Предыдущие выпуски вы найдете здесь: 0,1,2,3,4

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


Ну а сейчас давайте запустим среду Arduino IDE и откроем пример BareMinimum (Файл - Примеры - Basic). Он представляет собой некоторый шаблон для написания программ.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Открыв его, мы с вами видим две записи, void setup и void loop – это так называемые функции, первая выполняется единоразово, при подаче питания на Arduino, а вторая выполняется циклически до тех пор, пока присутствует питание микроконтроллера. В функцию setup записываются различные настройки микроконтроллера для дальнейшей работы - например, это может быть конфигурация портов ввода/вывода, о которых мы говорили ранее, либо инициализация подключенного вами дисплея или датчика. Главное, что нужно запомнить, с этой функции начинается работа микроконтроллера и все, что в ней написано, выполняется только один раз.

Чего не скажешь о функции loop – эта функция выполняется сразу же после функции setup, и после этого микроконтроллер постоянно работает в ней.


Перед тем, как разобрать работу функций на конкретном примере, я хочу показать вам разницу в уровнях языка программирования, о которой говорил ранее.


Выше вы видели программный код на высокоуровневом языке программирования Wiring, который является языком платформы Arduino по умолчанию. Давайте посмотрим, как же подобная структура будет выглядеть на языках более низкого уровня.


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

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

А вот еще более низкоуровневый язык программирования Ассемблер, на нем запись нашего шаблона выглядела бы примерно так. Этот язык, можно сказать, позволяет общаться с микроконтроллером «на ты», и контролировать каждый шаг его работы.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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


А теперь настало время запустить пример из прошлого выпуска, на котором мы остановились – это пример мигания светодиодом под названием Blink.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Итак, прежде чем разбирать этот код, давайте подумаем, каким образом мы можем заставить наш микроконтроллер мигать светодиодом с нужной нам частотой?

Составим для себя некоторый, обобщенный алгоритм, по которому должна работать программа.


Что мы имеем? Микроконтроллер с портами ввода/вывода, к одному из которых подключен светодиод.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Нужно запомнить, что каждый вывод микроконтроллера может настраиваться как на вход, то есть прием сигнала, так и на выход, то есть подачу сигнала на этот вывод. В нашем случае необходимо зажигать светодиод, то есть подавать на него сигнал, поэтому, первым делом, мы должны указать микроконтроллеру, что один из его выводов должен работать как выход.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

В нашем случае, на плате Arduino уже есть подключенный светодиод к 13-му пину (pin – вывод микроконтроллера). Поэтому, настроив 13-й пин как выход, можно посылать команды на подачу высокого и низкого уровня на этот пин, тем самым зажигая и гася светодиод. Укажем подачу высокого уровня на 13-й пин в нашем алгоритме.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

После чего посылаем на 13-й пин сигнал низкого уровня, то есть гасим светодиод, и снова делаем задержку. Далее, нам нужно повторять это действие бесконечно, поэтому направим стрелку обратно к тому месту, где мы подавали высокий уровень. Ну что ж, с точки зрения алгоритма теперь все должно работать, давайте перенесем это на язык программного кода.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

В первом блоке мы указали настройку 13-го пина как выхода, посмотрим на наш код - строчка pinMode(LED_BUILTIN, OUTPUT); как раз и отвечает за эту настройку.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Функция pinMode специально реализована для того, что бы указывать в ней какой пин мы хотим настроить, и в какой режим. В данном случае указано, что мы настраиваем константу LED_BUILTIN как выход, то есть - OUTPUT. За константой LED_BUILTIN как раз и скрывается наша цифра 13, то есть номер пина, к которому подключен светодиод, поэтому, заменив эту запись на цифру 13, ничего не изменится, просто разработчики сделали это для упрощения понимания кода начинающими. Итак, повторим, функцией pinMode мы можем настроить нужный нам пин на вход – INPUT или выход – OUTPUT, указав при этом номер пина. Эта команда не зря записана в первую функцию Setup, поскольку настройку пинов микроконтроллера нужно осуществлять всего один раз, при старте программы.


Также я прошу обратить ваше внимание на синтаксис языка программирования, то есть правила написания команд и комментариев. Это схоже с правилами в русском языке, где, например, после каждого предложения необходимо ставить точку. У языка Wiring после каждой команды, не имеющей своих фигурных скобок, необходимо ставить точку с запятой - ; Иначе строчки, подобно предложениям, сольются в одну, и компилятор выдаст вам синтаксическую ошибку.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Так же, как вы могли заметить, кроме команд для микроконтроллера, существуют некоторые серые пометки для самого программиста – они называются комментариями.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Что бы добавить комментарий к какой-либо, одной строке, необходимо поставить двойной слеш и затем писать все необходимое. Такой комментарий может размещаться только на одной строке, и двойной слеш не будет действовать на следующие. Если же вам необходимо добавить комментарий в несколько строк, как это сделал автор примера blink в самом начале, то сперва ставится один слеш, за ним звездочка, дальше ваш комментарий любой длины, а затем, что бы обозначить конец комментария, ставятся звездочка и слеш.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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


Итак, идем дальше - функция loop, задача которой бесконечно повторять код, написанный внутри нее.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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

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


В алгоритме мы указали необходимость подачи на наш 13-й пин сигнала высокого уровня, посмотрим на код – так и есть, функция digitalWrite как раз и делает это. В ее скобках мы опять же указываем номер пина и уровень сигнала, низкий – LOW или высокий – HIGH, так же, аналогом низкого либо высокого уровня являются цифры 0 и 1 соответственно.


Далее нам необходимо осуществить задержку – для таких простых случаев можно прописать её обычной функцией Delay, где в скобках указывается количество миллисекунд. Запись delay(1000); означает задержку работы микроконтроллера на одну секунду. Стоит заметить, что использование в своих проектах функции delay крайне не желательно, поскольку эта функция полностью останавливает работу микроконтроллера, не позволяя выполнять каких-либо других задач. О том, как реализовать более правильный вариант задержки мы поговорим в следующих выпусках, ну а пока, на этапе первого знакомства с программой и простоты поставленной задачи, нам подойдет и такая, упрощенная реализация.


Надеюсь, что вы уже догадываетесь о назначении следующей команды нашей программы. Всё верно - на сей раз, эта команда гасит наш светодиод, подавая на 13-й пин сигнал низкого уровня. Кстати, об уровнях – высокий уровень сигнала в нашем случае равен 5 вольтам, а низкий, соответственно, нулю.


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


Ну что же, думаю, с этим примером всё понятно, и настало время немножко усложнить нашу задачу, а именно – добавить к нашему светодиоду небольшую кнопку, при нажатии на которую светодиод начнет мигать.


Давайте модернизируем наш алгоритм, и добавим в него необходимые блоки.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

По аналогии со светодиодом, один из пинов нашей Arduino нужно настроить на прием сигнала, и, считывая состояние этого пина, делать вывод о том, нажата кнопка или нет. Поэтому в функции настройки микроконтроллера мы прописываем команду pinMode(pin, INPUT); где вместо pin необходимо указать номер пина, к которому подключена кнопка - в моем случае это 3-й пин.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Итак, пины для светодиода и кнопки настроены, теперь необходимо указать условие, при котором наш светодиод должен мигать. А мигать он должен при появлении на 3-м пине положительного сигнала, подаваемого кнопкой. Поэтому, сперва мы считываем состояние этого пина, и затем, если оно равно единице или высокому уровню, выполняем тело условия, в котором прописано мигание нашим светодиодом.


В коде тем временем добавляется новая запись, представляющая собой условный оператор if, что в переводе означает «если».

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

После написания оператора if в скобках указывается условие, при истинности которого будет выполняться тело оператора, которое ограничивается уже знакомыми нам фигурными скобками. В нашем случае в условии мы должны проверить, равно ли считанное с 3-го пина значение единице или нет, поэтому в скобках мы указываем такую запись: digitalRead(3) == 1. Функция digitalRead, по последнему слову в наименовании, означает чтение – read, и при ее выполнении возвращает результат в виде единицы или нуля – в зависимости от состояния пина, указанного в скобках. Таким образом, мы получили проверку условия: «равен-ли 3-й пин единице?», и, если равен, выполнить указанные действия в фигурных скобках. Дословно это можно читать так: «если считанное значение с пина 3 равно одному, выполнить команды в скобках». Более подробно об условных операторах и циклах мы поговорим в следующем выпуске, ну а пока, чтобы не перегружать вас информацией, остановимся на таком простом варианте.


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


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


Чтобы не было таких неприятных ситуаций, нам необходимо, когда кнопка выключена, постоянно и уверенно подавать на вход микроконтроллера отрицательный потенциал, который не будет давать различным наводкам обмануть наш микроконтроллер. И, в качестве такой защиты при подключении кнопок, используют подтягивающие резисторы на 10-20кОм.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост
Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

В данном примере мы рассматриваем подтягивающий резистор к минусу питания, потому что ожидаем при считывании состояния входа сигнал высокого уровня. Но, так же существуют подтягивающие резисторы, наоборот, к плюсу питания, когда управляющим сигналом является минус питания.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Такие резисторы, кстати, встроены внутрь самого микроконтроллера Atmega и их легко можно включить в программе – достаточно дописать в функции настройки команду digitalWrite(pin, HIGH); которая подключит к нашему входу подтягивающий к плюсу питания внутренний резистор на 20кОм. В таком случае внешний резистор нам не понадобится, но и в коде необходимо будет заменить условие срабатывания с единицы на ноль.

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

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

Выпуск 5. Первая программа - работаем со светодиодом и кнопкой. Основы программирования Arduino Arduino, Начинающий, Программа, Микроконтроллеры, Видео, Длиннопост

Но, об этом мы поговорим в следующих выпусках, так как в нашем примере это не является критичным моментом.


Ну что же, теперь, осуществив подключение по схеме, мы готовы загрузить наш код в микроконтроллер и проверить правильность его работы. Нажимаем кнопку «Загрузить» и ждем, пока наш код пройдет компиляцию и загрузится в микроконтроллер.

Загрузив код вы увидите, что светодиод не мигает сразу же, как это было раньше, так как микроконтроллер ждет, когда мы нажмем на кнопку и подадим на 3-й пин сигнал высокого уровня. Если сделать это, то при нажатии на кнопку светодиод начинает мигать с частотой один раз в две секунды. Мы можем изменить значение частоты на любое другое, просто поменяв число, указанное в скобках функции delay();


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


Ну а на этом, пожалуй, всё, в конце я хотел бы пригласить всех желающих в наше скромное сообщество ВКонтакте, где периодически выходит рубрика «Nano за 60 минут» и мы разыгрываем в течение часа бесплатную Arduino Nano. Не забывайте делиться своим мнением о выходящих выпусках и пишите свои вопросы, всем большое спасибо за внимание и до встречи в новом выпуске!

Показать полностью 24
[моё] Arduino Начинающий Программа Микроконтроллеры Видео Длиннопост
22
mool
8 лет назад

Господа, выношу сей фототруд на линчевание.⁠⁠

Господа, выношу сей фототруд на линчевание. Фото, Критика, Начинающий, Длиннопост
Господа, выношу сей фототруд на линчевание. Фото, Критика, Начинающий, Длиннопост
Господа, выношу сей фототруд на линчевание. Фото, Критика, Начинающий, Длиннопост
Господа, выношу сей фототруд на линчевание. Фото, Критика, Начинающий, Длиннопост
Господа, выношу сей фототруд на линчевание. Фото, Критика, Начинающий, Длиннопост
Показать полностью 5
[моё] Фото Критика Начинающий Длиннопост
8
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии