Это старая версия документа!
Подключите к Arduino кнопку и три светодиода (макет светофора) и кнопку. Напиши код обработки нажатия кнопки. Каждый раз нажатием по кнопке светофор будет переключаться в следующее состояние. С красного на желтый, с желтого на зеленый, с зеленого на красный, и т.д.
int pin_0 = 7; int n = 0; void setup() { pinMode(7, OUTPUT); pinMode(6, OUTPUT); pinMode(5, OUTPUT); } void loop() { digitalWrite(pin_0 - n, 1); delay(100); digitalWrite( pin_0 - n, 0); n = (n + 1) % 3; delay(900); }
// switch...case switch (var) { case 1: //do something when var equals 1 break; case 2: //do something when var equals 2 break; default: // if nothing else matches, do the default // default is optional break; }
# Автор: Леднёв Алексей a = [i for i in input().split()] k = len(a)*2-1 s = [[0 for i in range(k)]for i in range(k)] for l in range(len(a)) : for i in range(l,k-l) : for j in range(l,k-l) : if i == l or i == k-(l+1) or j == l or j == k-(l+1) : s[i][j] = a[l] for i in s : print(*i) ''' input 1 2 3 output 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 '''
n = int(input()) r = sum([int(input()) for i in range(n)]) print(f'{["Foo", "Bar"][r<0]} & {["Qux", "Baz"][r%2 == 0]}')
08.10.24
10.10.24
15.10.2024
17.10.2024
22.10.2024
24.10.2024
const int LM_s1 = 10; // левый мотор вход 1 const int LM_s2 = 9; // левый мотор вход 2 const int RM_s1 = 5; // правый мотор вход 1 const int RM_s2 = 6; // правый мотор вход 2 int led_pin = 13; // Укажем пины для подключения УЗ датчика int trigPin = 12; int echoPin = 11; int s_for_obj = 0; // текущее состояние системы int state = 0; // начальное состояние void setup(){ Serial.begin(9600); //правый pinMode(RM_s1, OUTPUT); pinMode(RM_s2, OUTPUT); //левый pinMode(LM_s1, OUTPUT); pinMode(LM_s2, OUTPUT); // УЗ pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); // светодиод pinMode(led_pin, OUTPUT); } int dist() // функция для вычисления расстояния { int t,s; // локальные переменные время, расстояние // установить высокий уровень на пине Trig digitalWrite(trigPin, 1); // подождать 10 мс delay(10/16); digitalWrite(trigPin, 0); // узнаем время t = pulseIn(echoPin, 1); // вычисляем расстояние s = t * 0.034/2; return (s); } void loop() { s_for_obj = dist(); //Serial.println(s_for_obj );// вывод измеренного расстояния в окно сообщений //delay(20/16); Serial.println(state); switch (state) { case 0: // начальное состояние: вперёд до первого препятствия case 2: // после первого поворота: вперёд до второго препятствия if (s_for_obj == 0 || s_for_obj > 68){ moveForward(); } else { stopMotors(); state ++; } break; case 1: // перед первым препятствием: левый поворот case 3: // перед вторым препятствием: левый поворот turnLeft(); delay(2970/16); state ++; stopMotors(); break; case 4: // после второго поворота: прямолинейный путь до остановки moveForward(); delay(23000/16); // время прямолинейного движения до остановки state ++; stopMotors(); break; case 5: // после остановки на площадке: включить светодиод на 4 секунды digitalWrite(led_pin, 1); delay(4000/16); digitalWrite(led_pin, 0); state ++; break; case 6: // stopMotors(); break; default: stopMotors(); break; } } void moveForward() { //Serial.println("up"); digitalWrite(LM_s1, 1); digitalWrite(LM_s2, 0); digitalWrite(RM_s1, 1); digitalWrite(RM_s2, 0); delay(20); } void moveBackward() { //Serial.println("down"); digitalWrite(LM_s1, 0); digitalWrite(LM_s2, 1); digitalWrite(RM_s1, 0); digitalWrite(RM_s2, 1); delay(20); } void turnLeft() { digitalWrite(LM_s1, LOW); digitalWrite(LM_s2, HIGH); digitalWrite(RM_s1, HIGH); digitalWrite(RM_s2, LOW); delay(20); } void turnRight() { digitalWrite(LM_s1, HIGH); digitalWrite(LM_s2, LOW); digitalWrite(RM_s1, LOW); digitalWrite(RM_s2, HIGH); delay(20); } void stopMotors() { digitalWrite(LM_s1, LOW); digitalWrite(LM_s2, LOW); digitalWrite(RM_s1, LOW); digitalWrite(RM_s2, LOW); //delay(20); }
http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html РОБОТ
ml = move_left #Пройти n клеток влево (по умолчанию n = 1) mr = move_right #Пройти n клеток вправо (по умолчанию n = 1) mu = move_up #Пройти n клеток вверх (по умолчанию n = 1) md = move_down #Пройти n клеток вниз (по умолчанию n = 1) wu = wall_is_above #если сверху стена, возвращает True, иначе — False wd = wall_is_beneath #если снизу стена, возвращает True, иначе — False wl = wall_is_on_the_left #если слева стена, возвращает True, иначе — False wr = wall_is_on_the_right #если справа стена, возвращает True, иначе — False fill = fill_cell #Закрасить текущую клетку #cell_is_filled #Возвращает True, если текущая клетка закрашена #mov #Поместить значение v в регистр r
Пример решения первой задачи
#!/usr/bin/python3 from pyrob.api import * @task def task_1_1(): #pass mr(2) # Пройти 2 клетки вправо или: move_right(2) md(1) # Пройти 1 клетку вниз или: move_down(2) if __name__ == '__main__': run_tasks()