ПЕСОЧНИЦА. ДЛЯ ВСЕХ НОВИЧКОВ.

bwn
Онлайн
Зарегистрирован: 25.08.2014

Итак, по совету друзей, решил купить автомобиль "Москвич"(с), точнее открыть эту тему. 
Прочитать начало первого поста, РЕКОМЕНДОВАНО ВСЕМ НЕОФИТАМ, далее, в зависимости от уровня вашей подготовки.
Начнем, благословясь.

bwn
Онлайн
Зарегистрирован: 25.08.2014

Эпиграф: "Примерно во времена Домициана в Римк жил такой греческий филосов-стоик Эпиктет. Ему приписывают замечательный совет весм, кто хочет чему-то научиться: «Если хочешь учиться, будь готов считаться дураком и тупицей»"

Чтобы не возникало изначального недопонимания, попытаюсь объяснить идеологию, принятую на форуме.
1. На форуме действует принцип "Со своим уставом в чужой монастырь не суйся". Не следует указывать старожилам, для чего нужен форум, и что на нем следует делать.
2. Форум - место общения по интересам. Эти интересы не имеют ничего общего с желанием помочь студентам делать курсовики. Если Вы хотите получить помощь, постарайтесь вести себя так, чтобы возникло желание Вам помочь.
3. Если вам хочется рассказать про знание 20-50-100 языков на уровне "выше университетского" и тому подобное, трижды подумайте, для чего, и будьте готовы это доказать.
4. Для того, чтобы повысить вероятность получения помощи, изучите несложные правила, которые будут изложены ниже, после последнего пункта.
5. Здесь помогают тем, кто пытается что-то сделать сам, имеет самописный скетч и задает вопросы по нему. Самописный скетч от скопипащенного отличается тем, что вы можете объяснить, что и где в нем происходит.
6. Если вас не устраивают требования пункта 5, есть чудесный раздел: "Ищу исполнителя".
7. Здесь не жалуют студентов с пустыми курсовиками, если хотите помощи, перечитайте еще раз пункт 5.
8. Здесь действует "дедовщина", бездоказательные пререкания будут пресекаться в пользу "старослужащего". Причина: уровень подготовки старожилов известен, ваш, еще нужно подтвердить.
9. Политика  пресекается.
10. Любителям FLProg и прочих садомазохистских шалостей. Вероятность получения вами помощи стремится к нулю. Лучше идите на профильный сайт.

Правила работы с форумом (соблюдение, значительно повышает вероятность оказания помощи):
Уважаемые новички, это ни придирки и не самодурство. Обсуждать не нумерованный и не форматированный код невозможно. Обсуждать эл.схему не видя и не зная, что вы там наделали, бессмысленно. Поэтому, код нужен именно ваш и с нумерацией строк, а не "обычный". Схема нужна, именно ваша, а не "стандартная".

Ваш, неверно вставленный код, выглядит примерно так.

ВСТАВКА ПРОГРАММНОГО КОДА.
Вставка изображений
Создание темы.
Как правильно задавать вопросы.

Для "нулевиков" в программировании и создании устройств на Ардуино:
Слоган маркетологов: "Каждая кухарка может программировать Ардуино", имеет право на жизнь, при условии, что кухарка изучила основы. Без них, не может даже академик.
Ниже, перечень литературы по Си и Ардуино, на разный уровень подготовки. Прочитайте хотя-бы одну (не справочники и шпаргалки).

Раздел "Программирование" данного форума (небольшой справочник по языку).
Предложенные пользователями форума:

Гололобов В.Н. О проекте Arduino для школьников (и не только) 2011
http://vgololobov.narod.ru/content/arduino/intro.html

Руководство по освоению Arduino 2012
http://robot-kit.ru/manual/Arduino_Sketch_Robot-kit.ru.pdf

Ещё выложил неплохую книгу Белецкого "Энциклопедия языка Си":
https://yadi.sk/d/7p0JU1dev2mFN

Керниган, Ритчи "Язык программирования СИ".

Здесь более подробный справочник по языку Arduino:
http://atmel.ucoz.ru/publ/spravochnik_po_jazyku/1-1-0-1

Онлайн-справочник предложенный ratman:  http://wikihandbk.com/wiki/Arduino? Кроме обзоров и примеров по языку, содержит описание и примеры многих функций и библиотек.

Шпаргалка по Ардуино 
https://sites.google.com/site/mechatronicsguy/arduinocheatsheet

Вспоминаем простейших:
(Описание утрированно и не является заменой учебнику физике. Ставилась задача, кратко напомнить о их существовании. Можно ознакомится в сети по ключевым наименованиям. Если кто-то из коллег захочет дать подробные разъяснения, добавлю сюда ссылку на пост.).
Резистор, он же сопротивление - сопротивляется прохождению эл.тока, высаживая излишек в тепло. Применяется при задании эл.режимов элементов и измерениях.
Фоторезистор - полупроводниковый прибор, изменяющий свое сопротивление под воздействием оптического излучения. Включается как одно из плеч резистивного делителя. За счет изменения сопротивления, получаем изменение напряжения на выходе делителя. Применение: В качестве сенсора измерителя освещенности. Бывают на видимый, ультрафиолетовый и инфракрасный спектры.
Терморезистор/Термистор - полупроводниковый прибор, изменяющий свое сопротивление под воздействием температуры. Бывают с положительными и отрицательными коэффициентами. Включается как одно из плеч резистивного делителя. Применение: В качестве сенсора измерителя температуры. Зависимость сопротивления от температуры, смотреть в даташите на конкретный прибор. Подробнее.
Конденсатор - накапливает эл.энергию. Представляет барьер для постоянного тока. Применение: Для фильтрации питания, ака маленькая батарейка. Как разделитель переменной составляющей от постоянной.
Индуктивность - накапливает эл.энергию, мало проходима для переменного тока. Применение: Для фильтрации питания. Как накопитель энергии в ИБП.
Диод - полупроводниковый прибор, пропускающий ток только одной полярности. Применяется в выпрямителях, развязывающих каскадах.
Светодиод - полупроводниковый прибор преобразующий часть эл.энергии в  оптический диапазон. Включение допускается только с ограничением проходящего тока резистором или спец.драйвером. Не рекомендуется параллельное соединение. 
Оптопара - полупроводниковый прибор включающий в себя светодиод и фототранзистор или фотосимистор. Применение: Гальваническое разделение управляющих и исполнительных сетей.
Стабилитрон - полупроводниковый прибор, включаемый в обратной полярности, пропускающий через себя напряжение превышающее определенный порог (напряжение стабилизации). Допускается включение, только с ограничением максимального тока. Применение: В стабилизаторах напряжения. Как защитный элемент на входах МК.
Тиристор - полупроводниковый прибор имеющий два (открытое-закрытое) состояния. Открывается подачей небольшого напряжения на управляющий электрод. Закрывается сам, после снятия напряжения с силовых электродов или его снижения ниже определенного порога. Проводит ток только в одном направлении.
Симистор - работает аналогично тиристору, но проводит ток в обоих направлениях. Наиболее частое применение: коммутация мощных нагрузок переменного тока, включение-выключение, диммирование. Не любят индуктивные нагрузки (моторы, трансформаторы.....), для управления ими требуют применения специальных схемотехнических решений. Могут управляться непосредственно от пина МК, данный способ не рекомендуется из-за отсутствия гальванической развязки с электросетью и опасностью для жизни. Правильный способ управления - через оптосимистор.
Оптосимистор - оптопара содержащая светодиод и симистор, открывающийся при зажигании светодиода. Применение: Управление тиристорами-симисторами и разделение МК от сетевого напряжения. Наиболее используемые MOC3xxx, в просторечии - "моська". Для нагрузок до 15Вт можно использовать без внешнего тиристора. Бывают простые и с zero-cross (отловом ноля). Последние применяются для включения нагрузок в момент перехода напряжения через "ноль" и снижением помех в электросеть. Для диммирования используются без zero-cross.
Биполярный транзистор - полупроводниковый прибор, который при подаче малого тока в базу позволяет пропустить между коллектором и эмиттером ток, превышающий поданный на коэффициент усиления. В нашем случае применяется в качестве управляющего ключа если нагрузка требует токов или напряжений превышающих возможности МК (имеет массу других применений, в данном случае не рассматриваемых). 
Полевой транзистор (МОСФЕТ) - полупроводниковый прибор, выполняющий функцию схожую с биполярным транзистором, но управляемый напряжением. Для управления мощными нагрузками потребуется специальный драйвер.
Определяющими для транзисторов являются: максимально допустимые напряжение, ток, рассеиваемая мощность. Подключение требует дополнительных элементов.
Операционный усилитель, ОУ - микросхема, которая в разных вариантах включения и комбинациях с другими элементами может быть: повторителем, усилителем, компаратором .....

Если указанные названия кажуться вам терминами из китайского букваря, у меня вертится на языке "Учебник физики", более сердобольный arduinec предложил: "Скворень.Р.А. Электроника шаг за шагом" и "Эйвинд Нидал Даль. Электроника для детей". На вторую книгу прямых ссылок не нашел, только торренты, ищите по названию.

Хоровиц.П, Хилл.У. Исскуство схемотехники. (В какой-то мере, Библия)

Небольшая шпаргалка, предложенная ЕвгениемП. (Закон Ома, включение транзисторов, ОУ).

https://drive.google.com/open?id=1AOZx5lqhsyQBdsf1zKBxdhdVesdqS0Ka еще шпаргалка от ЕвгенияП (по расчету делителя напряжения для резистивных датчиков).

"Весёлые картинки" по подключениям к Ардуино:
Ахтунг. При повторении относится критически. Попадаются ошибки.
Пример - стр.28. Диоды в обратной полярности.

"Arduino Basic Connections"
 

Теперь, практика.
Что вам понадобится:

1. Ардуино. 
    (Коллеги, если кто хочет сделать обзор по платам, будет здесь)
2. Макетные платы.
    
Макетные платы бывают беспаечные (удобны для быстрого опробования схемы, но чреваты глюками из-за механических контактов, категорически не подходят для силового питания.) Платы в виде полей монтажных отверстий под пайку (макет создается посредством, угадали, пайки. Часто остается в виде готового изделия). 
3. Детали.
   
 Дискретные элементы (резисторы, конденсаторы, индуктивности, диоды, транзисторы, микросхемы и т.д.). Необходимый перечень зависит от поставленных задач. Расписывать все варианты смысла нет, на форуме было много тем, поищите. 

Инструментальное обеспечение:
1. Паяльник, к нему олово и флюс.
    Для начала, пойдет дедушкин ЭПСН-25, сороковаттник уже великоват. Олово удобно в виде прутка 1-1,5мм с канифолью внутри. По флюсам, здесь немного обсуждали.
2. Тестер - мультиметр. 
     Используется для замера напряжений, токов и других величин в зависимости от исполнения. Для начала пойдет любой китайский, желательно чтобы была термопара (пригодится в последующем ИМХО).
3. Полезен транзистор тестер.
    Позволяет определять параметры и цоколевку очень многих деталей. Есть вариант собственного изготовления с этого сайта. Есть покупной. По второй ссылке покупался в виде платы с дисплеем и убирался в корпус. На Али есть и подороже, но уже в корпусе.
4. Логический пробник.
    Очень простенький "цифровой осциллограф", позволяет наблюдать логические уровни в динамике. У меня ИЛЗ-01 ДПТП, но такой вы вряд ли где теперь купите. В сети много схем самодельных.

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

5. Логический анализатор. 
    Продвинутый пробник. Умеет записывать сигналы на N-линиях (обычно от 8-ми), мерить интервалы, расшифровывать различные протоколы. Не умеет в динамике. (Коллеги, я с ним пока только знакомлюсь, кто может подробнее или правильнее, вэлком).
6. Осциллограф.
    Умеет показывать форму сигналов на экране в динамике. При ограниченном бюджете будет полезен даже DSO138. И здесь немного обсуждали. Возможно использование в данном качестве звуковой карты компутера, но об этом Влад грозился рассказать.
7. Генератор сигналов, частотомер.
    Умеет генерировать сигналы различной частоты и формы. Умеет замерять частоту сигнала. Мне вполне хватает разработки уважаемого Dimax-а. 
8. Программный симулятор электрических схем.
    Сам, за ненадобностью, не использую (это не значит, что и вы не должны), уважаемый wdrakula рекомендовал ссылку на статью: "По Спайсу: вот ССЫЛКА на статью Валентина Володина. Статья написана очень хорошо и я не возьмусь сделать лучше, можно дать ссылку. Там не убавить и не прибавить, разве что про установку в Винде новых версий, если надо. Ну и про то, что Линейных Аналоги купили и сайт теперь иначе называется. Под Линукс LTspice ставится под Вайн. Это не хак, а официальное заявление на сайте LT. Программа так написана, что не требует виндовой специфики, а работает в типовом окружении, которое предоставляется Вайном."
От себя отмечу, пользоваться аккуратно, если не понимаете процесса, нет гарантии, что результат в "железе" вас удовлетворит.

 

Программное обеспечение:
Фактически требуется только Ардуино IDE. Все версии можно скачать на официальном сайте. В IDE вы можете написать-отредактировать скетч, проверить на ошибки, скомпилировать и залить в плату Ардуино оборудованную USB-UART. Подробно про установку и настройки в статье уважаемого wdrakula (пока черновик).

bwn
Онлайн
Зарегистрирован: 25.08.2014

Теперь, самое интересное, ради чего все и затевалось: 
Изготовление устройства на Ардуино.
Собственно дальше, исключительно мое видение и личный опыт, которые могут не совпадать с академическими рекомендациями и никак не претендуют на истину. Единственное их достоинство, собранные девайсы работают без сбоев и как задумано. Радиотехнического или программистского образования не имею. Все из разрозненных источников и путешествий по граблям.
Также хочу отметить, радиолюбительство это хобби, не надейтесь сэкономить на своих поделках, серийное изделие всегда будет дешевле. Смысл в изготовлении имеется, если подобного устройства нет в природе или очень хочется. В одной дискуссии я приводил пример экономии - термодатчик на DIN рейку стоит ~1800 рублей, мне он обошелся примерно в 400. Но я слукавил, я нигде не учел трудозатраты на разработку и изготовление платы, программирование, изготовление корпуса, отладку...... Все это заняло отнюдь не два часа и даже не один день. Обычная ниша данных поделок - малая автоматика для домашнего удобства.
Приступим:

Создание устройства начинается с идеи. Вы должны рассказать себе, что вы хотите получить. Далее, задается вопрос - что мне для этого понадобится? На этом этапе уже можно взять листок бумаги и набросать схемку. Схемы рекомендую научиться рисовать по человечески, а не кошмарные картинки из макетной платы, ардуины и непонятных разноцветных проводов. Дальнейший процесс обычно идет параллельно - пишется программа и делается аппаратная часть, но мы пойдем последовательно.:
1. Определив перечень компонентов, предварительно раскладываем их по пинам МК (Ардуины). Если пинов не хватает, решаем каким путем пойдем, перейдем на более старшую модель или будем использовать шинные расширители, регистры и пр.
2. Приняв решение рисуем принципиальную схему. Рисовать можно на бумаге или в каком-нибудь Splan-е. Я рисую сразу в трассировщике, но для распечатки и медитации это неудобно. Пока не наберетесь опыта, лучше бумага.
3. Имея на руках схему решаем, как будет изготовлен девайс. Вариант из синей изоленты и воткнутых проводков отметаю сразу, как политически незрелый, и обсуждать его не желаю. Правильный вариант - сборка схемы на печатной плате. Печатная плата - лист диэлектрического материала, на котором медной фольгой нанесены проводники и площадки для элементов. В настоящее время изготавливается из фольгированного стеклотекстолита, с которого химическим или механическим способом удалена лишняя фольга и проделаны необходимые отверстия. Сборка осуществляется припайкой компонентов к контактным площадкам.
Для небольших схем из DIP элементов (имеют выводы для монтажа в отверстия) можно использовать покупные макетные платы, которые представляют собой поля отверстий с шагом 2,54мм (0,1 дюйма) и площадками из фольги. Детали запаиваются в отверстия, соединения производятся монтажным проводом согласно схеме. Этим способом пользуются многие, из его ограничений - есть проблемы с монтажом SMD элементов и воспроизводимостью. Для одиночного экземпляра на выводных элементов он вполне годен. Но это не наш путь, мы будем делать "взрослую" плату.
4. Для изготовления печатной платы ее надо сперва нарисовать, можно взять листок бумажки и нарисовать дорожки карандашом, а потом перенести рейсфредером на медь. Когда-то я так и делал, жуть. В век компьютеров это делается программой трассировщиком. Рассказывать про них не буду, обсуждались здесь, почитайте. Я использую DipTrace. Это Украинская разработка и для России была бесплатная версия на 4 слоя и 1000 точек. Как сейчас, не знаю.
5. Запускаем наш любимый трассировщик и рисуем в нем принципиальную схему. Т.е. из библиотек элементов выбираем нужные, переносим на рабочее поле и создаем соединения. Соединения делаем внимательно, вылавливать и исправлять ошибки на готовой плате очень сложно.
Изначально вставляем МК (буду рассказывать применительно к МК, но никто не запрещает ставить вместо него Нану или Про мини) и схему питания. Соединяем соответствующие выводы. Важно - не забываем фильтрующие конденсаторы по питанию. При их отсутствии, устройство будет радовать незапланированными рандомными эффектами.
Наполняем схему компонентами, сперва устанавливам те, которые могут использовать только определенные пины МК (I2C, SPI и т.д). (Функциональность пинов от Pyotr)Создаем соединения, не забывая про питание и обвязку устанавливаемых компонентов. Теперь остались только те, которым не принципиально к какому пину МК они будут подключены. Их я присоединяю к контактной площадке и оставляю до этапа разводки. Схема готова. Еще раз проверяем, сохраняем и отправляем в модуль трассировки.
6. На экране мы увидим натуральные изображения наших элементов, соединенные связями согласно принципиальной схеме. Предупреждаю сразу, процесс трассировки, долгий и нудный, занимающий львиную долю времени и сил в процессе изготовления ПП. У трассировщиков есть автоматический режим, но на него не надейтесь. Придется поломать голову, покрутить-подвигать элементы и испытать всю радость творчества. При отсутствии определенных технологий, платы придется делать односторонние, пока примите это как данность. 
В целом, там все понятно, начинаем устанавливать-крутить-перемещать и рисовать дорожки согласно установленных связей, стараясь делать их неразрывными и максимально короткими. Если неразрывно не получается, можно бросить перемычку поверху, либо использовать SMD резистор с нулевым сопротивлением и "перепрыгнуть" им мешающую дорожку. Сперва устанавливаем и соединяет компоненты и  обвязку, которые подключены к конкретным пинам. Потом можем на свободном пространстве расположить оставшиеся и присоединить их к ближайшим свободным пинам МК (для этого и оставляли их висящими на этапе рисования схемы), не забыв продублировать эти соединения на схеме.
Дать более конкретные рекомендации, как это делать, нельзя, только личный опыт. Чем чаще будете делать, тем лучше и быстрее будет получаться. В том же DipTrace очень хорошая справка с примерами работы. А представьте, какого это было на диаграмной ленте, карандашом, без подсветок связей, ууууууу.
7. Рисунок ПП создан, настало время перенести его на фольгированный материал. Есть несколько способов: ЛУТ, фоторезист и заказать китайцам. В китайцах есть смысл, если вы решили затеять промышленное производство, качество там тоже будет фабричное. Фоторезист также обеспечивает высокое качество, позволяет делать много одинаковых плат, в т.ч. двусторонних, но требует дополнительного оборудования и реактивов. Для единичных девайсов обычно применяют ЛУТ (Лазерно Утюжная Технология). Технология заключается в печати рисунка лазерным принтером на бумажный носитель и последующий перенос на фольгированный стеклотекстолит термическим или химическим способом. (Изначально для переноса использовали утюг, отсюда Утюжная). Нюансов много, дам ссылки на темы: перваявтораятретья. У каждого есть свой излюбленный способ и сказать, как правильно, невозможно, читайте, пробуйте. У меня принтер бразер, тонер тугоплавкий, переношу спиртоацетоновым способом. 
8. Травление - химический процесс удаления незащищенной меди для создания проводников ПП. Чаще всего осуществляется при помощи хлорного железа, перекиси водорода с лимонной кислотой или персульфата аммония, есть и более экзотические способы. Хлорное железо травит хорошо, но стало дорого и не дай бог ему попасть на что-то хорошее в кухне, жена убьет.
Я травлю перекисью, достаточно чисто, ингредиенты на кухне, в Пятерочке и аптеке. На 100мл 3% перекиси водорода берем 30гр лимонной кислоты и 5гр. поваренной соли, все размешиваем, помещаем в раствор подготовленную плату и регулярно покачиваем, чтобы убрать продукты реакции. Можно подвешивать на кусочке пенопласта фольгой вниз, некоторые приделывают еще вибромоторчик от телефона. Регулярно смотрим на поверхность, когда вся незащищенная фольга исчезла, плату промываем под струей воды и высушиваем. Указанного количества хватает примерно 1дм.кв. Раствор длительно не храниться.
Персульфатом аммония не пробовал, ничего сказать не могу.
9. Не снимая слоя тонера отправляем плату на сверловку. Т.к. контактные площадки делались с отверстием, это углубление используется как направляющая для сверла. Станочек для сверления я пока не родил, работаю дремелем с гибким валом. Сперва проходим все отверстия малым сверлом, у меня 0,6мм, потом по этим отверстиям уже требуемыми диаметрами. Т.к. сверла нынче дермовые и моментально тупятся, почти всегда остается равальцованная медь в виде бугорка. Берем мелкую шлифовальную губку и драим нашу поверхность, бугорочки стачиваются, тонер почти весь снимается. Протерли растворителем и переходим к следующей операции.
10. Лужение - покрытие медных проводников слоем олова, с целью предотвращения окисления и легкой пайки. Может производится разными способами: химическим, покрытием сплавом Розе, я прохожу паяльником. Для этого покрываем ПП слоем флюса (спиртовой канифоли или ЛТИ-120), это предохранит плату от окисления, если не проведете лужение сразу. Разогретым паяльником с припоем проходим по всем дорожкам. Бугорки олова на падах для SMD компонентов снимаем медной оплеткой. Промываем залуженную плату в смеси спирта с бензином "Калоша" и наслаждаемся блестящим результатом. После этого рекомендую произвести входной контроль, поставить тестер в режим "пищалки" и пройти все проводники на предмет обрывов и замыканий. Не ленитесь, очень помогает. Все, печатная плата готова.
11. Начинаем монтаж элементов на ПП. Правило простое, сначала припаиваем наиболее низкие элементы, потом все более высокие. Крайне желательно проводить поблочный контроль работоспособности (не очень согласуется с высотой элементов, но увы), особенно цепей питания, чтобы потом не было мучительно больно. Ну или предусмотрите возможность их разрыва при первом включении.
12. Все детали смонтировали, плату тщательно промыли, все контрольные точки проверили по напряжениям, можем залить тестовый скетчик, чтобы попищал, поморгал, подтвердил свою работоспособность. Все, аппаратная часть готова. На изготовлении корпуса останавливаться не буду, все зависит от вашей фантазии. Уфффф.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А вот эта ссылка точно не нужна? http://lurkmore.to/_/110033#mws_4XOA3q+ Там типа правда-матка :)

Logik
Offline
Зарегистрирован: 05.08.2014

To Logik, цитирование убрал, Вашу редакцию оставил:

Да, необходимо, предлагаю редакцию.

1. Описание задачи - чего Вы хотите добиться. Простым человеческим языком, без попыток описания решения, например так - "светодиод светится 5 сек после отпускания кнопки".

2. Предлагаемый алгоритм решения. В любой удобной форме: словесное описание,  блоксхема, т.д. Например так "при каждом прохождении цикла определяется состояние пина N. Если N равен нулю, а  переменная R равна единицей. То кнопка нажата. Значение N сохраним в переменной R для последующих проверок".

3. Написанный Вами скетч (в крайнем случае - скетч, который Вы пытались переделать под свою задачу с обязательной ссылкой на источник). При использовании сторонних библиотек (т.е. отсутствующих сразу после инсталяции ИДЕ) - ссылки на них обязательны. Указание версии IDE обязательно. Как исключительный случай, при полном отсутствии скетча, может быть засчитан очень качественный п.2

4. Схему подключения и указание наименования всего что на ней присутствует. Указание источника питания и его характеристик обязательно. Приветствуются фото, но схему не заменяют.

5. Описание того, как работает Ваш скетч. Желательно привести протокол работы (т.е. выдачу отладочной информации в монирот порта). Быть готовым получить дополнительную отладочную информацию по рекомендациям форумчан.  Если работа связана с наблюдаемыми действиями - выводом на экран, перемещением, свечением - ссылка на видео обычно опишет лучше чем Ваши слова.

6. Описание того, чем реальное поведение скетча отличается от желаемого.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

 ************************

To wdrakula. Погорячился, принял, исправил. Отсюда тоже убрал, надеюсь не возражаешь?

----------------

Хочу попросить  сделать еще пару-тройку статей, если автор не найдется - сделаю сам, хотя и не люблю это.

1. статью на тему схемного моделирования. Ссылка на ЛтСпайс, на библиотеки элементов к нему, принципы работы или ссылки на статью типа  ВалВола, который уже давно написал неплохое введение для неофитов. Заодно эта же статься будет ответом на вопрос: "Где рисовать схемы?". Протеус - альтернатива, но платная. Возможно стаья по нему тоже нужна, я им не пользуюсь , тут - пас.

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

3. статья - "азы электроники", Закон Ома, токи и напряжения, резистор, конденсатор, диод, биполярный транзистор, мосфет, ОУ. Буквально по паре слов, самые основы. А то у кого-то из НЕновичков видел на днях диод перед базой транзистора, который что-то-там должен "закорачивать на землю", при том, что на нем падение как раз больше 0.7В, и транзистор будет открыт всегда!!!

bwn
Онлайн
Зарегистрирован: 25.08.2014

wdrakula пишет:

 ************************

To wdrakula. Погорячился, принял, исправил. Отсюда тоже убрал, надеюсь не возражаешь?

----------------

Хочу попросить  сделать еще пару-тройку статей, если автор не найдется - сделаю сам, хотя и не люблю это.

1. статью на тему схемного моделирования. Ссылка на ЛтСпайс, на библиотеки элементов к нему, принципы работы или ссылки на статью типа  ВалВола, который уже давно написал неплохое введение для неофитов. Заодно эта же статься будет ответом на вопрос: "Где рисовать схемы?". Протеус - альтернатива, но платная. Возможно стаья по нему тоже нужна, я им не пользуюсь , тут - пас.

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

3. статья - "азы электроники", Закон Ома, токи и напряжения, резистор, конденсатор, диод, биполярный транзистор, мосфет, ОУ. Буквально по паре слов, самые основы. А то у кого-то из НЕновичков видел на днях диод перед базой транзистора, который что-то-там должен "закорачивать на землю", при том, что на нем падение как раз больше 0.7В, и транзистор будет открыт всегда!!!

Влад, по п.п.1,2 вообще ничего написать не смогу. Макетирую паяльником с проводами. Осциллограф из звуковухи никогда не делал. Тупо кого-то цитировать, не попробовав сам, не хочу.
По п.3, закон Ома думаю сумею рассказать популярно, обзор по пассивным элементам тоже. Активные, использую только в ключевом режиме, здесь получится однобоко, да и с теми же МОСФЕТ-ОУ опыт весьма мал.
Есть желание, включайся, тему я и планировал как коллективного творчества. Наверху еще два поста оставлено в резерве, раскидаю по принадлежности.

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

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

ХОЧЕШЬ ВСТАВИТЬ КОД? ДЕЛАЙ ЭТО ТАК:

 

Картинка для амперки, но суть понятна ;)

bwn
Онлайн
Зарегистрирован: 25.08.2014

ВН пишет:

так и почему тема называется "песочница"?

вот и вы пишете, - "правила"  

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

Как Вы могли заметить, правил там двенадцать строчек, дальше пошла полезная информация, которую новички почему-то найти не могут, дальше список литературы (для детского сада). Будут раздельчики по электронике, инструментальным средствам, программированию (в основном, ссылки на темы форума). Появляться они будут, как и написал ранее, по мере наступления приступов графомании.
По поводу отдельного раздела, приветствую, но не имею такой возможности, посты с пожеланиями не удаляю. Посчитает Администрация нужным, создаст.
Название темы, обсуждаемо, но давайте ее сперва наполним, а потом решим. ИМХО.

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

DetSimen
DetSimen аватар
Онлайн
Зарегистрирован: 25.01.2017

Новичкам:  очень хорошая книга, 2016 года, без её прочтения на этот форум можно даже не лезть

не знаю, можно ли давать ссылку на торрент, но можно самим найти на рутрекере. 

Книга поднимает скилл с самых основ,  новичкам настоятельно рекомендую. Очень способствует. 

При внимательном прочтении, 70% здешних вопросов отпадают сами собой.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn пишет:

Походу, здря я эту херню затеял.((((

Тема-то нормальная, но если для новеньких, то по мне – так сам по себе подход неверен - слишком много демократии.

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

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

Так работа будет сделана, а с «демократией» - потонет в обсуждениях и мелких срачах из-за формулировок.

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

bwn
Онлайн
Зарегистрирован: 25.08.2014

Можно и так.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Евгений, так то, что есть сейчас, IMHO очень мало отличается от Вашего предложения: bwn создал тему, написал свой вариант, теперь выслушивает предложения (чего в Вашем варианте нет, но Ваш вариант этого и не исключает), а потом он же решит, чему в этой "памятке" быть, а чему - нет. Решит - на свое усмотрение. И я думаю, вряд ли кто против этого будет возражать.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, я точно не буду возражать.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Я думал не про памятку, а, все-таки, про раздел с прикрепленными статьями. Где, кроме памятки, есть и статьи по основа электроники, основам програмирования, про симуляторы, про компиляторы ...про королей и про капусту! ;)))

Статься про ключи к GCC и где их менять, про добавление своей платы в ИДЕ, про прошивку контроллеров в ОДНОМ месте и про "5 проволок", и про USB-ASP и про Arduino-as-ISP и про высоковольтку, все есть на форуме, нужно собрать в кучу.

Отдельно про установку и настройку для ЕСП и для СТМ. И так далее.

Короче мы знаем все типичные вопросы новичков - так давайте ответим на все ЗАРАНЕЕ!!! Я так видел всю затею, а не 12 правил, а-ла "Юности честное зерцало".

bwn
Онлайн
Зарегистрирован: 25.08.2014

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

arduinec
Offline
Зарегистрирован: 01.09.2015

DetSimen пишет:

Новичкам:  очень хорошая книга, 2016 года, без её прочтения на этот форум можно даже не лезть

Монк ещё такой есть (тоже хорошая книга для новичков):

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn,

оно, может и не стоит - это литература для специалистов, её ещё читать надо уметь, но, может, и надо, чтобы нас в неполноте не обвиняли - полнее некуда :))))

Стандарт С++ 2017

Стандарт С 2018

alex_r61
alex_r61 аватар
Offline
Зарегистрирован: 20.06.2012

 Ещё можно дать ссылку на сайт http://www.gaw.ru/ , там много полезной информации, есть примеры применения AVR. Некоторые переведены на русский. И ещё часто возникают вопросы по подбору транисторов для управления нагрузкой от МК. Навигатор http://irf.ru/html/mosfet.html

AlexanderNO
Offline
Зарегистрирован: 08.11.2018

Не знаю было или нет... : http://vk.com/physics_math/arduino

Alexander
Offline
Зарегистрирован: 25.04.2010

Создал раздел "Песочница" и перенес туда эту тему.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Нужен срочный ответ на технический вопрос.

Готовлю первые статьи. Уперся в важную тему: где размещать файлы?

1.Можно, как сейчас - каждый размещает где хочет, на любой анонимке, и расшаривает.

2.Могу я, например, под одним из своих доменов сделать юзера, взять гугль/яндекс/хрен-те-чо облако и все кидать туда.

3. Можно сделать пространство тут, но нужна воля Св. Админа.

-----

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

=========

Прошу решения! Желательно общее решение для "песочницы".

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

выкладываю черновик первой статьи, правим, добавляем, потом выложу ВТОРЫМ ;)) (чтобы редактировать) сообщением новой темы.

=======================================================================

Итак, приступим.
Первая статься - естественно - установка и настройка IDE.
Статья на форуме, по формату отличается от простого поста и требует большей "академичности" изложения. Я буду стараться сделать язык статьи проще и ближе к традициям Интернет. Но не стану пользоваться слэнгом, олбанским и обсценной лексикой, до которых я сильно охоч, как известно.

Немного занудства, необходимого новичкам.
IDE это аббревиатура от Integrated Development Environment - как устоялось в русском языке - Интегрированная Среда Разработки, женский род, так как "среда". Интегрированная, значит совмещающая различные функции.
Какие функции есть у нашей IDE?

1.Редактор. Самый простой, автозаполнения и автодополнения нет, синтаксис не подсвечивается. Подсвечиваются ключевые слова и использованные имена, подсвечиваются и авторасставляются фигурные скобки. Авторасстановка скобок позволяет использовать как стиль КиР, так и стиль GNU и Олмана, с некоторыми купюрами и ручными действиями. Короче пробуйте! Совсем сама, без вмешательства человека, IDE реализует стиль КиР с модификацией 2 пробела, а не 8. Для новичков - КиР сокращение от "Керниган и Ричи" - авторы самой важной книги для любого программиста - "Язык программирования  С". С нее и нужно начинать знакомство, в том числе, и с Ардуино.

КиР
if (<cond>) {
··<body>
}

GNU
if (<cond>)
··{
····<body>
··}

2. Управление проектами.
В нашей IDE - совершенно спартанское. Поддерживается один каталог программ, в Ардуино-жаргоне называемых скетч, от аглицкого sketch - шарж, карикатура, набросок, небрежный рисунок. Сами авторы идеи Ардуино, таким наименованием пытались "снизить планку" недоступности программирования "простой домохозяйке" (спойлер: все равно не получилось).
для каждого проекта создается папка в каталоге скетчей. В папке, кроме скетча(ей) (с расширением .ino) могут находиться файлы с расширениями .c, .cpp и .h. При необходимости в эту же папку будет положен .hex файл с загрузочным образом.

3. управление библиотеками.
Для тех новичков, у которых есть (любого размера) предыдущий опыт работы с С/С++, библиотека в терминах Ардуино это вообще совсем не тоже самое, что в С! Тут под библиотекой понимают особым образом структурированный набор кода, подключение которого, как и в обычном С-проекте, осуществляется с помощью:
#include <mylib.h>
Сама эта строчка может быть добавлена автоматически! ;)) Каждая библиотека, определяемая именем, используемом в инклюде, представлена папкой с файлами заголовков, кода, возможно - примерами. IDE знает где живут эти папки, умеет из одинаковых по названию библиотек выбрать ту, которая больше подходит к используемой плате. Умеет добавлять новые библиотеки из архивов, следить за обновлениями. Короче - нормально так умеет! ;)))) Позже мы научимся ее (IDE) "дрессировать".

4. Управление целевыми платформами.
Очень заумно назвал? Непонятно? Это просто управление способом компиляции файлов под разные Ардуины и не-Ардуины, на разных контроллерах, с разными частотами, памятью и вычислительными ядрами. Причем со временем мы научимся готовить IDE для любого нового устройства, даже собранного самостоятельно.
Ведь програмка мигания светодиодом должна  работать везде, где есть хоть какой-то таймер и светодиод, так? И на Уно и на Меге и на Дуе и даже на СТМ32, так?

5. Управление программаторами.
Загрузка в целевую плату. Для каждой платы существует 100500 способов "прошивки", наша IDE устроена таким образом, что поддерживает ЛЮБЫЕ. Некоторые - "из коробки", некоторые - после плясок с бубном. Некоторые - после серьёзной работы квалифицированного системщика.
Основной способ загрузки - самопрограммирование контроллера через т.н. бутлоадер. Это "фишка" Ардуино. С точки зрения пользователя - просто втыкаем USB-шнурок и "заливаем" пример в новую плату. Про ньюансы и "пачиму-ниработаит?" - будет отдельная статья, как и про многое другое. Тут мы только знакомимся с IDE.

============================
Итак, первые действия - закачка и установка IDE. Я рассмотрю две среды: Windows и Linux. Мне трудно представить себе классического хипстера в бороде и кедах, на гироскутере, с вейпом в одной руке, с МакАир в другой, который пишет скетчи для Ардуино! ;)))) Но, говорят, что такие есть. Буду рад, если один из них сделает нужные дополнения по установке на Мак.

Весь процесс установки точно и детально, доступно даже для альтернативно одаренных, описан на сайте http://arduino.cc. Но есть беда всех новичков - не читают! Может статья поможет.

!!!!!!!!!!!!!!!!!!!Важное замечание про английский язык!!!!!!!!!!!!!!!!!!
Практически вся нужная и важная документация в области электроники и программирования написана или переведена на английский. Ее проще найти в Гугле при поиске на английском, некоторой вообще нет на русском. На любых форумах, кроме локальных, язык общения - английский.
Я понимаю, что сейчас в РФ модна тема патриотизма и не стану тащить грязную политоту в технический форум, но нужно учить английский! НУЖНО УЧИТЬ АНГЛИЙСКИЙ!!! Вот так, вероятно, понятнее. Эта статья НЕ ПЕРЕВОД для лентяев! Я постоянно буду ссылаться на документацию на оригинальном сайте Ардуино - arduino.cc
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Еще про меня, как автора, я - линуксоид, Винда у меня на виртуалке (Оракл ВМ) исключительно для целей настоящей статьи. Все эксперименты на ней ставились. Дистрибутив - 8.1, 32 бита. Есть виртуалки (Оракл ВМ и ВМваре)с 10-64 и со старой XP. Если будут вопросы - я проверю на любом из перечисленных дистрибутивов.

1. Windows.
Установка самая простая. Скачиваем и ставим. Переносимую версию - не проверял. Драйвера для CH340-341 ставим с github, вот ссылка: https://github.com/himalayanelixir/Arduino_USB_Drivers. Этот я проверял на 8.1.
Бывают еще различные USB-UART конвертеры, внимательно читаем наименование на своей плате и ставим драйвера:
=============================
тут прошу коллег дать ссылки на проверенные драйвера под Винду на cp2103 и другие варианты.FTDI правильный, тоже прошу тут указать
=============================
Особенность плат Леонардо/Микро (и не только они, а все на 32U4) и виртуалки: эти платы порождают два разных USB устройства (разные PID) во время работы бутлоадера и работы программы, поэтому транслировать в виртуалку нужно два номера... ну или весь интерфейс, если виртуалка позволяет такое.
=============================
2. Линукс.
Всё тоже: скачиваем и ставим. Под свою систему. Любители экзотики обычно в советах не нуждаются. Самый используемый в мире дистрибутив - Минт, потом Убунту. Между ними разницы почти нет - они основаны на Дебиане. Я, если интересно, чуть ли не со дня основания, использую Минт, я скушен и банален. ;))))
!!!ОЧЕНЬ ВАЖНО!!! Хоть это и написано и на arduino.cc и еще в 100500 местах в сети: в Линуксе добавляем себя в группу dialout!!!
В этой группе создаются USB-UART последовательные порты  (/dev/ttyUSB0 или /dev/ttyACM0) для связи с платой.
Это один из самых популярных вопросов новичка! НЕ ЧИТАЮТ ДОКУМЕНТАЦИЮ!

-------------------------------------------------------------
в следующем выпуске: добавляем ESP8266, Дигиспарк и СТМ32, от коллег жду кусочков про Дуе и подобные (у меня нет).
скетч, сожнее блинка, использование сериал монитора, сериал плоттера, иных сериал-клиентов на ПК.
............................................................

Alexander
Offline
Зарегистрирован: 25.04.2010

wdrakula пишет:

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


Сделал экспериментальный костыль. Пока добавил только wdrakula и bwn. Можно закачать и прикрепить zip и pdf
Есть ограничение по размеру файла 10мб
Вопрос с авторским контентом открытый, поэтому надеюсь на благоразумность.

Для вставки, нужно кликнуть иконку "вставить ссылку" -> "Выбор на сервере" и далее закачиваем как и картинку.
/sites/default/files/u10003/zipfile_2.zip

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Alexander пишет:
Пока добавил только wdrakula и bwn.
Меня добавьте, пожалуйста.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Коллеги! Для публикации уже в раздел, жду проверенные драйвера под FTDI, CL и что еще встречается в нашем Ардуино-зоопарке, в качестве USB-UART.

Если есть особенности у АРМ от Атмела (Дуе и пр.) - прошу дополнить. Я точно знаю, что Андриано пользуется Дуе. Скажи пару слов, будь ласка! Нужно, чтобы статья не только мой опыт аккумулировала, а общий опыт старожил форума.

--------------

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Влад, ну, честно говоря, я даже не знаю, что дополнить.

У части плат есть проблема, описанная (включая 2 способа решения) здесь: https://3deshnik.ru/blogs/anry777/problemy-plat-arduino-due-varianty-reshenij-na-chto-obratit-vnimanie-pri-pokupke

У меня как раз такие контроллеры, но до устранения проблемы руки так и не дошли: в процессе отладки эта проблема не проявляется, а, если уж приперло, решается банальным "передергиванием" питания (это если кнопка reset недоступна: у меня, например, она закрыта макеткой-шилдом).

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

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

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015
Элементы булевой алгебры в теории и на практике
 
1. Введение в булеву алгебру.
 
1.1. Функции одной переменной.
 
Любая программа будет работать так, как хотелось бы автору, только при условии, что ее логика будет выстроена верно. Однако, что такое логика, начинающие программисты представляют себе, как правило, на кустарно-бытовом уровне, тогда как существует целая наука, называемая алгеброй логики или булевой алгеброй по имени своего создателя Дж. Буля.
Если в обычной алгебре выражение может принимать одно из бесконечного множества числовых значений, в булевой алгебре значений только два: истина (true) и ложь (false). Первую принято обозначать числом "1", а вторую - "0". Соответственно, логическая функция f = f(x) на входе принимает аргумент "0" или "1", а на выходе тоже может быть только одно из этих двух значений. При конечном наборе значений как на входе, так и на выходе, самих различных логических функций от одного аргумента, очевидно, тоже конечное количество:
 ноль      единица   тождество   отрицание
  x|f        x|f        x|f       x|f
  -+-        -+-        -+-       -+-
  0|0        0|1        0|0       0|1
  1|0        1|1        1|1       1|0

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

Рассмотрим сами функции:
- первые две представляют собой константы - их значение не зависит от значения аргумента,
- третья - тождественное преобразование: f(x) = x. 
- четвертая - еднственная "интересная" функция, называемая отрицанием f(x) = !x, т.е. берется противоположное значение: если аргумент - "истина", то функция - "ложь" и наоборот. В булевой алгебре допускаются различные варианты обозначения отрицания, но мы будем пользоваться тем, что применяется в языке программирования Си.
 
Еще раз:
"константа 0":                   f(x) = 0
"константа 1":                   f(x) = 1
"тождественное преобразование":  f(x) = x
"отрицание (инверсия)":          f(x) = !x
Собственно - все. Изучение логических функций от одной переменной закончено.
 
1.2. Функции двух переменных.
 
Всго таких функций 16, но мы приведем только некоторые из них:
  ноль   конъюнкция (И)   дизъюнкция (ИЛИ)  исключающее ИЛИ   штрих Шеффера
 x y|f        x y|f           x y|f           x y|f           x y|f
 0 0|0        0 0|0           0 0|0           0 0|0           0 0|1
 0 1|0        0 1|0           0 1|1           0 1|1           0 1|1
 1 0|0        1 0|0           1 0|1           1 0|1           1 0|1
 1 1|0        1 1|1           1 1|1           1 1|0           1 1|0
Первая - уже известная нам константа. Очевидно, может быть от какого угодно количества переменных - все равно ни от одной из них не зависит.
конъюнкция - логическое умножение. Совпадает с арифметическим умножением. Истинна только тогда, когда истинны оба аргумента, "и то, и другое", поэтому называется еще "логическое И" или просто "И".
дизъюнкция - логическое сложение. "Логически" совпадает с арифметическим с учетом того, что максимальное значение - "1" и больше быть не может. "или то, или другое, или оба вместе", поэтому "логическое ИЛИ".
исключающее ИЛИ - "не равно": принимает значение "истина", если аргументы различны.
 
Прежде, чем продолжить, сделаем ряд важных замечаний.
Собственно, сам Дж.Буль рассматривал только три логические функции: конъюнкцию, дизъюнкцию и отрицание. Связано это с тем, что из всего мноржества функций можно выделить подмножество такое, что, используя только функции этого подмножества, можно получить любые другие. При этом под "другие" подразумеваются все функции с любым количеством аргументов. Такое подмножество называется полной системой функций. Так вот: конъюнкция, дизъюнкция и отрицание - полная система функций. Например, коньюнкция от четырех аргументов: f(x,y,u,w) выражается через цепрочку коньюнкций от двух аргументов: f(x,y,u,w) = f(f(f(x,y),u),w) или на Си: f = x && y && u && w; ну а исключающее ИЛИ можно записать так: f = (x || y) && !(x && y);
 
штрих Шеффера - функция интересна тем, что она одна является полной системой функций (есть еще аналогичная по свойствам функция - стрелка Пирса). В частности, если у нас есть только микросхемы "элемент Шеффера", мы, комбинируя их, можем составить любую логическую функцию от любого числа переменных.
 
Надеюсь, уже понятно, почему выше приведены не все функции от двух переменных: часть из них являются либо константами (2 штуки), либо на самом деле функециями от одной переменной (4 штуки), а остальные могут быть выражены через те, которые приведены выше.
 
Одна и та же логическая функция может быть записана различными логическими выражениями (арифметическая аналогия: 2 = 1+1 = 3-1 = 5-3 = ...). Чаще всего для составления логических выражений используется традиционная триада Буля - она проще всего составляется, опираясь на "бытовую" логику. Обычно в этом случае желательно уметь максимально упростить выражение. Бывают и другие случаи, например, при схемотехнической реализации ограничиться только элементами Шеффера. Булева алгебра - семестровый курс, и основное, чему участ студентов, - именно осуществлять нужные преобразования логических выражений.
 
Можно пойти дальше: именно булева алгебра является основой обычной "числовой" алгебры (а не наоборот): например, обычная одноразрядная операция сложения состоит из операции "исключающее ИЛИ" для текущего разряда и операции "И" для переноса в старший разряд. Ну а многоразрядные (8-, 16-, 32-, 64-разрядные) операции набираются из одноразрядных. То есть любой цифровой арифметический блок можно собрать на логических микросхемах.
 
2. Использование булевой алгебры в программировании
 
2.1. Логические переменные и выражения
 
Минимальной адресуемой единицей памяти является байт. Соответственно, и переменная может быть не меньше байта. А байт обычно может принимать не 2, а 256 различных значений. Кроме того, в ряде случаев целесообразно делать все переменные одной длины равной длине машинного слова, т.е. логическая переменная может быть, например, 4-байтовая. 
В программировании (по крайней мере в Си и производных языках) принято, что нулевое значение соответствует false, а все остальные - true. При этом Си по сути не различает переменные целого и логического типов. Поэтому там, где следует использовать логические выражения, мы можем использовать целочисленные
if(myFunc()) { // int myFunc() возвращает код ошибки или 0, если ошибки не было
 // здесь обрабатываем ошибку
}
 // а здесь продолжение работы
 
2.2. Битовые операции
 
Вообще, для хранения логической величины достаточно одного бита. Это наводит на мысль, что можно хранить в одном 
байте несколько логических величин и оперировать с ними при помощи таких же логических операций.
Таких, но не совсем.
Например, обычное логическое отрицание переводит число 0 в число 1. А если мы будем преобразовывать побитно, то в 1 должен быть переведен каждый бит и таким образом 0 превратится в 255.
Кстати, любое целое число можно перевести в логическое значение (т.е. 0 или 1) двойным отрицанием: !(!n).
В Паскале и других языках с жесткой типизацией всегда можно понять, какой тип операции (логический или битовый) нам нужен, исходя из типа аргументов, но Си - язык со слабой типизацией, где целые и логические выражения не различаются, поэтому разные типы булевых операций записываются по-разному:
логическая   битовая
  &&            &      конъюнкция (И)
  ||            |      дизъюнкция (ИЛИ)
  !             ~      отрицание (инверсия)
  !=            ^      исключающее ИЛИ

 

3. Применение в схемотехнике
 
"0" и "1" могут представляться по-разному. Наиболее употребительными являются ТТЛ-уровни: false = GND, true = +5V (+3.3V). Промежуточные значени - округляются (не всегда симметрично).
 
3.1. На дискретных элементах
 
3.1.1. Отрицание (инверсия)
 
Обычно реализуется на одном транзисторе: рис. а).
 
3.1.2. Конъюнкция (И)
 
Реализуется на диодах - по одному на каждый вход (входов может быть болше двух). Выходное напряжение при запертых диодах обеспечивается резистором: рис. б)
 
3.1.3. Дизъюнкция (ИЛИ)
 
Аналогично конъюнкции: рис. в).
 
3.1.4. Монтажное ИЛИ
 
Обычно несколько выходов с открытым коллектором нагружаются на общий резистор. Именно такая схема используется при реализации протокола I2C. В принципе, транзистор может быть заменен кнопкой, контактами реле или геркона, включаемыми между общим резистором и землей.
 
3.2. На микросхемах
 
Существует две традиции изображения логических элементов на принципиальных схемах. Одна из них (IEC) используется обычно в отечественных источниках (рис. г), е) з)), другая (ANSI) - в англоязычных (рис. д), ж), и)). Если на входе или выходе имеется маленький кружочек, это значит, что вход или выход - инвертирующий. Т.е. если дополнить схемы е), ж), з), и) кружочком аналогичным г), д) - в этом случае будут обозначены элементы И-НЕ и ИЛИ-НЕ.
С выходм - все понятно, а такой же кружочек на входе означает, что активному сигналу на данном входе соответствует низкий уровень. 
wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

Влад, если считаешь нужным, так напиши отдельное сообщение.

Да мне не трудно, от слова "совсем". Но ты взял тему. Если есть "добро", то поставлю в планы себе.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Листал сейчас форум и нубские вопросы. Возникла мысль:

====================

Нужен краткий словарь терминов, связанных с Ардуино (и, возможно, жаргонизмов).

Кто возмется? Нужно еще и структурировать на "уровни погружения", то есть сделать два или три словаря, первый - совсем для детей и новичков.

====================

Примеры: скетч, программа, прошивка, библиотека, контроллер, плата, ЛУТ, сенсор, термистор, фоторезистор, фототранзистор, драйвер симистора, драйвер нижнего плеча, драйвер верхнего плеча.... и т.д. еще на ХХХ страниц ;))))))))))))))

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

wdrakula пишет:

Женя! У тебя, судя по веселости, конференция закончилась?

Влад, посмотри, пожалуйста, пятиминутное видео приветственного слова перед началом молодёжной конференции. Это не дежурное приветствие, мне было совсем не всё равно, и я здорово психовал. Уж слишком хотелось, чтобы студенты это услышали ... про «мечтателей», про «ничего не изобрести», про «нафига». Может оттого, что психовал и очень хотелось, немного коряво получилось, посмотри, в общем.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

andriano пишет:

Влад, если считаешь нужным, так напиши отдельное сообщение.

Да мне не трудно, от слова "совсем". Но ты взял тему. Если есть "добро", то поставлю в планы себе.

Во-первых, у меня и в мыслях не было столбить за собой какую-либо тему.

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

bwn
Онлайн
Зарегистрирован: 25.08.2014

Коллеги, открыл "Изготовление аппаратной части" - 2-й пост. Посмотрите, что добавить-убавить-изменить.

arduinec
Offline
Зарегистрирован: 01.09.2015

Обзор китайского логического анализатора: http://samopal.pro/logic_analizer/

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

bwn пишет:

Коллеги, открыл "Изготовление аппаратной части" - 2-й пост. Посмотрите, что добавить-убавить-изменить.

Первые впечатления:

Мне кажется, следовало бы немного разделить "тип прибора" - общий тип, например, "резистор" и просто "прибор" - более конкретные, например, фоторезистор, терморезистор.

Дополнить: Резистор - единственный тип электронного прибора, подчиняющийся закону Ома.
Дополнить: переменный резистор, подстроечный резистор, потенциометр.
Заменить: Диод - тип полупроводникового прибора, пропускающий ток в одном направлении.
В статьях "светодиод" и "стабилитрон" заменить "полупроводниковый прибор" на "диод" либо "разновидность диода".
В определении оптопары (оптрона) заменить "фототранзистор" на "фотодиод" либо "фотодиод или фототранзистор", тем более, что определения фототранзистора ранее не было.
В определении полевого транзистора заменить "МОСФЕТ" на "MOSFET".
 
К Хоровиц-Хилл я бы добавил Титце-Шенк Полупроводниковая схемотехника.
ВН
Offline
Зарегистрирован: 25.02.2016

еще можно добавить Л. Фолкенберри "Применение операционных усилителей и линейных ИС"

 

bwn
Онлайн
Зарегистрирован: 25.08.2014

andriano пишет:

1. Мне кажется, следовало бы немного разделить "тип прибора" - общий тип, например, "резистор" и просто "прибор" - более конкретные, например, фоторезистор, терморезистор.

2. Дополнить: Резистор - единственный тип электронного прибора, подчиняющийся закону Ома.
3. Дополнить: переменный резистор, подстроечный резистор, потенциометр.
4. Заменить: Диод - тип полупроводникового прибора, пропускающий ток в одном направлении.
5. В статьях "светодиод" и "стабилитрон" заменить "полупроводниковый прибор" на "диод" либо "разновидность диода".
6. В определении оптопары (оптрона) заменить "фототранзистор" на "фотодиод" либо "фотодиод или фототранзистор", тем более, что определения фототранзистора ранее не было.
7. В определении полевого транзистора заменить "МОСФЕТ" на "MOSFET".
 
8. К Хоровиц-Хилл я бы добавил Титце-Шенк Полупроводниковая схемотехника.

1. Подумаю как. В шести строчках еще уровни вложенности добавлять???? 
2. Ок.
3. Добавлю, но здесь неясно, для меня потенциметр не отличается от переменного, подстроечный - разновидность переменного. Что Вы имели в виду по потенциометру.
4, 5. Ок.
6. Ок.
7. Ок.
 

8. To ALL, Ссылки на литературу поищу, найду, добавлю. Просьба, если есть, сразу давайте ссылки + строчку две описания. Изучить все, я уже физически не смогу.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

1. Примерно так:

резистор - тип электронного прибора...

фоторезистор - разновидность резистора...

терморезистор - разновидность резистора...

диод - тип полупроводникового прибора...

светодиод - разновидность диода...

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

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

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

 

bwn
Онлайн
Зарегистрирован: 25.08.2014

Ок, благодарю, теперь ясно.

P/S Сергей, по п.3, первая строка. А физически они существуют, я всегда думал, что это вариант схемы включения потенциометра.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

bwn пишет:

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

Чисто вопрос терминологии и не более того. Встречал в уважаемом учебнике - всё вместе называли переменным резистором и говорили, что можно включить  "по схеме реостата" и "по схеме потенциометра".

Думаю, в любом виде имеет право на существование.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ещё не полностью проснулся, поэтому с телефона.
п2 НЕ ОК!!!!!!! Это мракобесие Сергей уже не первый год тащит в форум!!! Закону Ома подчиняется не прибор, а мир вокруг нас, поэтому он и называется "Законом Физики". Например у мосфета, в открытом состоянии, тоже есть сопротивление. В кабеле нет резисторов, но есть сопротивление, и т.д.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Кстати, да:

переменный резистор (реостат) - ...

 

По возможности везде приводить альтернативные названия.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:
ещё не полностью проснулся, поэтому с телефона. п2 НЕ ОК!!!!!!! Это мракобесие Сергей уже не первый год тащит в форум!!! Закону Ома подчиняется не прибор, а мир вокруг нас, поэтому он и называется "Законом Физики". Например у мосфета, в открытом состоянии, тоже есть сопротивление. В кабеле нет резисторов, но есть сопротивление, и т.д.
Только вот не надо путать фундаментальные законы типа законов сохранения с эмпирическими типа Дарси или Ома.

Из-за такой путаницы уже было 300-летнее противостояние науки и религии.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

Кстати, да:

переменный резистор (реостат) - ...

 

По возможности везде приводить альтернативные названия.

Прости, Сергей, но ты сам не чувствуешь, что снова включил режим "киби-миби", то есть режим совершенно никчемного занудства. Ты реально знаешь людей, использующих термин "реостат" (ну кроме, возможно, железнодорожников ;)) ) ??? Или знаешь людей использующих твои киби-миби?

Ты серьёзно собираешься новичкам дать такую прекрасную возможность для срача в стиле "Земля - плоская", как сомнения в применимости Закона Ома?

Вот только что же нормально общались! Ты про Булеву алгебру написал. ...иначе, как периодическими скачками настроения, я не могу такие метаморфозы объяснить. Тем более, что ты сказал, что опыта преподавания у тебя нет.

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

Формально и киби-миби существуют и переменный резистор называется "реостатом", но тыкать на это, да еще часто???!!! - ну вспомни хоть себя студентом! Один раз указать, в сноске, мелким шрифтом, иначе, в глазах студентов, станешь пустомелей. Но в ВУЗе пустомеле достаточно здать зачет и забыть, а у нас люди свободные - они просто не станут читать, а, паче чаяния, прочитав - не станут верить.

Ну как ты этого не понимаешь???

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

andriano пишет:

Из-за такой путаницы уже было 300-летнее противостояние науки и религии.

Знаешь, я, впрочем я уже это тут писал, в позапрошлом веке назывался бы "выкрест", поскольку крещеный.

Крестился я в 88г, когда уже два года учился на МехМате. В церкви, куда ходил к причастию, встречил и своего школьного учителя физики и свох профессоров из МГУ, со своего факультета. В те времена РПЦ еще не была столь одиозно провластным институтом, а наоборот, собирала часть "фронды".

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

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wdrakula пишет:

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

Ну так ты родился после 1929 года.

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

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

 

PS. И еще, если новички не будут знать, что одна и та же сущность может обзываться разными словами, то периодически будут возникать споры типа "большевики vs коммунисты".

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016
bwn
Онлайн
Зарегистрирован: 25.08.2014

Брейк, друзья. Я услышал обе стороны. Мой вопрос к Сергею родился из-за использования им термина "переменный резистор" для реостатного включения. Для меня это всегда был жаргонный синоним потенциометра. Если я приду в магазин и попрошу продать "переменный резистор", то буду вознагражден трехлапым потенциометром. Думаю правильным будет, в описании этого прибора, обозвать его: Потенциометр, переменный резистор -........ Возможно включение по схеме реостата (два контакта), для изменения общего сопротивления или потенциометра (три контакта) делителя напряжения.
По применению закона Ома к резистору, оба объяснения не вызывают разрыв шаблона. При рассмотрении "простейших", которых если и прочитают, то люди далекие от радиотехники, проверить правильность закона мы можем только на резисторе (кстати в Википедии про него тоже самое написано). Когда токи зашкалят за десяток ампер, мы узнаем про резисторы много нового. При редактировании, постараюсь отметить оба аспекта. ИМХО.

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

bwn пишет:
мы узнаем про резисторы много нового.
А главное - интересного! И не токма узнаем, но и носом почуем!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

andriano пишет:

Кстати, да:

переменный резистор (реостат) - ...

По возможности везде приводить альтернативные названия.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Хорошая статья про Arduino IDE, загрузчики (bootloader), программаторы (avrdude.exe), фьюзы, HEX-файлы.
В одном флаконе.
Не претендуя на оригинальность.

К примеру:
Что же надо знать о ЗАГРУЗЧИКе, что бы осознанно им пользоваться?
1)Размер загрузчика.
2)Область памяти, в которую он загружается.
3)Фьюзы, которые должны быть использованы с загрузчиком.
4)Скорость для UART.
5)Частоту МК, под которую рассчитан ЗАГРУЗЧИК.
6)Ну и конечно же, под какой МК рассчитан ЗАГРУЗЧИК.
7)Внешнее проявление работающего ЗАГРУЗЧИКа.
8)Критерий для запуска ЗАГРУЗЧИКА.