Открытые уроки по Arduino. Урок 5: знакомимся с массивами

preview_player
Показать описание
Приглашаем на пятое занятие цикла «Открытые уроки по Arduino для преподавателей».

Содержание урока:

0. Вступительная часть

0:00 Комментарий: цели и план занятия.
0:34 Разбор домашнего задания.

Работа с массивами
8:38 Что такое массив?
18:08 Пример 2. Скетч array2
20:26 Пример 3. Скетч piano3
24:07 Пример 4. Скетч pianoAny
25:50 Разговор о двоичной системе счисления.
30:23 Возвращаемся к примеру 4.
36:19 Пример 5. Скетч blink_arrays
38:56 Пример 6. Возвращение к примеру “Светильник-зануда”. Скетч nerd
45:16 Двумерные массивы. Пример 7. Скетч blink_matrix
50:02 Пример 8. Скетч blink_matrix_bin
50:52 Пример 9 (задача). Скетч code_lock_incomplete
Завершенный скетч code_lock

II. Передача символов с компьютера

55:27 Кодирование символов. Таблица ASCII. Тип данных char.
1:04:36 Пример 11. Скетч serial_read_leds
1:07:01 Пример 12. Скетч morse

III. Заключительная часть.

1:16:10 Ретроспектива занятия.
1:16:46 Разбор домашнего задания.
1:20:20 Впечатления слушателей.

___________________________________________________________________________________________________

__________________________________________________________________________

Материалы урока
Рекомендации по теме
Комментарии
Автор

Молодцы! Уважуха от всей души. Работайте над этим и далее. Всего вам самого наилучшего в этом очень не простом деле. А я сегодня малинку получил на почте, долго мучился и благодаря вашему сайту в три часа ночи привязал её по WiFi к нотнику. Малинка без нифига, то есть одна платка. В итоге рабочий стол на ноутбуке. Спасибо!

onrrczf
Автор

Классно сделали! Такое чувство как будто сам на уроке сижу :) Были бы еще такие уроки у нас в школе...

breathtakingsamurai
Автор

Спасибо Вам всем за предоставленный материал по изучению языка программирования.Почему сейчас нету таких каналов на телевидении?Раньше в СССР было много наших познавательных каналов.Молодцы!!!

aleksandrzv
Автор

Сделали бы такие кружки по всей стране хорошо было бы

tartibtartib
Автор

Рыжая девочка откровенно скучает! Она, наверное, думала, что "хаккеры" будут постарше. Единственный, кому это все интересно, реально интересно, это мальчик в очках. Я не думаю, что остальные все знают, просто слабо вникают и им скучно.

DrAgon-vrte
Автор

При рассказе про системы счисления лучше было бы не заводить разговор про степени, а объяснить проще. Что множитель при младшем разряде (вес младшего разряда) всегда равен 1, а веса следующих получаются последовательным умножением на основание системы счисления (10 для десятичной, 2 для двоичной). Дать им чуток по-умножать, убедиться, что вес разряда равен произведению нескольких одинаковых чисел, а потом уже объяснить, что такое произведение повторяющихся сомножителей называют степенью. И для полноты картины объяснить, сколько достаточно цифр в разряде, и что делать, если цифр не хватает (к примеру, для шестнадцатеричной системы счисления)
Существуют ещё правда системы счисления, построенные немного по другому принципу, тоже позиционные, но о них ведь речь не идёт.
И ещё, для преобразования последовательности нажатых кнопок в число выбран пожалуй самый неудачный алгоритм. На практике лучше использовать один из двух подходов:
Если двоичные цифры идут от старшей к младшей, то обнуляем число, в котором накапливаем результат, а потом в цикле по клавишам удваиваем его и прибавляем состояние клавиши (очередную двоичную цифру).
Если цифры идут в обратном порядке, то опять же обнуляем накапливаемое число, и устанавливаем вес разряда равным 1. В цикле прибавляем состояние клавиши, умноженное на вес, после чего удваиваем вес.
Первый вариант немного выгоднее, так как не требуется умножение переменных (умножение на константы часто оптимизируется компилятором).
14:10 Хотя элемент с индексом 4 и не существует, тем не менее можно взять его адрес. Для такой начинающей аудитории такое знание бесполезно (с адресной арифметикой им лучше пока не связываться), но потом может пригодиться, когда они начнут описывать свои функции (по массиву быстрее перемещаться, перебирая адреса элементов, а не индексы). Массивы в C/С++ вообще, не совсем то, чем кажутся. В частности индекс массива - не совсем индекс, а скорее смещение (всё от ориентации на системное программирование).
45:37 Строго говоря, в языках C/С++ не существует многомерных массивов. То, что мы воспринимаем как многомерный, является массивом, элементами которого являются массивы. Обычно это не важно, но иногда такой интерпретацией можно с выгодой для себя воспользоваться.
47:25 Можно ещё воспользоваться диапазонами (начало, конец) или ссылками/указателями (тогда строки придётся сохранять отдельно). Но в таком случае удобнее работать с массивами структур.
57:20 ASCII (American Standard Code for Information Interchange) Американский стандартный код для обмена информацией. Он содержит 34 управляющих кода (созначениями 0-32 и127) и 94 символа. Коды со значениями 128 и больше (отрицательные, если символ интерпретируется как имеющий знак) не используются. Часто старший разряд используется для контроля в качестве бита чётности. Вообще-то здесь преподаватель показал незнание предмета - первые 32 кода - управляющие, никакой псевдографики там нет и быть не может. Специальные символы там присутствуют в расширенных кодовых страницах, предназначенных только для IBM-совместимых адаптеров.
Поскольку латинских букв, цифр и нескольких знаков препинания в большинстве случаев недостаточно, чаще используются расширенные таблицы символов, обычно совпадающие в младшей половине с ASCII (иногда несколько символов отличаются), а верхнюю половину заполняющие дополнительными символами. Называть эти расширенные таблицы ASCII, вообще говоря, неправильно. Таких расширений много, между собой они не очень совместимы, поэтому в современных ОС и программах от них отходят в пользу UNICODE.
1:05:05 Без особой необходимости лучше избегать сравнения символа с числом. Кодировки могут меняться. При использовании символьных литералов гораздо проще адаптировать программу под другую кодировку. И вообще, лучше вынести используемые для управления символы в #define.
1:08:05 Даже договариваться не надо. Невозможно с оставить сообщение, которое будучи передано азбукой Морзе, вызвало бы затруднение по определению длительности этого юнита. Обычно удобно выбрать юнит в пределах 1/10-1/5 секунды. Тогда на слух можно воспринимать сообщение по его мелодии. При описании символов в морзянке удобнее использовать не 1 и 2, а 1 и 3, тогда длительность посылки можно получить просто умножая это число на длину юнита. Вообще говоря, нули в конце строк можно не писать, если значений не хватает, компилятор самостоятельно обнулит остаток. Маленькие буквы лучше преобразовать к заглавным, а не пищать на них (задали на дом), остальные лучше просто пропускать. неправильно формируются паузы между буквами и словами. Промежуток между буквами получился длительностью 4 юнита вместо 3 (добавился промежуток между посылками), а между словами 11 юнитов вместо 7 (добавились 4 юнита межбуквенного промежутка).

yvkbfwq
Автор

А можно микрофон который приклеен к столу А то голос диктора тише чем шубуршание по столу))

tiMer
Автор

Еще бы вот с микрофоном разобрались бы

TheWladberlin
Автор

Как лектор, конечно, хрен какой то. Слушать тяжело, 5 мин послушал и выключил

jrvsjsgsohtg