<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FRobotDiscoBot</id>
	<title>Arduino:Примеры/RobotDiscoBot - История изменений</title>
	<link rel="self" type="application/atom+xml" href="http://wikihandbk.com/ruwiki/index.php?action=history&amp;feed=atom&amp;title=Arduino%3A%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B%2FRobotDiscoBot"/>
	<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;action=history"/>
	<updated>2026-04-06T05:40:54Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;diff=8495975&amp;oldid=prev</id>
		<title>EducationBot в 08:36, 8 июля 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;diff=8495975&amp;oldid=prev"/>
		<updated>2023-07-08T08:36:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:36, 8 июля 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l246&quot;&gt;Строка 246:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 246:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Навигационная таблица/Портал/Arduino}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Пример программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Категория:Примеры программирования Arduino]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihandbkcom:diff::1.12:old-7735746:rev-8495975 --&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;diff=7735746&amp;oldid=prev</id>
		<title>EducationBot в 08:33, 20 мая 2023</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;diff=7735746&amp;oldid=prev"/>
		<updated>2023-05-20T08:33:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Предыдущая версия&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Версия от 12:33, 20 мая 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot;&gt;Строка 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Показав экран загрузки, робот начнет танцевать под музыку и мигать на дисплее разными цветами&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Показав экран загрузки, робот начнет танцевать под музыку и мигать на дисплее разными цветами&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Переключать музыку можно при помощи кнопок '''«Влево»''' и '''«Вправо»'''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Переключать музыку можно при помощи кнопок '''«Влево»''' и '''«Вправо»'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Если танцевальные движения робота вас не устраивают, найдите в скетче строчку  &amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;char danceScript[]=&quot;S4L1R1S2F1B1S1\0&quot;&amp;lt;/syntaxhighlight&amp;gt; и измените ее. Вся эта абракадабра расшифровывается следующим образом:  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Если танцевальные движения робота вас не устраивают, найдите в скетче строчку  &amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;char danceScript[]=&quot;S4L1R1S2F1B1S1\0&quot;&amp;lt;/syntaxhighlight&amp;gt; и измените ее. Вся эта абракадабра расшифровывается следующим образом:  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''«S»''' – стоп,  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* '''«S»''' – стоп,  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Строка 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Код==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&quot; enclose=&quot;div&lt;/del&gt;&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/* Диско-бот&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/* Диско-бот&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikihandbkcom:diff::1.12:old-21276:rev-7735746 --&gt;
&lt;/table&gt;</summary>
		<author><name>EducationBot</name></author>
	</entry>
	<entry>
		<id>http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;diff=21276&amp;oldid=prev</id>
		<title>Myagkij: Замена текста — «&lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot;&gt;» на «&lt;syntaxhighlight lang=&quot;c&quot; line=&quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&quot; enclose=&quot;div&quot;&gt;»</title>
		<link rel="alternate" type="text/html" href="http://wikihandbk.com/ruwiki/index.php?title=Arduino:%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B/RobotDiscoBot&amp;diff=21276&amp;oldid=prev"/>
		<updated>2016-12-14T04:03:04Z</updated>

		<summary type="html">&lt;p&gt;Замена текста — «&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot;&amp;gt;» на «&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Arduino панель перехода}}&lt;br /&gt;
{{Перевод от Сubewriter}}&lt;br /&gt;
{{Myagkij-редактор}}&lt;br /&gt;
&lt;br /&gt;
==Диско-бот&amp;lt;ref&amp;gt;[https://www.arduino.cc/en/Tutorial/RobotDiscoBot Arduino - Disco bot]&amp;lt;/ref&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Этот скетч демонстрирует, как при помощи робота проигрывать мелодии, основанные на звуковых файлах.&lt;br /&gt;
&lt;br /&gt;
При помощи кнопок, находящихся на верхней (контрольной) плате, вы сможете выбирать между тремя мелодиями, созданными специально для '''Arduino Robot'''. Выбрав понравившуюся мелодию, поставьте робота на пол, после чего он с удовольствием вам станцует.&lt;br /&gt;
&lt;br /&gt;
==Необходимое оборудование==&lt;br /&gt;
&lt;br /&gt;
* '''Arduino Robot''';&lt;br /&gt;
* Ваш лучший танцевальный костюм;&lt;br /&gt;
&lt;br /&gt;
==Инструкция==&lt;br /&gt;
&lt;br /&gt;
# Загрузите скетч, отключите '''USB''' и включите питание&lt;br /&gt;
# Поставьте робота на пол&lt;br /&gt;
# Показав экран загрузки, робот начнет танцевать под музыку и мигать на дисплее разными цветами&lt;br /&gt;
# Переключать музыку можно при помощи кнопок '''«Влево»''' и '''«Вправо»'''&lt;br /&gt;
# Если танцевальные движения робота вас не устраивают, найдите в скетче строчку  &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;char danceScript[]=&amp;quot;S4L1R1S2F1B1S1\0&amp;quot;&amp;lt;/syntaxhighlight&amp;gt; и измените ее. Вся эта абракадабра расшифровывается следующим образом: &lt;br /&gt;
&lt;br /&gt;
* '''«S»''' – стоп, &lt;br /&gt;
* '''«L»''' – поворот влево, &lt;br /&gt;
* '''«R»''' – поворот вправо,  &lt;br /&gt;
* '''«F»''' – движение вперед, &lt;br /&gt;
* '''«B»''' – движение назад. &lt;br /&gt;
&lt;br /&gt;
Номер возле каждой команды означает то, сколько она будет длиться. То есть &lt;br /&gt;
&lt;br /&gt;
* '''«1»''' – это 500 миллисекунд, &lt;br /&gt;
* '''«2»''' – 1000 миллисекунд, &lt;br /&gt;
* '''«3»''' – 1500 миллисекунд и т.д.&lt;br /&gt;
&lt;br /&gt;
==Пробуем==&lt;br /&gt;
&lt;br /&gt;
[[File:LottieLemon_illustration_Disco_780.png]]&lt;br /&gt;
&lt;br /&gt;
Выбираем мелодию&lt;br /&gt;
&lt;br /&gt;
==Код==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line=&amp;quot;GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS&amp;quot; enclose=&amp;quot;div&amp;quot;&amp;gt;&lt;br /&gt;
/* Диско-бот&lt;br /&gt;
&lt;br /&gt;
Этот скетч демонстрирует, как у Arduino Robot работает функция&lt;br /&gt;
проигрывания мелодий – у робота припасены для вас пара треков&lt;br /&gt;
зажигательной 8-битной музыки. Музыка будет проигрываться, когда&lt;br /&gt;
робот будет во включенном состоянии. Кроме того, он покажет вам пару&lt;br /&gt;
интересных танцевальных движений. &lt;br /&gt;
&lt;br /&gt;
Цепь:&lt;br /&gt;
* Arduino Robot&lt;br /&gt;
&lt;br /&gt;
Создан 1 мая 2013 Х. Янгом (X. Yang),&lt;br /&gt;
модифицирован 12 мая 2013 Д. Куартиллье (D. Cuartielles).&lt;br /&gt;
&lt;br /&gt;
Этот код не защищен авторским правом.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;ArduinoRobot.h&amp;gt; // подключаем библиотеку робота&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
#include &amp;lt;SPI.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/* &lt;br /&gt;
Танцевальные «движения»:&lt;br /&gt;
S: стоп&lt;br /&gt;
L: поворот влево&lt;br /&gt;
R: поворот вправо&lt;br /&gt;
F: движение вперед&lt;br /&gt;
B: движение назад&lt;br /&gt;
&lt;br /&gt;
Цифра после каждой команды означает то, как долго будет длиться то или иное «движение». «1» – это полсекунды, «2» – секунда и т.д.&lt;br /&gt;
&lt;br /&gt;
«\0» означает конец строки.&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
char danceScript[] = &amp;quot;S4L1R1S2F1B1S1\0&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
int currentScript = 0; // то, на каком шаге мы находимся&lt;br /&gt;
&lt;br /&gt;
int currentSong = 0; // отслеживаем текущую песню&lt;br /&gt;
static const int SONGS_COUNT = 3; // количество песен&lt;br /&gt;
&lt;br /&gt;
// массив, в котором будут храниться песни:&lt;br /&gt;
char musics[][11] = {&lt;br /&gt;
  &amp;quot;melody.sqm&amp;quot;,&lt;br /&gt;
  &amp;quot;menu.sqm&amp;quot;,&lt;br /&gt;
  &amp;quot;chase.sqm&amp;quot;,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Переменные для неблокирующей задержки:&lt;br /&gt;
long waitFrom;&lt;br /&gt;
long waitTime = 0;&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  // Инициализируем робота, SD-карту, дисплей и динамик:&lt;br /&gt;
  Robot.begin();&lt;br /&gt;
  Robot.beginSpeaker();&lt;br /&gt;
  Robot.beginSD();&lt;br /&gt;
  Robot.beginTFT();&lt;br /&gt;
&lt;br /&gt;
  // Рисуем на экране картинки «lg0.bmp» и «lg1.bmp»:&lt;br /&gt;
  Robot.displayLogos();&lt;br /&gt;
&lt;br /&gt;
  // Печатаем на экране инструкции:&lt;br /&gt;
  Robot.text(&amp;quot;1. Use left and\n right key to switch\n song&amp;quot;, 5, 5);  //  &amp;quot;Для переключения\n песни используем\n кнопки «Влево» \n и «Вправо»&amp;quot;&lt;br /&gt;
  Robot.text(&amp;quot;2. Put robot on the\n ground to dance&amp;quot;, 5, 33);  //  &amp;quot;Чтобы робот начал\n танцевать, поставьте\n его на землю&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  // Ждем несколько секунд:&lt;br /&gt;
  delay(3000);&lt;br /&gt;
&lt;br /&gt;
  setInterface(); // показываем текущую песню&lt;br /&gt;
  play(0);  // проигрываем первую песню в массиве&lt;br /&gt;
&lt;br /&gt;
  resetWait();  // инициализируем неблокирующую задержку&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  // Считываем состояния кнопок робота:&lt;br /&gt;
  int key = Robot.keyboardRead();&lt;br /&gt;
&lt;br /&gt;
  // Кнопки «Вправо» и «Влево» переключают на следующую песню:&lt;br /&gt;
  switch (key) {&lt;br /&gt;
    case BUTTON_UP:&lt;br /&gt;
    case BUTTON_LEFT:&lt;br /&gt;
      play(-1);  // проигрываем предыдущую песню&lt;br /&gt;
      break;&lt;br /&gt;
    case BUTTON_DOWN:&lt;br /&gt;
    case BUTTON_RIGHT:&lt;br /&gt;
      play(1);  // проигрываем следующую песню&lt;br /&gt;
      break;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Танцуем!&lt;br /&gt;
  runScript();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// «Танцевальная» функция:&lt;br /&gt;
void runScript() {&lt;br /&gt;
  if (!waiting()) { // если робот выполнил предыдущую последовательность действий&lt;br /&gt;
    // Берем следующие две команды: &lt;br /&gt;
    parseCommand(danceScript[currentScript], danceScript[currentScript + 1]);&lt;br /&gt;
    currentScript += 2;&lt;br /&gt;
    if (danceScript[currentScript] == '\0') { // если добрались до конца массива&lt;br /&gt;
      currentScript = 0;  // начинаем еще раз с самого начала&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Используем этот таймер вместо стандартной задержки:&lt;br /&gt;
boolean waiting() {&lt;br /&gt;
  if (millis() - waitFrom &amp;gt;= waitTime) {&lt;br /&gt;
    return false;&lt;br /&gt;
  } else {&lt;br /&gt;
    return true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Как долго будем ждать:&lt;br /&gt;
void wait(long t) {&lt;br /&gt;
  resetWait();&lt;br /&gt;
  waitTime = t;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Сбрасываем таймер:&lt;br /&gt;
void resetWait() {&lt;br /&gt;
  waitFrom = millis();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Считываем информацию о направлении и продолжительности «движений»:&lt;br /&gt;
void parseCommand(char dir, char duration) {&lt;br /&gt;
  // Трансформируем скрипт в действие:&lt;br /&gt;
  switch (dir) {&lt;br /&gt;
    case 'L':&lt;br /&gt;
      Robot.motorsWrite(-255, 255);&lt;br /&gt;
      break;&lt;br /&gt;
    case 'R':&lt;br /&gt;
      Robot.motorsWrite(255, -255);&lt;br /&gt;
      break;&lt;br /&gt;
    case 'F':&lt;br /&gt;
      Robot.motorsWrite(255, 255);&lt;br /&gt;
      break;&lt;br /&gt;
    case 'B':&lt;br /&gt;
      Robot.motorsWrite(-255, -255);&lt;br /&gt;
      break;&lt;br /&gt;
    case 'S':&lt;br /&gt;
      Robot.motorsStop();&lt;br /&gt;
      break;&lt;br /&gt;
  }&lt;br /&gt;
  // Если хотите поменять ритм танца, поменяйте цифру «500» на какую-нибудь еще:&lt;br /&gt;
  wait(500 * (duration - '0'));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Отображаем на дисплее название песни:&lt;br /&gt;
void setInterface() {&lt;br /&gt;
  Robot.clearScreen();&lt;br /&gt;
  Robot.stroke(0, 0, 0);&lt;br /&gt;
  Robot.text(musics[0], 0, 0);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Отображаем следующую песню:&lt;br /&gt;
void select(int seq, boolean onOff) {&lt;br /&gt;
  if (onOff) { // выбираем&lt;br /&gt;
    Robot.stroke(0, 0, 0);&lt;br /&gt;
    Robot.text(musics[seq], 0, 0);&lt;br /&gt;
  } else { // отменяем выбор&lt;br /&gt;
    Robot.stroke(255, 255, 255);&lt;br /&gt;
    Robot.text(musics[seq], 0, 0);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Проигрываем выбранную песню:&lt;br /&gt;
void play(int seq) {&lt;br /&gt;
  select(currentSong, false);&lt;br /&gt;
  if (currentSong &amp;lt;= 0 &amp;amp;&amp;amp; seq == -1) {&lt;br /&gt;
    currentSong = SONGS_COUNT - 1; // переходим к последней песне&lt;br /&gt;
  } else if (currentSong &amp;gt;= SONGS_COUNT - 1 &amp;amp;&amp;amp; seq == 1) { &lt;br /&gt;
    currentSong = 0;  // переходим к первой песне&lt;br /&gt;
  } else {&lt;br /&gt;
    currentSong += seq;  // следующая песня&lt;br /&gt;
  }&lt;br /&gt;
  Robot.stopPlayFile();&lt;br /&gt;
  Robot.playFile(musics[currentSong]);&lt;br /&gt;
  select(currentSong, true);  // отображаем на экране название текущей песни&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Изучаем дальше==&lt;br /&gt;
&lt;br /&gt;
Мелодии создаются при помощи трекера и хранятся на SD-карте. &lt;br /&gt;
О том, как написать свой собственный трек, можно прочесть [https://github.com/stg/squawk тут]. &lt;br /&gt;
&lt;br /&gt;
== См.также==&lt;br /&gt;
&lt;br /&gt;
# begin()&lt;br /&gt;
# beginTFT()&lt;br /&gt;
# beginSD()&lt;br /&gt;
# beginSpeaker()&lt;br /&gt;
# playFile()&lt;br /&gt;
# motorsWrite()&lt;br /&gt;
# turn()&lt;br /&gt;
&lt;br /&gt;
==Внешние ссылки==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Категория:Пример]]&lt;br /&gt;
[[Категория:Примеры]]&lt;br /&gt;
[[Категория:Пример программирования Arduino]]&lt;br /&gt;
[[Категория:Примеры программирования Arduino]]&lt;/div&gt;</summary>
		<author><name>Myagkij</name></author>
	</entry>
</feed>