Онлайн курс по ардуино на базе простого стартового набора
На данный момент существует большое количество онлайн и оффлайн образовательных программ, курсов, методических материалов по ардуино и на первый план выходит качество этих курсов, а оно не всегда оправдывает ожидания учеников и их родителей. Онлайн курсы обычно бывают малоэффективными в силу их низкой интерактивности. А эффективность оффлайн курсов сильно зависит от квалификации преподавателя, с которой иногда бывают проблемы в силу относительной новизны данного направления по сравнению с другими школьными дисциплинами. Данный курс призван частично решить обе этих проблемы. С одной стороны, он должен оказаться эффективнее существующих онлайн курсов за счет резкого увеличения интерактивности, о чем более подробно будет сказано далее. С другой стороны, увеличение эффективности самого курса немного снижает роль преподавателя, позволяя использовать данные интерактивные курсы в регионах с кадровым дефицитом в сфере преподавания ардуино.
Часть 1. Методика.
Итак, начнем с того, что же такое интерактивность, почему она важна и как достигается в рамках данного курса. Инетерактивный метод обучения предполагает взаимодействие учеников не только с учителем но и между собой. Подробнее можно почитать в Википедии Важность использования интерактивного метода заключается в том, что он эффективнее пассивного метода обучения. Этот факт является общепризнанным, как и тот факт что увеличение интерактивности увеличивает и эффективность процесса образования. Более подробно об этом можно узнать
В этом видео разбирается несколько случаев, когда увеличение интерактивности увеличивает качество образования, а ее уменьшение, соответственно, снижает качество образования.
В этом видео приводится пример, когда преподаватель использует пассивный метод обучения, и этот метод настолько неэффективен, что преподавателя предлагают заменить на видеозапись его же лекции.
Потому что Вк по посещаемости в России опережает всех, а Youtube опережает Одноклассники, Facebook, Instagram и другие. Это позволяет полноценно пользоваться данным курсом большой аудитории русскоязычных пользователей.
Часть 2. Структура курса.
Данный курс рассчитан на один учебный год, состоит из 40 занятий (по одному занятию в неделю). В первой половине курса (20 занятий) даются общие знания о платформе ардуино, ее функциях, возможностях, разбираются простые примеры и принципы ее работы. Также приводятся примеры работы с периферией (датчиками, системами ввода и вывода информации, исполнительными устройствами). Важно, что для прохождения первых 20 занятий достаточно одного стартового набора ардуино, который можно купить в любом китайском интернет-магазине, не переплачивая за бренд на упаковке.
Каждое занятие курса базируется на видеоуроке, содержит краткое текстовое описание занятия, все необходимые схемы и скетчи. При возникновение сложностей при выполнение задания предлагается обращаться с вопросом к автору видеоурока в комментариях к видео, либо найти там же нужный ответ, если вопрос поднимался ранее другими учениками. Всегда есть возможность спросить также у других учеников, оставивших комментарии к видео ранее. Лучше для этого подходит Youtube, но также можно использовать Vk, с поправкой на то, что обращение напрямую к автору видеоурока в Vk может быть ограничена.
Во второй половине курса (занятия с 21 по 40) делается акцент на проектной работе. Занятия также построены на основе видеоуроков. В начале занятия дается список материалов, деталей и оборудования, которое необходимо помимо стартового набора ардуино. Вводная часть закончилась, переходим непосредственно к курсу.
Интерактивный курс по ардуино
Внимательно изучите набор. Какие элементы вам уже знакомы? Попробуйте узнать функции незнакомых деталей у учителя или в поисковике. Цену можно узнать тут. В комплекте обычно нет батарейки, но вместо нее можно использовать блок питания (иногда подходят блоки питания от модемов, роутеров, тв-приставок)
Смотрим первый видеоурок:
Скачать среду разработки можно с официального сайта ардуино Инструкция по установке драйвера для китайской ардуино тут
/* Jeremy's First Program It's awesome! */
void setup()
void loop()
/* Blink Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain. */
// Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13;
// the setup routine runs once when you press reset: void setup() < // initialize the digital pin as an output. pinMode(led, OUTPUT); >
// the loop routine runs over and over again forever: void loop() Также скетч можно найти здесь:
Результат должен получиться такой:
Результатами прохождения задания можно поделиться в группе Вконтакте. Там же можно оставить вопрос по заданию.
/* Arduino Tutorials Episode 2 Switch1 Program Written by: Jeremy Blum */
int switchPin = 8; int ledPin = 13;
void setup()
void loop()
/* Arduino Tutorials Episode 2 Switch Program Written by: Jeremy Blum */
int switchPin = 8; int ledPin = 13; boolean lastButton = LOW; boolean ledOn = false;
void setup()
void loop()
Результат должен получиться примерно такой:
Вопросы и ответы по занятию как обычно к комментариях к видео
//вход ик приёмника к А0 const int IR_PIN = A0;
//создаём объект ик приёмника IRrecv irrecv(IR_PIN); void setup ()
void loop()
В serial monitor будут показываться коды кнопок вашего пульта ДУ так:
Вопросы и ответы как обычно в комментариях к видео
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include <DHT.h> #define dht_apin A0 // Analog Pin sensor is connected to
Serial.begin(9600); delay(500);//Delay to let system boot Serial.println(«DHT11 Humidity & temperature Sensor\n\n»); delay(1000);//Wait before accessing Sensor
void loop()
// the loop routine runs over and over again forever: void loop()
Принцип работы реле:
Демонстрация работы реле:
//http://arduinoworks.com int e = 3; int d = 4; int c = 5; int b = 6; int a = 7; int f = 8; int g = 9; int p= 10; void setup() < pinMode(e, OUTPUT); pinMode(d, OUTPUT); pinMode(c, OUTPUT); pinMode(b, OUTPUT); pinMode(a, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); pinMode(p, OUTPUT); digitalWrite(p,HIGH); > void displayDigit(int digit) void turnOff()
void loop()
Результат должен получиться такой:
Вопросы и ответы как обычно в комментариях к видео
/*Объявим переменные A, B, C, D, E, F, G и DP. И поместим туда значения от 5 до 12: это будут выходы Arduino Uno, с помощью которых мы будем управлять сегментами.*/ int A = 5; int B = 6; int C = 7; int D = 8; int E = 9; int F = 10; int G = 11; int DP = 12; int z,y,w,x; int K1 = 4; int K2 = 3; int K3 = 2; int K4 = 1; /*Объявляем массивы для каждого сегмента индикатора в которых будем хранить его состояние для каждой из цифр, начиная от 0 и заканчивая 9.*/ int a [10] = ; int b [10] = ; int c [10] = ; int d [10] = ; int e [10] = ; int f [10] = ; int g [10] = ; int dp [10] = ;
void setup() < //Назначаем нужные нам пины Arduino выходами pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); pinMode(DP, OUTPUT); pinMode(K1, OUTPUT); pinMode(K2, OUTPUT); pinMode(K3, OUTPUT); pinMode(K4, OUTPUT); >
for( z = 9; z > 1; z-) 1; y-) < for( w = 9; w > 1; w-) 1; x-) > > > >
void Myflesh(int i,int j,int k,int m)
/* This Arduino code for “4-digit-7-segment-led-display» (KYX-5461AS). * This code can display one Number in all 4 digit! * This code can display 4 Numbers each on in specific digit * This code can also make a Number Countdown (Timers). author: Oussama Amri (@amriunix) website: ithepro.com */
//display pins int segA = 5; // >> 11 int segB = 13; // >> 7 int segC = 10; // >> 4 int segD = 8; // >> 2 int segE = 7; // >> 1 int segF = 4; // >> 10 int segG = 11; // >> 5 int segPt = 9; // >> 3 //------------//
//display digit int d1 = 6; // >> 12 int d2 = 3; // >> 9 int d3 = 2; // >> 8 int d4 = 12; // >> 6 //------------//
int delayTime = 5000; //delayTime <Don't change it, if you don't know where is it!>
//=============================================// //init all pin used void setup()
//=============================================// //Write a Number — writeN(1,9,9,0) -> 1990 void writeN(int a,int b,int c,int d)
//=============================================// //Select Wich Digit (selectD) is going to Display (writeL) void selectDwriteL(int d,int l)
switch (l) < // choose a Numbercase 0: zero(); break; case 1: one(); break; case 2: two(); break; case 3: three(); break; case 4: four(); break; case 5: five(); break; case 6: six(); break; case 7: seven(); break; case 8: eight(); break; case 9: nine(); break; case 10: point(); // print a Point break; case 11: none(); // make all them off! break; >
delayMicroseconds(delayTime); // delayTime for nice display of the Number!
//=============================================// void zero() //=============================================// void one() //=============================================// void two() //=============================================// void three() //=============================================// void four() //=============================================// void five() //=============================================// void six() //=============================================// void seven() //=============================================// void eight() //=============================================// void nine() //=============================================// void point() //=============================================// void none()
Обозначения сегментов на дисплеее
Результат будет похож на такой:
На практике этот дисплей применяется очень редко, поскольку занимает почти все выходы ардуино. Удобнее использовать аналогичный дисплей, занимающий только 4 контакта на ардуино: