Сборка и программирование робота-манипулятора.
учебно-методическое пособие
Сборка и программирование робота-манипулятора.
Скачать:
Вложение | Размер |
---|---|
Сборка и программирование робота-манипулятора. | 691.4 КБ |
Предварительный просмотр:
ТЕМА: Сборка и программирование робота-манипулятора.
ЦЕЛЬ ЗАНЯТИЯ:
- Формирование у детей интереса и желания заниматься конструированием роботов на примере конкретного изделия.
- Развитие алгоритмического мышления.
- Развитие навыков программирования.
- Развитие конструкторских навыков.
ВОЗРАСТ: 14-17 лет
ЗАДАЧИ:
- Обучающие: дать общее представление о схемотехнике, познакомить обучающихся с характеристиками различных электронных компонентов, научить сборке по схеме.
- Развивающие: содействовать развитию познавательного интереса, творческих способностей, алгоритмического мышления и начальные знания о программировании.
- Воспитывающие:
содействовать воспитанию умения принимать решение;
воспитывать собранность, организованность, аккуратность;
применять полученные знания и умения.
ОБОРУДОВАНИЕ И МАТЕРИАЛЫ:
- Arduino UNO
- Набор механических деталей для сборки робота - манипулятора
- Сервоприводы
- Резисторы переменные
ДИДАКТИЧЕСКОЕ ОСНАЩЕНИЕ:
- Технический рисунок изготавливаемой конструкции
- Схема электрическая принципиальная
- Схема сборки манипулятора
- Набор деталей
МЕТОДЫ:
Словесные – фронтальная беседа.
Наглядные – демонстрация образцов, технического рисунка
Игровые – игра в сборочный цех завода.
Практические – самостоятельная работа с набором готовых деталей. Самоконтроль и оценка выполняемой работы.
Репродуктивные – изготовление схемы по образцу.
ПЛАН ЗАНЯТИЯ:
Организационная часть. ( 3 мин.)
Знакомство с новым материалом. (15 мин.)
Практическая работа. (30 мин. )
Закрепление пройденного. (15 мин.)
Подведение итогов. (10 мин. )
ХОД ЗАНЯТИЯ:
1.Организационная часть.
- Обсуждение плана работы
- Подготовка рабочего места, техника безопасности
2.Знакомство с новым материалом.
Перед началом разработки алгоритма работы, обсуждаем идею проекта, для упрощения применяем принцип аналогий: существующий какого-либо аналогичного устройства, и с опорой на наблюдения, составляем блок-схему.
Обсуждаем программную реализацию с опорой на лекционный материал в форме вопрос-ответ и диалога.
3.Практическая работа.
- Составляем блок-схему в тетради, обсуждая различные варианты реализации, давая поддержку инициативе ученика.
Блок схема выглядит следующим образом:
- Реализация схемы на макетной плате:
- При успешном выполнении проекта, ученику предлагается модернизировать самостоятельно схему, добавив дополнительные компоненты.
/*
* serva 4 = 0(открытый)
* sreva2 = 180 serva3 = 0
* serva1 = 90
* serva4 = 80(закрытый)
*/
#include
#define joyX A0 //для серва 1
#define joyY A1 //для серва 3
#define joyZ A2 //для серва 2
#define BUTTON 0
Servo servo1; // объявляем переменную servo типа "servo1"
Servo servo2; // объявляем переменную servo типа "servo2"
Servo servo3; // объявляем переменную servo типа "servo3"
Servo servo4; // объявляем переменную servo типа "servo4"
boolean buttonWasUp = true;
int angl=90, angl_3=0, angl_2=70;
void setup() // процедура setup
{
servo1.attach(11); // привязываем сервопривод к аналоговому выходу 11
servo2.attach(10);// привязываем сервопривод к аналоговому выходу 10
servo3.attach(9);// привязываем сервопривод к аналоговому выходу 9
servo4.attach(6);// привязываем сервопривод к аналоговому выходу 8
Servo_NULL();
delay(1000);
Serial.begin(9600);
pinMode(BUTTON, INPUT);
}
void loop() // процедура loop
{
int val_1 = (analogRead(joyX)/64)-7;
int val_2 = (analogRead(joyZ)/64)-7;
int val_3 = (analogRead(joyY)/64)-7;
int but = digitalRead(BUTTON);
if (digitalRead(BUTTON) == LOW )
{
buttonWasUp = !buttonWasUp;
delay(20);
}
if(val_1 != 0 && val_2 != 0 && val_3 != 0)
{
task();
}
if (val_1 > 1)
{
angl=angl+abs(val_1);
}
else {
if (val_1 < 1) {
angl=angl-abs(val_1);}
}
if (angl < 10) angl_1 = 10;
if (angl > 170) angl_1 = 170;
/*
int spd = 50;
if (val != 0)
{
spd = 200/abs(val);
}
delay(spd);
if (val_3 > 1)
{
angl_3=angl_3+abs(val_3);
}
else {
if (val_3 < 1) {
angl_3=angl_3-abs(val_3);}
}
if (angl_3 < 10) angl_3 = 10;
if (angl_3 > 170) angl_3 = 170;
if (val_2 >= 1)
{
angl_2=angl_2+abs(val_2);
}
else {
if (val_2 <= 1)
{
servo2.write(angl_2);
angl_2=angl_2-abs(val_2);}
}
if (angl_2 < 10) angl_2 = 10;
if (angl_2 > 170) angl_2 = 170;
Serial.print("*******************************\n");
Serial.print("Angle1: ");
Serial.println(angl_1);
Serial.print("Angle2: ");
Serial.println(angl_2);
Serial.print("Angle3: ");
Serial.println(angl_3);
delay(500);
//////////////////////////////////////////////////
servo1.write(angl_1);
servo2.write(angl_2);
servo3.write(angl_3);
if (buttonWasUp == true)
{
servo4.write(10);
}
else {
servo4.write(80);
}
/////////////////////////////////////////////////////////
}
void Servo_NULL()
{
servo1.write(90); // ставим угол поворота под 90
servo2.write(70); // ставим угол поворота под 0
servo3.write(0); // ставим угол поворота под 0
servo4.write(80); // ставим угол поворота под 0
}
int set_angl(int UGL)
{
while(angl_3 > 1)
{
angl_3--;
servo3.write(angl_3); // ставим угол поворота под 0
delay(20);
}
while(angl_2 < 179)
{
angl_2++;
servo2.write(angl_2); // ставим угол поворота под 0
delay(20);
}
servo4.write(80); // ставим угол поворота под 0
while(angl < 90)
{
angl++;
servo1.write(angl); // ставим угол поворота под 0
delay(20);
}
}
void task()
{
while(angl<115)
{
angl++;
servo1.write(angl); // ставим угол поворота под 0
delay(20);
}
while(angl_3 <= 40)
{
angl_3++;
servo3.write(angl_3); // ставим угол поворота под 0
delay(20);
}
servo4.write(0); // ставим угол поворота под 0
while(angl_2 < 110)
{
angl_2++;
servo2.write(angl_2); // ставим угол поворота под 0
delay(20);
}
for( angl_3 = 40; angl_3 <= 170; angl_3++)
{
servo3.write(angl_3);
delay(20);
}
for( angl_2 = 110; angl_2 >= 90; angl_2--){
servo2.write(angl_2);
delay(20);
}
for(angl = 115; angl >= 70; angl--){
servo1.write(angl);
delay(20);
}
for( angl_2 = 90; angl_2 < 110; angl_2++){
servo2.write(angl_2); // ставим угол поворота под 0
delay(20);
}
for(angl_3 = 170; angl_3 >= 40; angl_3--){
servo3.write(angl_3); // ставим угол поворота под 0
delay(20);
}
for(angl_3 = 40; angl_3 >= 0; angl_3--){
servo3.write(angl_3); // ставим угол поворота под 0
delay(20);
}
for( angl_2 = 110; angl_2 < 180; angl_2++){
servo2.write(angl_2); // ставим угол поворота под 0
delay(20);
}
for(angl = 115; angl >= 90; angl--){
servo1.write(angl);
delay(20);
}
}
4.Закрепление пройденного.
- По заданию преподавателя ученику дается задание на изменение и модернизации проекта.
5. Подведение итогов.
- При успешном выполнении заданий ученик полностью усваивает основы программирования и схемотехники.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ:
«Основы программирования микроконтроллеров» набор «Амперка»
Макаров И. М., Топчеев Ю. И. Робототехника: История и перспективы. — М.: Наука; Изд-во МАИ, 2003. — 349 с. — (Информатика: неограниченные возможности и возможные ограничения).
Технология. Робототехника, Копосов Д.Г. Бином. Лаборатория знаний, 2017 г.
Внеурочная деятельность школьников. Методический конструктор: пособие для учителя / Д.В. Григорьев, П.В. Степанов. – М.: Просвещение, 2010.
По теме: методические разработки, презентации и конспекты
Тематическое планирование по курсу «Основы алгоритмизации и программирования» в среде программирования VBA
Тематическое планирование по курсу «Основы алгоритмизации и программирования» в среде программирования VBA Основы алгоритмизации и программирование1,2(4 час)Повт. Программное об...
Практические задания по МДК "Системное программирование" для специальности "Программирование в компьютерных систем""
ПРАКТИЧЕСКИЕ ЗАДАНИЯ ДЛЯ МДК «Системное программирование» ...
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования» Для специальности 230115 «Программирование в компьютерных системах»
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования»...
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования» Для специальности 230115 «Программирование в компьютерных системах»
УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ По дисциплине «Основы программирования»...
Практическое занятие№16. Неполная разборка и сборка автомата. Отработка нормативов по неполной разборке и сборке автомата.
Практическое занятие№16. Неполная разборка и сборка автомата. Отработка нормативов по неполной разборке и сборке автомата. Михаил Тимофеевич Калашников, всемирно известный конструктор стрелкового...
Методическая разработка открытого занятия «Сборка и программирование модели "Богомол"»
Цель: повторить с обучающимися среду программирования, командным меню, инструментами программы и основные детали Lego и собрать и запрограммировать модель "Богомол"...
сборка и программирование робота - пожарника
сборка и программирование робота - пожарника...