Project ScratchDuinoRobotKit blackline
From scratchduino
(Difference between revisions)
Line 28: | Line 28: | ||
||[https://youtu.be/1VJxK9uEw7A Arduino IDE Video] <br> [http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Black_line_analog1_zigzag.ino Download the sketch] | ||[https://youtu.be/1VJxK9uEw7A Arduino IDE Video] <br> [http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Black_line_analog1_zigzag.ino Download the sketch] | ||
|- | |- | ||
− | |colspan=6| <center>'''<font color="red">Algorithm 2 </font>''' The robot uses '''SEVEN (FIVE, in case of USB)''' numerical values of the line sensor — these are values between <br> two extreme values, obtained when the sensor is positioned above the white area and above the black line. <br> Если датчик показывает значение: <br> '''0''' means the position above the white area. Both motors are on | + | |colspan=6| <center>'''<font color="red">Algorithm 2 </font>''' The robot uses '''SEVEN (FIVE, in case of USB)''' numerical values of the line sensor — these are values between <br> two extreme values, obtained when the sensor is positioned above the white area and above the black line. <br> Если датчик показывает значение: <br> '''0''' means the position above the white area. Both motors are on and in full swing (255), the left-hand motor is rotating forward, the right-hand motor is rotating backward. The robot поворачивается на месте 0.1 секунды <br> '''1''', то это означает положение над белым полем, ближе к чёрной линии. Левый motor включен на полную мощность (255) и крутится вперед, а правый мотор стоит. The robot поворачивается в движении 0,1 секунды <br> '''2''', то это означает положение на границе белого и черного полей, еще ближе к чёрной линии. Левый motor включен на полную мощность (255) и крутится вперед, а правый включен на половине мощности (120) и тоже крутится вперед. The robot едет прямо и немного поворачивается в движении в течение 0,1 секунды <br> '''3''', то это означает положение на границе белого и черного полей, уже на чёрной линии. Левый и правые motors включены на полную мощность (255) и оба крутятся вперед. The robot едет прямо в течение 0,1 секунды <br> Остальные значения (4,5 и 6) являются зеркальными по отношению к 0,1 и 2. <br> The trajectory the robot follows is a smooth curve with long tangent sections, so the robot can travel without slowing down all along. <br> [[File:Line.png]]<br></center> |
|- | |- | ||
|25–26 seconds | |25–26 seconds | ||
Line 75: | Line 75: | ||
|-- | |-- | ||
|- | |- | ||
− | |colspan=6| <center>'''<font color="red">Algorithm 4. - Релейный регулятор </font>''' Задача этого алгоритма - удерживать робота в положении "Оба датчика робота находятся над белой линией", т.е. слева и справа от чёрной линии. Если оба датчика попадают на черную линию, | + | |colspan=6| <center>'''<font color="red">Algorithm 4. - Релейный регулятор </font>''' Задача этого алгоритма - удерживать робота в положении "Оба датчика робота находятся над белой линией", т.е. слева и справа от чёрной линии. Если оба датчика попадают на черную линию, the robot останавливается <br> [[File:2line.png]] </center> |
|- | |- | ||
|XX seconds | |XX seconds | ||
Line 110: | Line 110: | ||
|| When extra powered <br>from the battery, the robot <br>cuts the sharp turning off, <br>because at a speed, <br>the sensors cannot be <br>above the black line both at the same time [https://youtu.be/9rBbZvaQ1FE ROBBO Scratch Video] <br>[http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Black-Line-USB-analog2_and_analog5-RS.sb2 Download the sketch] | || When extra powered <br>from the battery, the robot <br>cuts the sharp turning off, <br>because at a speed, <br>the sensors cannot be <br>above the black line both at the same time [https://youtu.be/9rBbZvaQ1FE ROBBO Scratch Video] <br>[http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Black-Line-USB-analog2_and_analog5-RS.sb2 Download the sketch] | ||
||XX seconds | ||XX seconds | ||
− | ||[https://youtu.be/Dv97KMJkuF0 Arduino IDE Video]. | + | ||[https://youtu.be/Dv97KMJkuF0 Arduino IDE Video]. If the battery is run down, the robot stops at the turn. <br>[http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Test_analog0-analog4.ino Download the sketch - sensor readings] <br> [http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Relay-controller-2-5.ino Download the sketch - простой релейный регулятор + ON/OFF by touch sensors] |
|- | |- | ||
− | |colspan=6| <center>'''<font color="red">Algorithm 5 Пропорциональный регулятор </font>''' Пропорциональный̆ регулятор | + | |colspan=6| <center>'''<font color="red">Algorithm 5 Пропорциональный регулятор </font>''' Пропорциональный̆ регулятор is a device that оказывающее управляющее воздействие на объект ''пропорционально'' его отклонению от заданного состояния. Принцип действия П-регулятора основывается на том, что мы находим значение отклонения от заданного состояния, которое назовем '''error''' и обозначим буквой E. Ошибка – это разница между показаниями датчиков линии: |
− | E = S1 – S2. | + | E = S1 – S2. To obtain the value of controlling action '''U''', we multiply this value by a chosen ratio '''kp''': U = kp⋅E. U is the momentum that we have to '''add''' to one motor and '''extract''' from other motor. Thus, the robot will control its position '''itself''' — that is, for turning or taxing to the required direction. |
Revision as of 14:14, 25 June 2018
Name of author (s)
Description of the ROBBO Scratch project
Trip time | Sketch | Power supply | ROBBO Scratch | Trip time | Arduino IDE |
---|---|---|---|---|---|
two extreme values, obtained when the sensor is positioned above the white area and above the black line. If the sensor shows a value greater than the average, then the robot turns to the left during 0.1 second and goes forward during 0.1 second. If the sensor shows a value less than the average, then the robot turns to the right during 0.1 second and goes forward during 0.1 second. The trajectory the robot follows is a zigzag. | |||||
38 seconds | USB | ROBBO Scratch Video Download the sketch |
30 seconds | To turn the robot on and off, two touch sensors are used: analogRead(A3) – right-hand rear sensor — ON, analogRead(A1) — left-hand rear sensor — OFF Download the sketch | |
13 seconds | The high speed causes numerous errors. At a high speed, the robot cuts off the corners in half the cases. |
Battery 7.4 V | ROBBO Scratch Video Download the sketch |
11 seconds | Arduino IDE Video Download the sketch |
two extreme values, obtained when the sensor is positioned above the white area and above the black line. Если датчик показывает значение: 0 means the position above the white area. Both motors are on and in full swing (255), the left-hand motor is rotating forward, the right-hand motor is rotating backward. The robot поворачивается на месте 0.1 секунды 1, то это означает положение над белым полем, ближе к чёрной линии. Левый motor включен на полную мощность (255) и крутится вперед, а правый мотор стоит. The robot поворачивается в движении 0,1 секунды 2, то это означает положение на границе белого и черного полей, еще ближе к чёрной линии. Левый motor включен на полную мощность (255) и крутится вперед, а правый включен на половине мощности (120) и тоже крутится вперед. The robot едет прямо и немного поворачивается в движении в течение 0,1 секунды 3, то это означает положение на границе белого и черного полей, уже на чёрной линии. Левый и правые motors включены на полную мощность (255) и оба крутятся вперед. The robot едет прямо в течение 0,1 секунды Остальные значения (4,5 и 6) являются зеркальными по отношению к 0,1 и 2. The trajectory the robot follows is a smooth curve with long tangent sections, so the robot can travel without slowing down all along. | |||||
25–26 seconds | ROBBO Scratch хуже, чем ArduiniIDE обрабатывает время движения, поэтому количество диапазонов мы сократили до 5 и упростили движение моторов. Они все время двигаются вперед с разной мощностью |
USB | Download the sketch | 18 seconds | Arduino IDE Video Download the sketch |
12 seconds | At a high speed, the robot проскакивает поворот in 4 of 5 cases. |
Battery 7.4 V | It is important to modify the sketch coded for USB, because at a high speed, the in-between values of the sensor cannot be handled. Объединяем все промежуточные значения Download the sketch |
9.5 seconds | It is important to immediately modify the sketch, coded for a 5V power supply (USB). Заменить время движения робота в поворотах со 100 до 10 milliseconds. А время движения прямо увеличить до 200 milliseconds. It is necessary because at a high speed, the robot rushes too fast along the path section, where the values of the sensors are changing |
The trajectory the robot follows is a line with long straight sections, and the robot can travel without slowing down all along. | |||||
XX seconds | |||||
XX seconds | 8.5 seconds (рекорд трассы!) | Arduino IDE Video Download the sketch |
Описание проезда по чёрной линии с ДВУМЯ датчиками
Сложную трассу с перекрестками, ответвлениями, "зебрами" и инверсными участками с одним датчиком проехать невозможно. При подключении двух датчиков требуется использовани специальных алгоритмов, которые автоматизируют движение робота.
Trip time | Sketch | Power supply | ROBBO Scratch | Trip time | Arduino IDE |
---|---|---|---|---|---|
| |||||
XX seconds | USB | При питании от USB робот останавливается на повороте, т.к. оба датчика оказываются на черной линии Download the sketch |
XX seconds |
analog0 = analogRead(A0); // Got a value from the sensor analog1 | |
10 seconds | 7.4 V | When extra powered from the battery, the robot cuts the sharp turning off, because at a speed, the sensors cannot be above the black line both at the same time ROBBO Scratch Video Download the sketch |
XX seconds | Arduino IDE Video. If the battery is run down, the robot stops at the turn. Download the sketch - sensor readings Download the sketch - простой релейный регулятор + ON/OFF by touch sensors | |
E = S1 – S2. To obtain the value of controlling action U, we multiply this value by a chosen ratio kp: U = kp⋅E. U is the momentum that we have to add to one motor and extract from other motor. Thus, the robot will control its position itself — that is, for turning or taxing to the required direction.
| |||||
XX seconds. | USB | ROBBO Scratch Video |
XX seconds | Download the sketch | |
7.4 V | ROBBO Scratch Video Download the sketch |
XX seconds | Arduino IDE Video Download the sketch | ||
| |||||
USB | |||||
7.4 V | ROBBO Scratch Video Download the sketch |
XX seconds | Arduino IDE Video Download the sketch | ||
| |||||
XX seconds | USB | ||||
XX seconds | Battery 7.4 V | ROBBO Scratch Video Download the sketch |
XX seconds | Arduino IDE Video Download the sketch |