От автора


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

Ещё в детстве я очень удивлялся и завидовал детям из фильмов и сюжетов из новостей, которые “вот школьник сделал робота, запрограммировал с компьютера и вау какой молодец“. Я понимал, что это очень интересно, скорее всего сложно (но больше все таки интересно) и тоже хотел этим заниматься. Не зная, с какой стороны подступиться, я жил и мечтал делать роботов, пока однажды не услышал о платформе Ардуино. Поняв, что эту штуку можно купить на АлиЭкспресс за более чем вменяемые деньги, я заказал свою первую Уно. И началось…

Я прошел долгий путь самообразования, не читая никаких книг, и руководствуясь только статьями, найденными в Гугле, ну и методом проб и ошибок. Так что именно своими практическими знаниями я и хочу с вами поделиться, рассказать о сложных вещах так, как мне самому было бы понятно, будь я новичком в этой теме. В этом и заключается отличие от книг, написанных профессорами или программистами высокого уровня: они не объясняют многое из того, что кажется им “слишком простым”, оставляя это читателю для самостоятельного поиска и/или разочарования в жизни.

Изучать уроки нужно последовательно, так как материал излагается постепенно и последующие уроки строятся на основе знаний из предыдущих. Информация подаётся очень плотно, с минимумом “воды”, местами даже оформлена в виде сухой документации с примерами. Информация собрана из разных источников: официальный референс Arduino.cc, различные уроки C++ (Ravesli.com, c-cpp.ru), некоторые вещи взяты из личной практики, некоторые найдены на англоязычных форумах и stackoverflow. Я считаю, что уроки получились самыми подробными во всём интернете, если найдёте что-то подробнее или будут пожелания/дополнения к моим урокам – обязательно пишите на alex@alexgyver.ru

Что касается программирования – уроки написаны применительно к программированию Ардуино при помощи тех инструментов, которые были созданы разработчиками этой замечательной платформы. Реальные программисты очень сильно бомбят на весь этот ардуино код, но они забывают про такое понятие, как порог вхождения. Прелесть Ардуино в том, что этот порог опустился далеко ниже плинтуса. Да, ардуиновский “Wiring” работает медленно и неэффективно, но зато он позволяет быстро освоить программирование и при желании перейти к более сложной работе напрямую с микроконтроллером, обмазываясь даташитами и документациями. Но, как показывает моя практика, делать весьма сложные и интересные проекты можно оставаясь ардуинщиком, лишь изредка прибегая к использованию нагугленных команд “на чистом си”. Практически любую сложную задачу можно решить при помощи готовых библиотек, коих для Ардуино существует огромное множество, благодаря большому и сильному комьюнити.

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

Зачем стоит осваивать Ардуино? Для начала это безумно интересное, современное, недорогое и развивающее/умное/полезное хобби. Научившись программировать, вы немного измените свой склад ума, обретёте так называемое системное мышление и начнёте понимать шутки про программистов и для программистов. На Ардуино можно сделать неограниченное количество интересных и полезных проектов. Оригинальную идею можно превратить в стартап и сделать на этом бизнес, начав с ардуино и модулей и закончив готовым устройством на печатной плате. Экспериментируя с ардуиной в зрелом возрасте, вы очень интересно и с пользой проведёте время, а начиная осваивать это дело с детства – откроете себе дорогу к очень интересным и современным профессиям. В добрый путь!

Александр “AlexGyver”. Ардуинщик, видеоблогер, инженер, проектировщик космических аппаратов