Arduino

Всё началось пару лет назад с
Arduino. Узнал в интернете про этот проект, и он меня заинтересовал. Группа энтузиастов решила взять за основу не сложный микроконтроллер, и разработать инфраструктуру, среду, чтобы программирование и работа с микроконтроллером была абсолютной простой, и доступной даже детям.
Они взяли за основу недорогой микроконтроллер, спроектировали схему, опубликовали её. Создали
язык программирования, похожий по синтаксису на C, доступны
библиотеки по работе с периферией, создали
полноценную среду IDE для разработки и программирования, на разных платформах.
Я следил за этим проектом — появились разные «клоны» Arduino – выпускаемые другими производителями, но совместимые с оригинальное. Google проявил интерес к этой проекту, и были направления по интеграции Android с устройствами Arduino.
Google chooses Arduino as a development platform for Android (сентябрь 2011 года)
Android Open Accessory Development Kit (ADK) [ADK1, 2011 год]
В 2012 году Google перешли на ARM 32-bit Cortex M3:
Android Accessory Development Kit (ADK) for 2012
Квадрокоптеры

После Arduino я случайно увидел Квадрокоптеры, это тематика мне так показалась интересной. Люди самостоятельно проектировали, программировали, собирали, и запускали летающие рамы с пропеллерами (что и есть квадрокоптер). Радоуправляемые, с системой собственной стабилизации, камерами и т.п.
Пионером на этом рынке была компания
OpenPilot – которая сделал первый
CopterController плату, которая включала в себя весь функционал, и сенсоры, необходимые для управления квадрокоптером. При этом она была универсальная, что можно было программировать не только на 4 но и на любые другие конфигурации квадрокоптеров.
OpenPilot кроме платы предоставила и полную инфраструктуру для «наземной» разработки — эмуляция аппаратной части, тестирование систем стабилизации — полноценный IDE – и всё это бесплатно.
Мне казалось, что это направление будет активно развиваться.
RaspberryPi

И вот я узнал про проект RaspberryPi — это был очень интересный проект.
И не менее интересен был один из идейных вдохновителей проекта — Дэвид Брэбен, это один из авторов известной игры Elite, для тех кто знаком с ZX Spectrum – знают.
Игра была полностью революционной по тем временам (80е годы), она умещалась в 32 килобайта (тогда загрузка была с кассет), и это была 3D игра, от первого лица (FPV) – и игрок выступал в роли капитана космического корабля, который был свободным странником по вселенной. В игре было 8 галактик. На каждой доступны сотни звезд. Перемещения между звездами осуществлялось с помощью гиперпрыжков. Можно было торговать товарами. На вырученные деньги — оборудовать корабль, дополнительным вооружением, или другим оборудование (двигатели, радары и т. п.). Причем игрок сам выбирал свою стратегию развития — он либо мог честно и настойчиво зарабатывать торговлей официальными товарами, или нарушая закон, торговать запрещёнными (работорговля, наркотики, вооружение). Были элементы 3d шутеров — стычки с пиратами, или полицией. И при этом ещё в игру были встроены некоторые миссии.

Вот автор этой игры, в наше время глядя на молодых людей, школьников увидел, что они лишены той жажды творчества, которая выливалась в создание игр в его время в те 80е годы. Сейчас уже мало кто вообще программирует игры — в большинстве играют, а чтобы создать игру — это надо быть достаточно квалифицированным разработчиком.
Идея недорогого компьютера для детей пришла из 2006 года, когда Eben Upton с коллегами по университету проанализировали уровень компьютерных знаний, знаний по информационным технологиям, и по сравнению с 1990 годами, когда программирование было интересных хобби и увлечением, показатели 2000 года показали в основном лишь веб-технологии.
Для привлечения к программированию, было решено сделать мало-бюджетный компьютер в рамках $25, для привлечения внимания к программированию.
Был организован некоммерческий фонд, и Eben Upton взялся за проектирование и разработку микро-компьютера. Были несколько версий (
прототип от 2006 года), но в конечном счете они оставили только главные компоненты — сетевой адаптер, выход на монитор, аналоговый выход на телевизор, аудио выход, USB, был добавлен графический акселератор, что позволяло воспроизводить 1080 Full HD видео, чипсет был специально спроектирован, и сделан для RaspberryPi (компания Broadcom). Память изначально была 256Mb, сейчас она доведена в стандарте до 512Mb. Был сделан вход для SD флэш карты, которая выступает в роли накопителя, и с которой микроконтроллер и загружается. Так же были сделаны выходы GPIO для подключения периферийный устройств.

Благодаря этим людям появился RaspberryPi, в руках у них 3 версии RaspberryPi.
В центре — Eben Upton — «отец» RaspberryPi — он полностью разработал чип, и всю плату,
небольшое интервью с ним.
Старт продаж был 29 февраля 2012 года.
Производство было размещено в Китае.
Была заказана партия.
После старта продаж — ажиотаж был настолько большой, что интернет магазин на некоторое время вышел из строя, скорость продаж доходила до 300 шт/секунду.
Со временем было решено перенести производство в Англию на завод Sony.
На данный момент продано приблизительно миллион штук.
Я следил за эти проектом, и стали проявляться разные проект энтузиастов — кроме основной задачи популяризации информатики для школьников, многие уже взрослые люди — стали применять эти платы для автоматизации и портирования своих проектов с «больших компьютеров». Так были портированы мультимедиа проекты, были портированы дистрибутивы линукс. Даже Оракл не обошел внимание, и есть пример запуска JavaME на RaspberryPi.
Постепенно стала образовываться коммьюнити, появился журнал
The MagPi – Уже 10 выпусков, бесплатный, на страница которого люди делятся своими проектами идеями.
Появление RaspberryPi вдохнуло новую жизнь в задачи небольших автоматизаций, там где не хочется использовать громоздкий компьютер, а возможностей микроконтроллера не достаточно. И RaspberryPi — стал ядром таких систем.
Системы управления роботами, совмещенными с распознаванием образов, распознаванием звуков.
Идея Курса
Глядя на всё это — я понял, что к сожалению в наших классах, этого всего нет.
А это могло бы дать школьникам интерес к изучению, к творчеству.
Компьютер уже не является тем чем он был 20 лет назад. В 90е годы, цена автомобиля была сопоставима со стоимостью некоторых компьютеров. Для игры в компьютерную игру — ходили в гости.
Сейчас компьютер это обыденная реальность, и чем-то интересным он привлечь не может.
А робототехника, устройства — это может быть интересным. Это мне напоминает советские кружки творчества, юных техников, где создавались модели самолётов, и т.д.
И мне кажется, что идею схемотехники, робототехники — можно так представить, что это будет интересно школьникам, что это будет их занимать, что это может составить конкуренцию «виртуальному миру».
Управляемый робот, умная система — это реальность, но которая оживаем посредством программирования, виртуального творчества. Когда результат творчества виден и нагляден — это привлекает, и поддерживает интерес.
Второй момент — что изучая это в школе — мы получаем специалиста, который совсем по другому относится к высшему образованию, т. к. он уже понимает точку приложения всех этих знаний — физика, электроника, высшая математика, моделирование.
Этими мыслями я делился с Александром Анатольевичем Давыдовым (это было в конце 2012 года), он был полностью согласен с тем что курс может быть полезен, и предлагал мне попробовать его сделать, но моих знаний радиотехники — было явно не достаточно.
Начало
И вот, в начале этого года я узнал, что мой старый знакомый — Олег Евсегнеев, кроме программирования на Python, в качестве хобби — занимается ещё и сборкой квадрокоптера, и вообще достаточно продвинут во всех вопросах микроконтроллеров и компонентов — его блог — http://www.poprobot.ru/ (Популярная робототехника).
Он неспешно заказывал детали, и собирал полностью самостоятельно панель управления полётом, и пульт дистанционного управления.
Я поделился с ним идеей по курсу для начинающих по радиотехнике, робототехнике. Ему эта идея понравилась, мы пришли к выводу, что рационально использовать RaspberryPi как базу для начала, и подключать к ней периферию и параллельно постепенно обучать.
Но остался вопрос организационный — о том кому это преподавать, где арендовать помещение, как искать учеников и т.п. И тут Олег сказал про Уральскую Компьютерную Школу (УКШ), что он переговорит — будет ли интересно эта тематика в рамках данного курса.
Валерий Иосифович Рогович — полностью поддержал нашу идею. То есть у нас была группа школьников, кому мы могли предоставить данный курс.
Вопрос оставался в формировании набора компонентов, и финансировании покупки (было решено начать с 10 комплектов)
Олег стал готовить список компонентов — искать по интернету.
Александр Анатольевич оплатил эти 10 комплектов для пилотного Курса.
Набор состоит из:
Базовой части
RaspberryPi, SD карта, HDMI-VGA адаптер.
Я предположил — что можно использовать инфраструктуру аудитории — мониторы, клавиатуру (USB) и мышку (USB) — и не включать это в комплекты, единственное монитор может не поддерживать HDMI, поэтому решили включить переходник на VGA.
Макетная плата — это плата чтобы можно было без пайки подключать компоненты к GPIO шине RaspberryPi
Сенсоры, периферия
Это набор разнообразных сенсоров, светодиоды, кнопки, потенцимоентр, и т.п.
Мобильная платформа
Движущиеся модели всегда интересны, Олег нашёл недорогую мобильную платформу — два серводвигателя и шаровое колесо — на этой платформе можно размещать RaspberryPi с сенсорами, с автономным источником питания, и программировать системы с обратной связью, например Line Follower.
Свой опыт по заказам и доставке — Олег опишет отдельно в постах.
Так же на данный момент было 1ое занятие от 7го марта — так же Олег сделает пост.
Курс Робокласс
понимание которое пришло уже постепенно
Идея заключалась в создании полностью открытого курса, направленного на преподавание в старших классах школы. Хотя в дальнейшем можно сделать курсы и для самых начинающих.
Хотелось бы чтобы курс был максимально практическим, где теоретическая часть была совмещена с лабораторными, практическими занятиями.
Так же хотелось чтобы школьники выбрали самостоятельно (один или в группе) какой-либо проект для себя — проект которым бы они занимались сами, и он был бы им интересен.
Было решено сделать набор датчиков, взаимодействие с которыми можно вынести в лабораторные.
Также было предложено использовать мобильную платформу (машинка), для отработки навыков программирования динамичных система — это было бы максимально наглядно.
Первоначально всю тематику разбил на следующие группы:
1. Базовый
Микрокомпьютер, работа с периферийными датчиками
Работа с Микрокомпьютером, подключение периферийных датчиков, изучение основ Python для работы с датчиками
2. Мобильная платформа
Микрокомпьютер, сервоприводы, датчики (передвижной робот)
автономный робот, с датчиками, и алгоритмами обратной связью.
3. Распознавание образов, звуков
Микрокомпьютер, (видеокамера, микрофон) + Система распознавания образов (OpenCV — Open Source Computer Vision), система распознавания звуков.
Для систем умный дом — распознавание образов и звуков — важный компонент
4. Arduino
Микрокомпьютер, Arduino (датчики)
Подключение Arduino — расширяет возможности базового Микрокомпьютера, за счёт использования простых микроконтроллеров, и языка программирования, поставляемого с Arduino, и бесплатной среды разработки IDE.
5. Интернет
Микрокомпьютер, Wi-Fi или модуль 3G модема
Доступ к Микрокомпьютеру, удалённо из интернета — настройка веб-сервера — что позволит заходить на МК, и управлять периферией (получать информацию) со смартфона.
6. Linux
На Микрокомпьютер — устанавливается бесплатные Linux дистрибутивы
Получение навыка работы с этой операционной системой (которая по причине своей стабильности, является дефакто для задач автоматизации)
7. 3D моделирование
Моделирование корпусов
Корпуса, базовые платформы, необходимы для любой системы. Приобретение навыка проектирования, и преобразования этих моделей в код управления станком. SketchUp (бесплатная программа для 3D моделирования)
8. Python
Более глубокий курс Python
Позднее я подумал над такими курсами:
10. 3д принтер
Теория и практика 3д принтеров
Проектирование, сборка, настройка
11. Квадрокоптер
Теория и практика квадрокоптеров
Проектирование, сборка, настройка
12. Умный дом
Отдельно можно акцентировать внимание, сюда могут входить кроме систем умного дома — охранные системы, энергосберегающие технологии.
1-12 марта 2013 год