Как вкатиться в электронику?
Публичный постМне очень нравятся всякие микросхемки, платки, резисторы и прочие элементы. Я на отлично сдал схемотехнику в универе, умею прогать под ардуину и даже ходил в школе полгода в кружок «юный радиолюбитель», травил там платы, лудил и паял.
Но все это дела давно минувших дней и кажется к реальной жизни имеет малое отношение. Я совершенно не понимаю как все это работает и с какой стороны подступиться. Я вижу как одни ремонтируют телефоны, другие собирают и пишут прошивки под круиз-контроль для машины, третьи могут взять сломанный телевизор, выпаять какую-то хрень, заменить и все заработает.
Я же не могу даже парковочную камеру к машине подключить, потому что боюсь и не знаю с чего подступиться. Не могу починить детскую машинку - перестала ездить, значит где-то пропал контакт, но где?
Хочу научиться понимать как все работает. Почему в конкретном месте стоит конкретный резистор или диод. Хочу научиться проектировать схемы и программировать микроконтроллеры.
Кажется, что это все не сложно, и вкатиться в это дело должно быть просто. Подскажите, пожалуйста, чего почитать, какое оборудование купить, и как практиковаться?
Что почитать:
Никакого вкатывания не выйдет без практики. Начать можно с малого - починить наушники, например. Даже эта задача требует наличия минимального набора инструмента (паяльник с причиндалами, кусачки, пинцет, мультиметр) и минимального представления о том что должно быть. Потом сделать какой-нибудь простенький проект на ардуине или esp8266/esp32 (если совсем нет идей - повторить чье-то железо и написать свой код тоже пойдет).
Дальше уже можно начинать думать в какую сторону больше хочется специализироваться. Основные классы (внутри каждого есть свои джуны и сеньоры, можно брать несколько и качать в разной степени):
аутистмодный хипстор (возможны различные сочетания). Обычный софтвар энжинеринг, только с нюансом что баги могут приводить к материальному ущербу и травмам, а без мамки-ОС (если ты ее не принесешь сам) стрелять себе в ноги можно новыми изощренными способами. По наблюдениям, опыт любого более другого софтвар инжениринга здесь важен, люди пришедшие из железа зачастую пишут очень плохой или очень странный код и иногда впервые слышат про гит. Кейворды для вкатывания - stm32 discovery (девборда), esp8266/esp32 (мк с вайфаем за 2 бакса любимый диайвайщиками), platformio (экосистема чтоб писать под примерно любой мк и фреймворк не повесившись на этапе настройки тулинга), freertos (мы же хотим нормальный многопоточный код писать, а не лапшу из стейт-машин). Про ардуину даже не пишу, но стоит упомянуть что сейчас это не только серия платок с аврками, а фреймворк для начинающих работающий на куче разного железа и все либы для периферии которые будут попадаться на гитхабе скорее всего будут заточены под него.Чистые классы встречаются редко и скорее вредны. Читать схемы нужно уметь всем, писать на сишечке придется тоже всем (если конечно не ограничиваться исключительно юзерспейсным кодом под линукс), представлять как работает периферия на уровне регистров и сигналов на шинах тоже.
Так Ардуино - и есть микроконтроллер :) Если ты умеешь прогать под Ардуино - то умеешь программировать микроконтроллеры :)
Трудно сказать как сейчас легче всего вкатиться. Я бы тоже хотел найти хороший прикладной и полный курс (структурированную базу знаний) по этой теме. Иногда хочется освежить то, что уже знаю.
Я в последнее время много чего изучаю на ютубе. Поэтому я бы, наверное, начал смотреть разные ролики на ютубе и собирать общую картину, например тут.
Начиная с закона Ома, тока, напряжения, сопротивления, ёмкости, индуктивности.
Затем элементная база, свойства каждого элемента. Например, диод пропускает ток только в одном направлении, на нём падает всегда постоянное напряжение, используется в выпрямителях тока, стабилизаторах напряжения. Конденсатор накапливает заряд, постоянный ток не пропускает, пропускает только переменный, используется в фильтрах частот. И так далее. RC-, LC-цепи, фильтры. Индуктивности, трансформаторы, катушки, реле...
Полупроводники: диоды, транзисторы всякие. Какие бывают, варианты их включения. Например, включения транзисторов с общей базой, общим коллектором, общим эммитером. В каких юзкейсах используется. Например, с общим эммитером - в схемах усиления сигнала. С общей базой, кажется - стабилизатор тока. Сам уже забыл :) И тому подобное.
Затем разные микросхемы и сборки: стабилизаторы напряжения, выпрямители тока, операционные усилители и т.п. Схемы их включения и свойства таких схем, в каких юзкейсах применяются. Обычно это более высокоуровневые блоки, выполняющие определённую фукнцию.
Затем узнать как строятся какие-либо типичные штуки типа усилителя звука, блока питания, примочки для электрогитары и т.п.
Это всё было про аналоговую схемотехнику.
Цифровая схемотехника состоит в основном из логических элементов.
Начать надо с примитивных элементов И/ИЛИ/НЕ, регистров, JK-, RS-, T-, D-триггеров, мультиплексоров, дешифраторов, генераторов, счётчиков и т.п.
На них строится логика обработки цифровых данных. Но штука в том, что логика остаётся "зашита в железе". Микроконтроллеры предоставляют гибкость, когда при новых требованиях устройство не надо перепаивать (и делать новую разводку платы), а можно перепрограммировать. Или изначально проектировать вокруг микроконтроллера.
Временные диаграммы и осциллограф тут - твои лучшие друзья для понимания работы цифровой схемы.
Эта информация даст основу для понимания как устроены простые процессоры общего назначения и сопутствующие понятия как шина данных, адресная шина, тактовая синхронизация и т.п. Как процессоры интегрируются с периферией, с памятью. Как запись в регистры меняет состояния контактов на ножках проца.
Логические элементы выполняются в виде цифровых микросхем. Надо смотреть их спецификации, что внутри них реализовано, что она может и как её соединять с чем-то ещё.
Микроконтроллеры есть разного уровня абстракции: низкоуровневые где можно запрограммировать примитивное поведение, и высокоуровневые - как Ардуино, для которой уже даже сделали машинное обучение.
Распбери пай, я думаю, вряд ли научит схемотехнике, так как он по-сути, уже готовый компьютер. Эдакий чёрный ящик внутри которого происходит магия.
Ещё, нужно научиться читать принципиальные схемы.
Без них лезть куда-то с паяльником бессмысленно. Разве что, если ты знаком с устройством типичных блоков и знаешь примерно где что. Или знаешь типичные болячки, наподобие пересохших/сгоревших конденсаторов.
Ещё полезно изучить какие-то основы обработки сигналов, ЦАП, АЦП, преобразование Фурье и прочие импульсные характеристики :)
Из инструментов что надо - зависит от задач. Обычно паяльная станция, пинцеты всякие, мультиметр, осциллограф, россыпь разных деталей :)
Тема обширная. Тут, как и в программировании, люди учатся постоянно. Прикладных направлений тоже, как в программировании, очень много.
Не знаю был ли полезен такой высокоуровневый обзор :)
Сегодня спонсоры данного комментария, кажется, пиво и ностальгия :)
Предустерегу от вливания в ряды ардуинщиков — это когда человек учится на платформе, предназначенной для обучения, а потом начинает на этой же платформе пилить боевые проекты. Выглядит плохо, работает тоже.
Начать с ардуины это неплохо, закончить можно тоже ей, если не стоит задача делать что-то в продакшен (под продакшеном я понимаю не столько серию, сколько состояние "не стыдно похвастаться на хабре"), а хочется просто развлекаться в свободное время.
Но если хочется действительно вкатиться и делать хорошие проекты — то надо держать в голове, что после ардуины лучше взять ESP8266/32 c FreeRTOS, или STM32 c любым из поддерживаемых ртосов.
Собственно, разница между ардуиной и этими вариантами — это разница между написанием монолита под дос на 386 (причем написание кода на этой же машине в текстовом редакторе под дос) и микросервисов под линукс на i5. Вроде смысл тот же самый, но боги, насколько приятнее и проще решать те же задачи с нормальными инстурментами — RTOS, нормальной системой сборки, нормальной средой разработки, нормальными инструментами для отладки и прошивки.
Как радиоинженер, могу сказать, что аналоговая электроника полна магии.
Начни с покупки Raspberry pi. И всякий мусор к ней, типо лампочек и плат для проектирования. Кодить можно на Python, JS etc. В инете полно уроков и примеров. Надоест - поставишь на нее linux и будет тебе как миникомп или сервер.
Это конечно не уровень "понять зачем где какой резистор", но хотя бы для начала овладеть цифровыми и аналоговыми I/O.
Потом можно начать покупать более лоулвл вещи - ардруино и конкретные микропроцессоры.
Попробуй подключить разные датчики, сенсоры, моторчики. Может быть разбираться прям в микросхемы и не захочешь. Это как разбираться в ассемблере, что бы сайтик замутить.
Потом для более реальной практики, вот как ты пишешь про починить машинку - можешь попробовать собрать свою. Там все банально просто. Я писал на эту тему - https://habr.com/ru/post/469659/, https://habr.com/ru/post/469733/
А если по теме, то сам задавался этим вопросом недавно. Купил Pi Zero W, паяльник, платы, посмотрел туториалы, как паять, что такое транзисторы, вспомнил закон Ома, разобрался с GPIO И ТЕПЕРЬ МЕНЯ НЕ ОСТАНОВИТЬ ГАЛЯ ТЫ ЩАС УМРЕШЬ У МЕНЯ ТЕПЕРЬ УМНЫЙ ХОЛОДИЛЬНИК.
Если надо прогать микроконтроллеры,умныед ома и вот это все, то лучшее начало - Raspberry Pi и дальше смотреть в сторону STM32.
Если надо паять и разбираться в резисторах - то нужна книга "The Art of Electronics" Horowitz & Hill. Крайне желательно - в оригинале, переводы хромают, в том числе множественными ошибками в формулах. Хотя нет, начать будет лучше с кгиги "Электроника шаг за шагом" Рудольфа Свореня, а "искусством схемотехники" продолжить.
Ну и практика, пока достаточно диодов не сожжешь, ничего не будет.
Мда, границы ТЗ очерчены нечетко))
Как инженер, который пришел в программисты скажу, что область сия обширна и велика и нало бы знать чего именно хочется.
Пример.
При этом существует класс устройств типа той же малинки, где почти все вышеперечисленное не надо.
Чего барин изволит? Потому как тут либо основательно в науку и моделирование посылать, либо на сайт easyelectronics.
Из общего могу посоветовать любой учебник со схемами типа того же Сквореня плюс Микрокап (у него свободная версия), где можно накидать простенькую схему и увидеть как она работает, поиграться параметрами, посмотреть АЧХ (ах да, фильтры тоже надо знать)
Только надо помнить, что микрокап тоже врет и в реальности все работать может по другому.
рекомендую не слушать хэйтеров ардуино – можно сколько угодно говорить о том , что ардуино/эксель/вордпресс/лом не подходит для солидной фирмы, вам нужно сделать своё Кастомное Решение©®, но если твоя задача решается в лоб за один вечер программирования и втыкания проводов в макетку, то arduino goes brrrrrr. у меня дома есть полсотни пустых микроконтроллеров на десятке разных ядер, два swd- и один jtag-программатор, четыре виде одноплатников, но если мне что-то надо быстро запрототипировать, то с 90% вероятностью я возьму одну из ардуин. при этом я тоже хэйтер ардуино :)
короче, инстумент надо выбирать исходя из задачи и доступного свободного времени на изучение
😱 Комментарий удален его автором...
Советую, придумать устройство для дома или для какого-нибудь своего использования, и по компонентам собирать. Так будет интересно, и в итоге получится полезная штука.
Я например, задавался целью сделать автоматические жалюзи, чтобы управлять с пульта, и чтобы утром открывались по заданному времени. Так познакомился с ардуино, шаговым моторчиком, модулем часов и тд.