Детей недостаточно учить только питону и ардуине. Нужно еще и цифровой схемотехнике, причем не на симуляторе, так как он для ребенка неубедителен, а на микросхемах малой степени интеграции, лучше которых для иллюстрации функции D-триггера никто с 1968 года ничего не придумал.
Но учить канонично по книжкам 1970-х не обязательно. Например, ну зачем ребенку руками собирать генератор тактового сигнала на микросхеме 555, если его теорию он все равно не поймет, а для понимания функции D-триггера понимание работы генератора нерелевантно? Генератор на 555 можно купить уже собранным на AliExpress.
Также можно заменить батарейку на 9 вольт на питание от USB на 5 вольт; поставить толерантные к 5 вольтам светодиоды, не требующие дополнительных резисторов и поставить кнопочки, не требующие подтягивающих резисторов. В результате все сведется к самой сути - логическим элементам и D-триггерам, откуда уже можно переходить на ПЛИС / FPGA. Вот сравните схему сдвигового регистра. Что вы по этому поводу думаете?
Было:
Стало:
Таким макаром можно учить не только:
-
логическим элементам И, ИЛИ, НЕ
-
D-триггеру
-
сдвиговому регистру
-
счетчику
-
драйверу 7-сегментного индикатора
но еще и:
-
мультиплексорам разной ширины с разным количеством каналов: 8, 4, 2
-
декодерам
-
приоритетным энкодерам
-
сумматорам на основе cmos 4008
-
компараторам
-
побитовым сумматорам
-
итд
Интересно что я использую на интервью задачку написать на верилоге побитовый сумматор с переносом с valid и ready, и куча студентов американских вузом пишут их с ошибками (это после того как их родители потратили на их обучение сотни тысяч долларов - вообще сумасшедший дом).
Ну короче подготовленных таким образом детей можно переводить на платы ПЛИС, например вот такую, которую я недавно описал и обсудил ее с товарищами из Бразилии, Швейцарии и КНР:
UPD: Спросили чем недостаточно Ардуино. Поясняю:
Никакое количество програмирования Ардуино не научит, как спроектировать сам чип Ардуино, примерно как курсы по вождению автомобиля не научат, как конструировать его двигатель.
Микроконтроллер, в том числе в Ардуино - это частный случай того, что можно сделать в хардвере. Микроконтроллер - это просто схема которая вынимает из памяти поток команд, переваривает их, меняет свое состояние и сигналы к внешним устройствам.
Вот как я обычно показываю разницу между програмированием микроконтроллера и дизайном на языке описания аппаратуры:
Автор: Юрий Панчул / Yuri Panchul