<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[RemoteXY community — Motor Shield управление 4_мя двигателями и 2_мя сервоприводами]]></title>
		<link>https://forum.remotexy.com/viewtopic.php?id=347</link>
		<atom:link href="https://forum.remotexy.com/extern.php?action=feed&amp;tid=347&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Motor Shield управление 4_мя двигателями и 2_мя сервоприводами.]]></description>
		<lastBuildDate>Sun, 07 Jan 2018 17:30:06 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Motor Shield управление 4_мя двигателями и 2_мя сервоприводами]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=1225#p1225</link>
			<description><![CDATA[<p>Добрый день,S.erg.ei</p><p>да управление четырьмя моторами с помощью одного джойстика, работает хорошо<br />Arduino UNO, HC-05(06) Bluetooth module, Motor Shield. <br />скетч:<br />но также присоединяюсь к пожеланию, если кто видит как упростить или улучшить присоединяйтесь,</p><p>и у кого есть опыт использования других Shield с этой программой, просьба поделиться <img src="https://forum.remotexy.com/img/smilies/smile.png" width="15" height="15" alt="smile" /></p><p>// определение режима соединения и подключение библиотеки RemoteXY&nbsp; <br />#define REMOTEXY_MODE__HARDSERIAL</p><p>#include &lt;RemoteXY.h&gt; <br />#include &lt;AFMotor.h&gt;</p><p>// настройки соединения&nbsp; <br />#define REMOTEXY_SERIAL Serial <br />#define REMOTEXY_SERIAL_SPEED 9600 </p><p>// Подключаем моторы к клеммникам M1, M2, M3, M4<br />AF_DCMotor motor1(1);<br />AF_DCMotor motor2(2);<br />AF_DCMotor motor3(3);<br />AF_DCMotor motor4(4);</p><br /><p>// конфигурация интерфейса&nbsp; &nbsp;<br />#pragma pack(push, 1) <br />uint8_t RemoteXY_CONF[] = <br />&nbsp; { 255,2,0,0,0,12,0,8,13,0,<br />&nbsp; 5,0,28,8,46,46,2,26,31 }; <br />&nbsp; &nbsp;<br />// структура определяет все переменные вашего интерфейса управления&nbsp; <br />struct { </p><p>&nbsp; &nbsp; // input variable<br />&nbsp; int8_t joystick_Q_x; // =-100..100 координата x положения джойстика <br />&nbsp; int8_t joystick_Q_y; // =-100..100 координата y положения джойстика </p><p>&nbsp; &nbsp; // other variable<br />&nbsp; uint8_t connect_flag;&nbsp; // =1 if wire connected, else =0 </p><p>} RemoteXY; <br />#pragma pack(pop) </p><p>/* <br />&nbsp; &nbsp;управление&nbsp; моторами<br />&nbsp; motor1.run(FORWARD); // Задаем движение вперед<br />&nbsp; motor1.run(BACKWARD);&nbsp; // Задаем движение назад<br />&nbsp; motor1.run(RELEASE); // Останавливаем двигатели<br />&nbsp; motor1.setSpeed(255); // Задаем скорость движения&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;v - скорость мотора, может принимать значения от -100 до 100 <br />*/<br />///////////////////////////////////////////// <br />//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END RemoteXY include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // <br />///////////////////////////////////////////// <br />int v_1;<br />int v_2;<br />int v_3;<br />int v_4;</p><p>void setup()&nbsp; <br />{ <br />&nbsp; motor1.setSpeed(255);&nbsp; <br />&nbsp; motor2.setSpeed(255);<br />&nbsp; motor3.setSpeed(255);<br />&nbsp; motor4.setSpeed(255);<br />&nbsp; <br />&nbsp; RemoteXY_Init ();&nbsp; &nbsp; <br />}</p><p>void loop()&nbsp; <br />{&nbsp; <br />&nbsp; /* обработчик событий модуля RemoteXY */ <br />&nbsp; RemoteXY_Handler (); <br />int v_1=( RemoteXY.joystick_Q_y - RemoteXY.joystick_Q_x);<br />int v_2=( RemoteXY.joystick_Q_y + RemoteXY.joystick_Q_x);<br />int v_3=( RemoteXY.joystick_Q_y - RemoteXY.joystick_Q_x);<br />int v_4=( RemoteXY.joystick_Q_y + RemoteXY.joystick_Q_x);&nbsp; <br />/* управляем мотором 1 */ <br />if (v_1&gt;100) v_1=100; <br />&nbsp; if (v_1&lt;-100) v_1=-100; <br />&nbsp; if (v_1&gt;0) {&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;motor1.run(FORWARD);<br />&nbsp; &nbsp;motor1.setSpeed(v_1*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else if (v_1&lt;0) { <br />&nbsp; &nbsp; motor1.run(BACKWARD);<br />&nbsp; &nbsp; motor1.setSpeed((-v_1)*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; motor1.run(RELEASE);<br />&nbsp; &nbsp; motor1.setSpeed(0); <br />&nbsp; } <br />/* управляем мотором 2 */ <br />if (v_2&gt;100) v_2=100; <br />&nbsp; if (v_2&lt;-100) v_2=-100; <br />&nbsp; if (v_2&gt;0) {&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;motor2.run(FORWARD);<br />&nbsp; &nbsp;motor2.setSpeed(v_2*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else if (v_2&lt;0) { <br />&nbsp; &nbsp; motor2.run(BACKWARD);<br />&nbsp; &nbsp; motor2.setSpeed((-v_2)*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; motor2.run(RELEASE);<br />&nbsp; &nbsp; motor2.setSpeed(0);&nbsp; &nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; /* управляем мотором 3 */ <br />if (v_3&gt;100) v_3=100; <br />&nbsp; if (v_3&lt;-100) v_3=-100; <br />&nbsp; if (v_3&gt;0) {&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;motor3.run(FORWARD);<br />&nbsp; &nbsp;motor3.setSpeed(v_3*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else if (v_3&lt;0) { <br />&nbsp; &nbsp; motor3.run(BACKWARD);<br />&nbsp; &nbsp; motor3.setSpeed((-v_3)*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; motor3.run(RELEASE);<br />&nbsp; &nbsp; motor3.setSpeed(0); <br />&nbsp; } <br />/* управляем мотором 4 */ <br />if (v_4&gt;100) v_4=100; <br />&nbsp; if (v_4&lt;-100) v_4=-100; <br />&nbsp; if (v_4&gt;0) {&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;motor4.run(FORWARD);<br />&nbsp; &nbsp;motor4.setSpeed(v_4*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else if (v_4&lt;0) { <br />&nbsp; &nbsp; motor4.run(BACKWARD);<br />&nbsp; &nbsp; motor4.setSpeed((-v_4)*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; motor4.run(RELEASE);<br />&nbsp; &nbsp; motor4.setSpeed(0);&nbsp; &nbsp; &nbsp; <br />&nbsp; } <br />}</p>]]></description>
			<author><![CDATA[null@example.com (olegeglit)]]></author>
			<pubDate>Sun, 07 Jan 2018 17:30:06 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=1225#p1225</guid>
		</item>
		<item>
			<title><![CDATA[Re: Motor Shield управление 4_мя двигателями и 2_мя сервоприводами]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=1223#p1223</link>
			<description><![CDATA[<p>В сем привет я тоже новичек в программировании так же столкнулся с этой проблемой так что как смог если кто поправит или сделает мой скетч красивее буду рад ! В моем проекте я использовал : Arduino Mega 2560, HC-05(06) Bluetooth module, Motor Shield. Сам скетч:<br /> ////////////////////////////////////////////// <br />//&nbsp; &nbsp; &nbsp; &nbsp; RemoteXY include library&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // <br />////////////////////////////////////////////// </p><p>// определение режима соединения и подключение библиотеки RemoteXY&nbsp; <br />#define REMOTEXY_MODE__HARDSERIAL<br />#include &lt;AFMotor.h&gt;// Подключаем библиотеку для работы с шилдом <br />#include &lt;RemoteXY.h&gt; </p><p>// настройки соединения&nbsp; <br />#define REMOTEXY_SERIAL Serial1 <br />#define REMOTEXY_SERIAL_SPEED 9600 </p><p>// Подключаем моторы к клеммникам M1, M2, M3, M4<br />AF_DCMotor motor1(1);<br />AF_DCMotor motor2(2);<br />AF_DCMotor motor3(3);<br />AF_DCMotor motor4(4);</p><p>// конфигурация интерфейса&nbsp; &nbsp;<br />#pragma pack(push, 1) <br />uint8_t RemoteXY_CONF[] = <br />&nbsp; { 255,2,0,0,0,12,0,8,13,1,<br />&nbsp; 5,37,11,53,42,42,1,6,31 }; <br />&nbsp; &nbsp;<br />// структура определяет все переменные вашего интерфейса управления&nbsp; <br />struct { </p><p>&nbsp; &nbsp; // input variable<br />&nbsp; int8_t jk_1_x; // =-100..100 координата x положения джойстика <br />&nbsp; int8_t jk_1_y; // =-100..100 координата y положения джойстика </p><p>&nbsp; &nbsp; // other variable<br />&nbsp; uint8_t connect_flag;&nbsp; // =1 if wire connected, else =0 </p><p>} RemoteXY; <br />#pragma pack(pop) <br />/* <br />&nbsp; &nbsp;управление&nbsp; моторами </p><p>&nbsp; motor1.run(FORWARD); // Задаем движение вперед<br />&nbsp; motor1.run(BACKWARD);&nbsp; // Задаем движение назад<br />&nbsp; motor1.run(RELEASE); // Останавливаем двигатели<br />&nbsp; motor1.setSpeed(255); // Задаем скорость движения&nbsp; &nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;v - скорость мотора, может принимать значения от -100 до 100 <br />*/ </p><p>///////////////////////////////////////////// <br />//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;END RemoteXY include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // <br />///////////////////////////////////////////// <br />int v_1;<br />int v_2;<br />void setup()&nbsp; <br />{ <br />&nbsp; motor1.setSpeed(255);&nbsp; <br />&nbsp; motor2.setSpeed(255);<br />&nbsp; motor3.setSpeed(255);<br />&nbsp; motor4.setSpeed(255);<br />&nbsp; <br />&nbsp; RemoteXY_Init ();&nbsp; &nbsp; <br />} </p><br /><p>void loop()&nbsp; <br />{&nbsp; <br />&nbsp; /* обработчик событий модуля RemoteXY */ <br />&nbsp; RemoteXY_Handler (); <br /> int v_1=( RemoteXY.jk_1_y - RemoteXY.jk_1_x);<br /> int v_2=( RemoteXY.jk_1_y + RemoteXY.jk_1_x);&nbsp; <br />/* управляем мотором 1 */ <br />if (v_1&gt;100) v_1=100; <br />&nbsp; if (v_1&lt;-100) v_1=-100; <br />&nbsp; if (v_1&gt;0) {&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;motor1.run(FORWARD);<br />&nbsp; &nbsp;motor1.setSpeed(v_1*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else if (v_1&lt;0) { <br />&nbsp; &nbsp; motor1.run(BACKWARD);<br />&nbsp; &nbsp; motor1.setSpeed((-v_1)*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; motor1.run(RELEASE);<br />&nbsp; &nbsp; motor1.setSpeed(0); <br />&nbsp; } <br />/* управляем мотором 2 */ <br />if (v_2&gt;100) v_2=100; <br />&nbsp; if (v_2&lt;-100) v_2=-100; <br />&nbsp; if (v_2&gt;0) {&nbsp; &nbsp; &nbsp;<br />&nbsp; &nbsp;motor2.run(FORWARD);<br />&nbsp; &nbsp;motor2.setSpeed(v_2*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else if (v_2&lt;0) { <br />&nbsp; &nbsp; motor2.run(BACKWARD);<br />&nbsp; &nbsp; motor2.setSpeed((-v_2)*2.55);&nbsp; &nbsp; <br />&nbsp; } <br />&nbsp; else { <br />&nbsp; &nbsp; motor2.run(RELEASE);<br />&nbsp; &nbsp; motor2.setSpeed(0);&nbsp; &nbsp; &nbsp; <br />&nbsp; } <br />}</p>]]></description>
			<author><![CDATA[null@example.com (S.erg.ei)]]></author>
			<pubDate>Sat, 06 Jan 2018 22:51:00 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=1223#p1223</guid>
		</item>
		<item>
			<title><![CDATA[Re: Motor Shield управление 4_мя двигателями и 2_мя сервоприводами]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=1199#p1199</link>
			<description><![CDATA[<p>Пояснения к предыдущему топику: Как правильно связать библиотеку AFMotor.h, управляющую четырьмя двигателями и двумя сервоприводами с RemoteXY?</p>]]></description>
			<author><![CDATA[null@example.com (olegeglit)]]></author>
			<pubDate>Fri, 29 Dec 2017 12:23:45 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=1199#p1199</guid>
		</item>
		<item>
			<title><![CDATA[Motor Shield управление 4_мя двигателями и 2_мя сервоприводами]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=1196#p1196</link>
			<description><![CDATA[<p>Как можно вписать в RemoteXY - Motor Shield, если есть возможность приведите пример скетча для работы Arduino с Motor Shield&nbsp; реализующий управление четырьмя двигателями и двумя сервоприводами, с двумя джойстиками и двумя слайдерами,</p><p>подключить все по пинам с помощью отдельных драйверов управления двигателями проблем не вызвало, но при использовании Motor Shield очень экономится место, поэтому хотелось бы чтобы у вас поддержка Motor Shield была:)</p>]]></description>
			<author><![CDATA[null@example.com (olegeglit)]]></author>
			<pubDate>Thu, 28 Dec 2017 20:52:49 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=1196#p1196</guid>
		</item>
	</channel>
</rss>
