Дан целосисленный массив из 16 элементов. 1) Элементы массива принимают целочисленные значения от -3 до18 и выводятся на экран в строку через пробел... 2) В массиве найти максимальный элемент с чётным индексом.
3) Вывести индекс элементов, запись которых заканчивается цифрой 6. Если таких элементов нет, сообщить об их отсутствии.
4) Произведение положительных элементов.
Датчик сөзінің мәнін, түс датчигінің түс, дыбыс, жарық-сәуле, температура, жылдамдықты өлшейтінін біледі; Датчиктердің қызметіне қарай 4 түрге бөлінетінін анықтайды.
Роботтың тірі организм принциптеріне негізделіп жасалатын автоматты құрылғы екенін біледі. .
Оқушылардың басым бөлігі: Түс датчигіндегі жарық деңгейін анықтайтын 8 түрлі түстің кодын біледі. Негізгі оқу-жаттығу роботының атын біледі;
Кейбір оқушылар: Түс датчигінің екі түрге электронды және механикалық болып бөлінетінін, оның үш режимін: Түс режимін, Шағылысқан жарық жарықтылығы, Сыртқы жарық жарықтылығы режимдерін біледі. LEGO MINDSTORMS EDUCATION EV3 программасын аша алады. Программа мәзірінен Нұсқаулықпен (Инструкция) танысып, роботтың құрастырылуын біледі.
Скетч программы:
//Скетч для простого выталкивания соперника с ринга
//робот сразу после старта поворачивает на 135 градусов
//и если не находит соперника, то крутится направо
//подключаем «ноги»
//определяем соответствие контактов микроконтролера
//и контакам драйвера двигателей TB6612FNG
#define PWMA 3
#define AIN1 1
#define AIN2 0
#define BIN1 2
#define BIN2 7
#define PWMB 9
//включаем «глаза» для поиска соперника
//объявляем переменные, содержащие значения
//аналоговых портов микроконтроллера, подключаемых
//к ИК датчикам Sharp
int front_eye = A0;
int left_eye = A1;
int right_eye = A8;
//включем «глаза» для определения, на ринге мы находимся
//или выехали за него
//объявляем переменные, содержащие значения
//аналоговых портов, подключенных к датчикам
//QTR-1A
int left_bw = A6;
int right_bw = A11;
//процедура инициации портов
void setup()
{
//инициируем переменные моторов
pinMode(PWMA,OUTPUT);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(PWMB,OUTPUT);
pinMode(BIN1,OUTPUT);
pinMode(BIN2,OUTPUT);
//ждем 5 секунд
delay(5000);
// делаем повопрот на 135 градусов
//левый мотор по направлению движения робота
//(против часовой стрелки)
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 255);
//Правый мотор против направления движения робота
//(против часовой стрелки)
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, 255);
delay(100); // длительность задержки определяет
//угол поворота робота
//и подбирается экспериментально в зависимости
//от веса робота, моторов и колес
//останавливаем моторы
digitalWrite(AIN1,HIGH);
digitalWrite(AIN2,HIGH);
digitalWrite(PWMA,LOW);
digitalWrite(BIN1,HIGH);
digitalWrite(BIN2,HIGH);
digitalWrite(PWMB,LOW);
delay(10);
}
void loop()
{
//проверяем наличие препятствия фронтальным датчиком
//на расстоянии ближе 40 см
//(значение analogRead() — 333 по таблице)
if(analogRead(front_eye) > 333){
//левый мотор по направлению движения робота
//(против часовой стрелки)
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 255);
//Правый мотор по направления движения робота
//(по часовой стрелке)
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, 255);
delay(100); // длительность задержки 0.1 секунда
}
else if(analogRead(left_eye) > 333){// если соперник
//не найден спереди то проверяем слева
//если соперник слева найден поворачиваем налево
//на 90 градусов
//левый мотор против направлению движения
//робота (по часовой стрелки)
digitalWrite(AIN1, HIGH);
digitalWrite(AIN2, LOW);
analogWrite(PWMA, 255);
//Правый мотор по направлению движения
//робота (по часовой стрелки)
digitalWrite(BIN1, HIGH);
digitalWrite(BIN2, LOW);
analogWrite(PWMB, 255);
delay(60); // длительность задержки
//определяет угол поворота робота
//и подбирается экспериментально в
//зависимости от веса робота, моторов и колес
//левый мотор по направлению движения робо//(против часовой стрелки)
digitalWrite(AIN1, LOW);
digitalWrite(AIN2, HIGH);
analogWrite(PWMA, 255);
//Правый мотор против направления движения робота
//(против часовой стрелки)
digitalWrite(BIN1, LOW);
digitalWrite(BIN2, HIGH);
analogWrite(PWMB, 255);
delay(130); // длительность задержки определяет
//угол поворота робота
//и подбирается экспериментально в зависимости
//от веса робота, моторов и колес
//конец цикла loop — идем на начало цикла и проверяем расстояние спереди
Все операторы в данном скетче нами уже изучались, поэтому трудностей в его понимании, надеюсь, не возникнет.
Объяснение: