Project ScratchDuinoRobotKit blackline

From scratchduino
(Difference between revisions)
Jump to: navigation, search
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, in full swing (255), the left-hand motor is rotating forward, the right-hand motor is rotating backward. Робот поворачивается на месте 0.1 секунды <br> '''1''', то это означает положение над белым полем, ближе к чёрной линии. Левый  motor включен на полную мощность (255) и крутится вперед, а правый  мотор стоит. Робот поворачивается в движении 0,1 секунды <br> '''2''', то это означает положение на границе белого и черного полей, еще ближе к чёрной линии. Левый  motor включен на полную мощность (255) и крутится вперед, а правый  включен на половине  мощности (120) и тоже крутится вперед. Робот едет прямо и немного поворачивается в движении в течение 0,1 секунды <br> '''3''', то это означает положение на границе белого и черного полей, уже на  чёрной линии. Левый  и правые motors включены на полную мощность (255) и оба крутятся вперед. Робот едет прямо в течение 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>
+
|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>''' Задача этого алгоритма - удерживать робота в положении "Оба датчика робота находятся над белой линией", т.е. слева и справа от чёрной линии. Если оба датчика попадают на черную линию, то робот останавливается  <br> [[File:2line.png]] </center>
+
|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]. Если батарейка садится, робот встает на повороте. <br>[http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Test_analog0-analog4.ino Download the sketch - показания датчиков] <br> [http://wiki.robbo.ru/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Relay-controller-2-5.ino Download the sketch - простой релейный регулятор + вкл/выкл датчиками касания]  
+
||[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>''' Пропорциональный̆ регулятор — это устройство, оказывающее управляющее воздействие на объект ''пропорционально'' его отклонению от заданного состояния. Принцип действия П-регулятора основывается на том, что мы находим значение отклонения от заданного состояния, которое назовем '''ошибкой''' и обозначим буквой E. Ошибка – это разница между показаниями датчиков линии:
+
|colspan=6| <center>'''<font color="red">Algorithm 5 Пропорциональный регулятор </font>''' Пропорциональный̆ регулятор is a device that оказывающее управляющее воздействие на объект ''пропорционально'' его отклонению от заданного состояния. Принцип действия П-регулятора основывается на том, что мы находим значение отклонения от заданного состояния, которое назовем '''error''' и обозначим буквой E. Ошибка – это разница между показаниями датчиков линии:
E = S1 – S2. Умножаем это значение на выбранный нами пропорциональный коэффициент kp и получаем значение управляющего воздействия U: U = kp⋅E. Управляющее значение – это значение мощности, которое нам необходимо '''прибавить''' к мощности одного мотора и '''отнять''' от мощности другого. Таким образом, робот будет '''сам регулировать''' свое положение – то есть совершить поворот или подруливание в нужную сторону.
+
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)

User:Elena Vostrikova

Description of the ROBBO Scratch project

Trip time Sketch Power supply ROBBO Scratch Trip time Arduino IDE
Algorithm 1. The robot uses ONE numerical value of the line sensor — the AVERAGE between
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.
Zigzag.png
38 seconds Black line analog1 code1.png 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
Algorithm 2 The robot uses SEVEN (FIVE, in case of USB) numerical values of the line sensor — these are values between
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.
Line.png
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
Algorithm 3 The robot uses EIGHT numerical values of the line sensor — these are values between two extreme values, obtained when the sensor is positioned above the white area and above the black line.
The trajectory the robot follows is a line with long straight sections, and the robot can travel without slowing down all along.
Line-line.png
XX seconds
XX seconds 8.5 seconds (рекорд трассы!) Arduino IDE Video
Download the sketch

Описание проезда по чёрной линии с ДВУМЯ датчиками

Сложную трассу с перекрестками, ответвлениями, "зебрами" и инверсными участками с одним датчиком проехать невозможно. При подключении двух датчиков требуется использовани специальных алгоритмов, которые автоматизируют движение робота.


XX seconds XX seconds XX seconds
Trip time Sketch Power supply ROBBO Scratch Trip time Arduino IDE
Algorithm 4. - Релейный регулятор Задача этого алгоритма - удерживать робота в положении "Оба датчика робота находятся над белой линией", т.е. слева и справа от чёрной линии. Если оба датчика попадают на черную линию, the robot останавливается
2line.png
XX seconds Eng-relay-controller-RS.png USB При питании от USB робот
останавливается на повороте,
т.к. оба датчика оказываются
на черной линии Download the sketch
XX seconds
analog0 = analogRead(A0); // Got a value from the sensor analog1
analog4 = analogRead(A4); // Got a value from the sensor analog4
limit = 50;
time1 = 200;
power = 255;

//if both sensors "see" white, the robot moves straight:
if (analog0 < limit && analog4 < limit) {
move_robbo (power, power, 0, 0, time1);
}
//if the left sensor "sees" black, the robot turns to the left:
if (analog0 > limit && analog4 < limit) {
move_robbo (0, power, 0, 0, time1);
}
//if the right sensor "sees" black, the robot turns to the right:
if (analog0 < limit && analog4 > limit) {
move_robbo (power, 0, 0, 0, time1);
}
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
Algorithm 5 Пропорциональный регулятор Пропорциональный̆ регулятор is a device that оказывающее управляющее воздействие на объект пропорционально его отклонению от заданного состояния. Принцип действия П-регулятора основывается на том, что мы находим значение отклонения от заданного состояния, которое назовем error и обозначим буквой E. Ошибка – это разница между показаниями датчиков линии:

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
Algorithm 6 Пропорционально-дифференциальный регулятор
USB
7.4 V ROBBO Scratch Video
Download the sketch
XX seconds Arduino IDE Video
Download the sketch
Algorithm 7 ПИД-регулятор
XX seconds USB
XX seconds Battery 7.4 V ROBBO Scratch Video
Download the sketch
XX seconds Arduino IDE Video
Download the sketch
Personal tools
Namespaces

Variants
Actions
Navigation
Tools
Print/export