В последние семь лет ко мне неоднократно обращались преподаватели детских кружков с вопросом, что бы такое придумать для детей в области электроники, чтобы было 1) интересно 2) конвертировалось бы в будущую специальность и 3) давало бы что-нибудь качественно другое, чем уже устоявшиеся среди преподавателей лего-ардуины-и-разберри-паи.
Подход, который я хотел бы предложить в этой заметке — это конструирование устройств на основе макентной платы, используя примитивы разных уровней абстракции. Прежде чем описать суть предложения, я приведу аналогию. Допустим, нам нужно исследовать местность между городом A и городом B. Из A в B можно проехать на автомашине, рассматривая окрестности дороги. Но еще лучше — проехать не только на автомашине, но и потом проплыть тот же маршрут на подводной лодке, пролететь его на самолете, походить в некоторых местах пешком, а также прорубить кусок шахты на участке между городами на проходческом комбайне. По ходу дела ученик получит не только опыт вождения автомобиля, но и представление о структуре недр, морской экосистеме, нравах жителей и общей карте местности.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/cd0/2c3/4db/cd02c34db643b7c7d8721ffb0c9abb4b.png)
Теперь суть предложения. Ученик за несколько дней выполняет серию простых электронных проектов, которые имеют сходную функциональность, но используют в качестве строительных кубиков разные объекты, в том числе:
1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой
2. Программируемые логические интегральные схемы, десятки тысяч ячеек с изменяемой логической функцией
3. Микроконтроллеры
4. Встраиваемые процессоры
В качестве базового пособия для таких упражнений используются избранные места из популярного учебника Харрис & Харрис, доступного на русском языке, в том числе в виде официально бесплатной электронной версии. В бумажном виде эту книжку можно заказать здесь и здесь:
![](https://habrastorage.org/r/w780q1/getpro/geektimes/post_images/f77/07c/15a/f7707c15a20f7c5a3c4e5b1e919f7a14.jpg)
Замечу, что (3) перекрывается по тематике с ардуинами, а (4) — с расберри пай. (1) уже вводилось в истории для обучения школьников, но имеет ограниченную полезность без соединения с другими уровнями через (2). Именно (2) и сравнение (1)-(2)-(3) отличает это предложение от уже используемых. Все четыре типа кубика могут монтироваться на одну и ту же монтажную плату, но имеют разную разную природу, требующую разные методы для работы с ними.
Макетная плата для монтажа в гнезда (breadboard) — это простое устройство для прототипирования электронных схем без паяльника. Оно включает сотни гнезд, часть из которых уже соединена металлическими полосами, с возможностью дополнительных соединений перемычками (jumpers). Уже в 1970-е годы некоторые педагоги обнаружили, что детям интересно строить на таких платах разного рода поделки на основе микросхем малой степени интеграции: мигающие огоньки, счетчики, сирены и т.д. Технику из Калифорнии по имени Gary A. Gibson удалось внедрить это в школах (см. описание одного их таких наборов тут). Вот пример такой схемы:
![](https://habrastorage.org/getpro/geektimes/post_images/a2b/63b/957/a2b63b95726ee9592cf730f5977bdb13.gif)
Внутри каждой такой микросхемы всего несколько логических элементов:
![](https://habrastorage.org/r/w780q1/getpro/geektimes/post_images/6a5/efe/fa9/6a5efefa9acccb66bbc3c29afbd9ac13.jpg)
Наборы Гибсона являются практических идеальными, чтобы «потрогать» и ввести такие концепции как логический элемент (gate — AND, OR, NOT), триггер (D-flip-flop) и сигнал тактовой частоты (clock). Сейчас, в 21 веке, эти наборы с небольшими модификациями продолжает продавать компания ETron Circuit Labs. В России похожие наборы продает ООО «Киберфизика».
При этом уже в 1980-е годы интерес к таким наборам упал, так как в промышленности стали использовать больше микроконтроллеров, чем микросхем малой степени интеграции, а логически плавный переход от индивидуальных логических элементов к микроконтроллерам через проектирование микросхем был однозначно недоступным для школьников.
Одновременно в тех же 1980-х годах возникли две технологии, которые спустя 20 лет изменили ситуацию снова. Одна из таких технологий — это логический синтез из языков описания аппаратуры (Hardware Description Language — HDL), используя уровень регистровых передач (Register Transfer Level — RTL). Другая технология — программируемые логические интегральные схемы (Field Programmable Gate Array — FPGA), матрицы логических ячеек, функцию которых можно менять с помощью перепрошивки конфигурационной памяти. Последнее отличается от классического программирования, ибо в случае ПЛИС/FPGA мы строим схему, а не пишем цепочку инструкций программы.
Сейчас существуют недорогие ПЛИС/FPGA, платы с которыми которые можно вставлять в макетную плату. Теперь вместо физических соединений нескольких логических элементов перемычками (jumpers) школьник может строить схемы из десятков тысяч логических элементов меняя конфигурацию ПЛИС/FPGA. См. заметку Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция:
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/9a0/afa/d2b/9a0afad2bb9f195292211cc4aa659371.png)
Помимо простых конечных автоматов и арифметических устройств школьник может построить, реконфигурируя такую микросхему, и простой микропроцессор — см. Глава 7 в Харрис & Харрис.
А недавно компания Digilent (отделение National Instruments) выпустила еще один вставляемый в макетную плату модуль Cmod A7-35T с ПЛИС бОльшей емкости Xilinx Artix-7, в который можно поместить и используемое в промышленности микропроцессорное ядро MIPS microAptiv UP, базовая конфигурация которого доступна бесплатно в виде пакета MIPSfpga (но это уже не для школьников, а скорее для студентов вузов):
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/3b8/86c/df2/3b886cdf2376ceeb62bf4ad348b1e7de.png)
Наконец, в макетную плату можно вставить и модуль с микроконтроллером, который можно программировать на C. Тем самым можно сравнить программирование встроенного процессора с построением схемы в ПЛИС-е в предыдущем упражнении. Как программировать подобный микроконтроллер, я описал в свое время в заметке Как начать работать с Microchip PIC32. Часть первая.
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/05f/c91/27d/05fc9127d3329fb3aeb5e66b9c1ab5d9.png)
Замечу, что для программирования Microchip PIC32 можно использовать и Ардуино-подобную систему разработки MPIDE, и профессиональную среду MPLAB X, в которой можно например использовать RTOS-ы. С моей точки зрения, разница в уровне сложности для начала работы с MPIDE и MPLAB X недостаточно велика, чтобы сначала учить MPIDE, а потом – MPLAB X. Если в конечном итоге человек собирается получить профессиональные навыки, лучше сразу начинать с MPLAB X. Если же целью является скажем научить программированию микроконтроллеров гуманитариев, то лучше использовать MPIDE и на нем оставаться.
Наконец, в макетную плату можно вставить и модуль со встроенным процессором, на котором может работать версия Линукса — OpenWrt. Помигать лампочками на компьютере со встроенным Линуксом — тоже неплохое упражнение, чтобы понять, какие дополнительные уровни это добавляет (драйверы, kernel/user mode и т.д.):
![](https://habrastorage.org/r/w1560/getpro/geektimes/post_images/871/50f/661/87150f661387f2861b1f1d93d2fe8aab.png)
Под конец, школьнику можно показать лекцию про всю последовательность проектирования и производства микросхем от спецификации до микросхемы на фабрике. Это свяжет его упражнения с ПЛИС/FPGA на недорогой студенческой плате с массовым производством. Для этого можно сделать научно-популярную выжимку из курса Специализированные интегральные схемы наноуровня:
![](https://habrastorage.org/r/w780q1/getpro/geektimes/post_images/f52/7c8/5bc/f527c85bc8ec2d13248dd3b51c60b679.jpg)
Итого, если бы у меня стояла задача прокатить школьников галопом по Европам за несколько дней, то я бы делал это так:
День 1 до обеда. Сборка комбинационных схем на макетной плате с микросхемами малой степени интеграции:
1.1 Упражнение с логическими элементами AND, OR, NOT
1.2 Укражнение с сумматором и 7-сегментным индикатором
День 1 после обеда. Сборка последовательностных схем на макетной плате с микросхемами малой степени интеграции:
1.2 Упражнение с генератором тактового сигнала 555 и D-триггером
1.3 Упражнение с счетчиком, бегающими огоньками и 7-сегментным индикатором
День 2. Повторение дня 1, но с Verilog и FPGA
День 3. Повторение дня 1, но с микроконтроллером и на C
День 4. Повторение дня 1, но с встроенным процессором и Линуксом OpenWrt
День 5. Доделать предыдущие дни + лекция по всей электронной промышленности
Подход, который я хотел бы предложить в этой заметке — это конструирование устройств на основе макентной платы, используя примитивы разных уровней абстракции. Прежде чем описать суть предложения, я приведу аналогию. Допустим, нам нужно исследовать местность между городом A и городом B. Из A в B можно проехать на автомашине, рассматривая окрестности дороги. Но еще лучше — проехать не только на автомашине, но и потом проплыть тот же маршрут на подводной лодке, пролететь его на самолете, походить в некоторых местах пешком, а также прорубить кусок шахты на участке между городами на проходческом комбайне. По ходу дела ученик получит не только опыт вождения автомобиля, но и представление о структуре недр, морской экосистеме, нравах жителей и общей карте местности.
![](https://habrastorage.org/getpro/geektimes/post_images/cd0/2c3/4db/cd02c34db643b7c7d8721ffb0c9abb4b.png)
Теперь суть предложения. Ученик за несколько дней выполняет серию простых электронных проектов, которые имеют сходную функциональность, но используют в качестве строительных кубиков разные объекты, в том числе:
1. Микросхемы малой степени интеграции, по несколько логических элементов в каждой
2. Программируемые логические интегральные схемы, десятки тысяч ячеек с изменяемой логической функцией
3. Микроконтроллеры
4. Встраиваемые процессоры
В качестве базового пособия для таких упражнений используются избранные места из популярного учебника Харрис & Харрис, доступного на русском языке, в том числе в виде официально бесплатной электронной версии. В бумажном виде эту книжку можно заказать здесь и здесь:
![](https://habrastorage.org/getpro/geektimes/post_images/f77/07c/15a/f7707c15a20f7c5a3c4e5b1e919f7a14.jpg)
Замечу, что (3) перекрывается по тематике с ардуинами, а (4) — с расберри пай. (1) уже вводилось в истории для обучения школьников, но имеет ограниченную полезность без соединения с другими уровнями через (2). Именно (2) и сравнение (1)-(2)-(3) отличает это предложение от уже используемых. Все четыре типа кубика могут монтироваться на одну и ту же монтажную плату, но имеют разную разную природу, требующую разные методы для работы с ними.
Макетная плата для монтажа в гнезда (breadboard) — это простое устройство для прототипирования электронных схем без паяльника. Оно включает сотни гнезд, часть из которых уже соединена металлическими полосами, с возможностью дополнительных соединений перемычками (jumpers). Уже в 1970-е годы некоторые педагоги обнаружили, что детям интересно строить на таких платах разного рода поделки на основе микросхем малой степени интеграции: мигающие огоньки, счетчики, сирены и т.д. Технику из Калифорнии по имени Gary A. Gibson удалось внедрить это в школах (см. описание одного их таких наборов тут). Вот пример такой схемы:
![](https://habrastorage.org/getpro/geektimes/post_images/a2b/63b/957/a2b63b95726ee9592cf730f5977bdb13.gif)
Внутри каждой такой микросхемы всего несколько логических элементов:
![](https://habrastorage.org/getpro/geektimes/post_images/6a5/efe/fa9/6a5efefa9acccb66bbc3c29afbd9ac13.jpg)
Наборы Гибсона являются практических идеальными, чтобы «потрогать» и ввести такие концепции как логический элемент (gate — AND, OR, NOT), триггер (D-flip-flop) и сигнал тактовой частоты (clock). Сейчас, в 21 веке, эти наборы с небольшими модификациями продолжает продавать компания ETron Circuit Labs. В России похожие наборы продает ООО «Киберфизика».
При этом уже в 1980-е годы интерес к таким наборам упал, так как в промышленности стали использовать больше микроконтроллеров, чем микросхем малой степени интеграции, а логически плавный переход от индивидуальных логических элементов к микроконтроллерам через проектирование микросхем был однозначно недоступным для школьников.
Одновременно в тех же 1980-х годах возникли две технологии, которые спустя 20 лет изменили ситуацию снова. Одна из таких технологий — это логический синтез из языков описания аппаратуры (Hardware Description Language — HDL), используя уровень регистровых передач (Register Transfer Level — RTL). Другая технология — программируемые логические интегральные схемы (Field Programmable Gate Array — FPGA), матрицы логических ячеек, функцию которых можно менять с помощью перепрошивки конфигурационной памяти. Последнее отличается от классического программирования, ибо в случае ПЛИС/FPGA мы строим схему, а не пишем цепочку инструкций программы.
Сейчас существуют недорогие ПЛИС/FPGA, платы с которыми которые можно вставлять в макетную плату. Теперь вместо физических соединений нескольких логических элементов перемычками (jumpers) школьник может строить схемы из десятков тысяч логических элементов меняя конфигурацию ПЛИС/FPGA. См. заметку Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция:
![](https://habrastorage.org/getpro/geektimes/post_images/9a0/afa/d2b/9a0afad2bb9f195292211cc4aa659371.png)
Помимо простых конечных автоматов и арифметических устройств школьник может построить, реконфигурируя такую микросхему, и простой микропроцессор — см. Глава 7 в Харрис & Харрис.
А недавно компания Digilent (отделение National Instruments) выпустила еще один вставляемый в макетную плату модуль Cmod A7-35T с ПЛИС бОльшей емкости Xilinx Artix-7, в который можно поместить и используемое в промышленности микропроцессорное ядро MIPS microAptiv UP, базовая конфигурация которого доступна бесплатно в виде пакета MIPSfpga (но это уже не для школьников, а скорее для студентов вузов):
![](https://habrastorage.org/getpro/geektimes/post_images/3b8/86c/df2/3b886cdf2376ceeb62bf4ad348b1e7de.png)
Наконец, в макетную плату можно вставить и модуль с микроконтроллером, который можно программировать на C. Тем самым можно сравнить программирование встроенного процессора с построением схемы в ПЛИС-е в предыдущем упражнении. Как программировать подобный микроконтроллер, я описал в свое время в заметке Как начать работать с Microchip PIC32. Часть первая.
![](https://habrastorage.org/getpro/geektimes/post_images/05f/c91/27d/05fc9127d3329fb3aeb5e66b9c1ab5d9.png)
Замечу, что для программирования Microchip PIC32 можно использовать и Ардуино-подобную систему разработки MPIDE, и профессиональную среду MPLAB X, в которой можно например использовать RTOS-ы. С моей точки зрения, разница в уровне сложности для начала работы с MPIDE и MPLAB X недостаточно велика, чтобы сначала учить MPIDE, а потом – MPLAB X. Если в конечном итоге человек собирается получить профессиональные навыки, лучше сразу начинать с MPLAB X. Если же целью является скажем научить программированию микроконтроллеров гуманитариев, то лучше использовать MPIDE и на нем оставаться.
Наконец, в макетную плату можно вставить и модуль со встроенным процессором, на котором может работать версия Линукса — OpenWrt. Помигать лампочками на компьютере со встроенным Линуксом — тоже неплохое упражнение, чтобы понять, какие дополнительные уровни это добавляет (драйверы, kernel/user mode и т.д.):
![](https://habrastorage.org/getpro/geektimes/post_images/871/50f/661/87150f661387f2861b1f1d93d2fe8aab.png)
Под конец, школьнику можно показать лекцию про всю последовательность проектирования и производства микросхем от спецификации до микросхемы на фабрике. Это свяжет его упражнения с ПЛИС/FPGA на недорогой студенческой плате с массовым производством. Для этого можно сделать научно-популярную выжимку из курса Специализированные интегральные схемы наноуровня:
![](https://habrastorage.org/getpro/geektimes/post_images/f52/7c8/5bc/f527c85bc8ec2d13248dd3b51c60b679.jpg)
Итого, если бы у меня стояла задача прокатить школьников галопом по Европам за несколько дней, то я бы делал это так:
День 1 до обеда. Сборка комбинационных схем на макетной плате с микросхемами малой степени интеграции:
1.1 Упражнение с логическими элементами AND, OR, NOT
1.2 Укражнение с сумматором и 7-сегментным индикатором
День 1 после обеда. Сборка последовательностных схем на макетной плате с микросхемами малой степени интеграции:
1.2 Упражнение с генератором тактового сигнала 555 и D-триггером
1.3 Упражнение с счетчиком, бегающими огоньками и 7-сегментным индикатором
День 2. Повторение дня 1, но с Verilog и FPGA
День 3. Повторение дня 1, но с микроконтроллером и на C
День 4. Повторение дня 1, но с встроенным процессором и Линуксом OpenWrt
День 5. Доделать предыдущие дни + лекция по всей электронной промышленности
Only registered users can participate in poll. Log in, please.
Что вы думаете?
18.67% Согласен42
38.67% Согласен, но перед логическими элементами я бы ввел и дискретные элементы — транзисторы итд87
8% В целом согласен, но встроенный Linux — это имхо излишество18
6.67% Я против, лучше пусть строго учатся Ардуино, добавляя датчики и актуаторы15
2.22% Я против, лучше пусть строго учатся Raspberry Pi и Питону, добавляя датчики и актуаторы5
4% Я против, Лего — необходимо и достаточно9
4.44% Я не понимаю, чет так уж принципиально отличается программирование микроконтроллеров и ПЛИС10
12.89% А не приведут ли данные увлечения к тому, что школьник не прочитает Анну Каренину и получит 2 по ЕГЭ?29
4.44% У меня альтернативное предложение (написать в комментариях)10
225 users voted. 84 users abstained.