<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[RemoteXY community — Учебный эксперимент]]></title>
		<link>https://forum.remotexy.com/viewtopic.php?id=1636</link>
		<atom:link href="https://forum.remotexy.com/extern.php?action=feed&amp;tid=1636&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[The most recent posts in Учебный эксперимент.]]></description>
		<lastBuildDate>Mon, 10 Apr 2023 12:08:47 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Учебный эксперимент]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=5098#p5098</link>
			<description><![CDATA[<p>Сделал я вывод графика на сотовый телефон, используя советы из этого раздела.<br /></p><div class="quotebox"><cite>gorchakov wrote:</cite><blockquote><p>Разные поделки конечно интересны,но их польза только для забавы или для домашних дел. А вот в образовании можно сделать много разных экспериментальных установок, при создании которых студент одновременно осваивает и физику и электронику и программирование. Вот пример такой установки был разработан мною для учебных занятий студентов. Основан он на известном опыте Кундта по изучению стоячих волн в трубе. Опыт позволяет измерить скорость звука в воздухе и вычислить связанные с ним величины. Для создания такой установки нужно найти трубку подходящего размера, купить на алиэкспрессе зумммер, микрофон и какой-нибудь микроконтроллер, соединить все это и написать программу. ОБойдется все это в пару сотен рублей. Вся сложность здесь в самой программе, так как микроконтроллер должен одновременно и генерировать звук и оцифровывать его. да еще и выводить график на экран. А если это еще и через интернет запустить, то вообще получается удаленный лабораторный практикум. Вот текст программы</p><br /><p>// определение режима соединения и подключение библиотеки RemoteXY <br />#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT<br />#include &lt;ESP8266WiFi.h&gt;</p><p>#include &lt;RemoteXY.h&gt;</p><p>// настройки соединения <br />#define REMOTEXY_WIFI_SSID &quot;one&quot;<br />#define REMOTEXY_WIFI_PASSWORD &quot;12345678&quot;<br />#define REMOTEXY_SERVER_PORT 6377<br />const byte dynPin=2;<br />//генерация звука на втором пине<br />const int IN_PIN = A0;<br />//прием звука на аналоговом пине а0<br />const int MAX_ADC_VALUE = 1023;//возможно изменить на 255<br />int frec;</p><p>// конфигурация интерфейса&nbsp; <br />#pragma pack(push, 1)<br />uint8_t RemoteXY_CONF[] =&nbsp; &nbsp;// 45 bytes<br />&nbsp; { 255,1,0,4,0,38,0,16,126,0,68,49,7,7,87,42,94,186,97,109,<br />&nbsp; 112,108,105,116,117,100,101,0,2,0,33,51,22,11,2,26,31,31,79,78,<br />&nbsp; 0,79,70,70,0 };<br />&nbsp; <br />// структура определяет все переменные и события вашего интерфейса управления <br />struct {</p><p>&nbsp; &nbsp; // input variables<br />&nbsp; uint8_t switch_1; // =1 если переключатель включен и =0 если отключен </p><p>&nbsp; &nbsp; // output variables<br />&nbsp; float onlineGraph_1;</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; &nbsp; &nbsp; &nbsp;END RemoteXY include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //<br />/////////////////////////////////////////////</p><br /><br /><p>void setup() <br />{<br />&nbsp; RemoteXY_Init (); <br />&nbsp; &nbsp;pinMode(dynPin,OUTPUT);<br />&nbsp; pinMode(IN_PIN, INPUT);<br />frec=3000;//исходное значение частоты 3000 Гц<br />&nbsp; <br />&nbsp; <br />&nbsp; <br />}</p><p>void loop() <br />{ <br />&nbsp; RemoteXY_Handler ();<br />&nbsp; if ((RemoteXY.switch_1!=0)and (frec&lt;5000)){<br /> //инициализируем переменные<br />int mn = 1024;<br />int mx = 0;<br />tone(dynPin,frec);//запускаем генератор звука<br />for (int i=0; i &lt; 1000; ++i) {//ищем макс и мин значения амплитуды<br />int val = analogRead(IN_PIN);<br />mn = min(mn, val);<br />mx = max(mx, val);<br />}<br />//нашли размах амплитуды<br />&nbsp; &nbsp; &nbsp; &nbsp;frec=frec+100;//увеличиваем частоту на 100 для следующего измерения<br />&nbsp; &nbsp; noTone(dynPin);//отключаем звук<br />&nbsp; &nbsp; &nbsp; &nbsp;RemoteXY.onlineGraph_1 = float (5.0 / MAX_ADC_VALUE* (mx - mn));<br /> }<br /> else {<br />&nbsp; &nbsp; /*&nbsp; выключатель выключен */<br />&nbsp; }<br />&nbsp; }<br /> Правда не удается вывести график почему-то, хотя без вай-фая все работает.Что-то тут конфликтует с фай-фаем, а что я понять не могу, так как не знаю как реализован интерфейс с фай-фаем.</p></blockquote></div>]]></description>
			<author><![CDATA[null@example.com (gorchakov)]]></author>
			<pubDate>Mon, 10 Apr 2023 12:08:47 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=5098#p5098</guid>
		</item>
		<item>
			<title><![CDATA[Учебный эксперимент]]></title>
			<link>https://forum.remotexy.com/viewtopic.php?pid=5072#p5072</link>
			<description><![CDATA[<p>Разные поделки конечно интересны,но их польза только для забавы или для домашних дел. А вот в образовании можно сделать много разных экспериментальных установок, при создании которых студент одновременно осваивает и физику и электронику и программирование. Вот пример такой установки был разработан мною для учебных занятий студентов. Основан он на известном опыте Кундта по изучению стоячих волн в трубе. Опыт позволяет измерить скорость звука в воздухе и вычислить связанные с ним величины. Для создания такой установки нужно найти трубку подходящего размера, купить на алиэкспрессе зумммер, микрофон и какой-нибудь микроконтроллер, соединить все это и написать программу. ОБойдется все это в пару сотен рублей. Вся сложность здесь в самой программе, так как микроконтроллер должен одновременно и генерировать звук и оцифровывать его. да еще и выводить график на экран. А если это еще и через интернет запустить, то вообще получается удаленный лабораторный практикум. Вот текст программы</p><br /><p>// определение режима соединения и подключение библиотеки RemoteXY <br />#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT<br />#include &lt;ESP8266WiFi.h&gt;</p><p>#include &lt;RemoteXY.h&gt;</p><p>// настройки соединения <br />#define REMOTEXY_WIFI_SSID &quot;one&quot;<br />#define REMOTEXY_WIFI_PASSWORD &quot;12345678&quot;<br />#define REMOTEXY_SERVER_PORT 6377<br />const byte dynPin=2;<br />//генерация звука на втором пине<br />const int IN_PIN = A0;<br />//прием звука на аналоговом пине а0<br />const int MAX_ADC_VALUE = 1023;//возможно изменить на 255<br />int frec;</p><p>// конфигурация интерфейса&nbsp; <br />#pragma pack(push, 1)<br />uint8_t RemoteXY_CONF[] =&nbsp; &nbsp;// 45 bytes<br />&nbsp; { 255,1,0,4,0,38,0,16,126,0,68,49,7,7,87,42,94,186,97,109,<br />&nbsp; 112,108,105,116,117,100,101,0,2,0,33,51,22,11,2,26,31,31,79,78,<br />&nbsp; 0,79,70,70,0 };<br />&nbsp; <br />// структура определяет все переменные и события вашего интерфейса управления <br />struct {</p><p>&nbsp; &nbsp; // input variables<br />&nbsp; uint8_t switch_1; // =1 если переключатель включен и =0 если отключен </p><p>&nbsp; &nbsp; // output variables<br />&nbsp; float onlineGraph_1;</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; &nbsp; &nbsp; &nbsp;END RemoteXY include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //<br />/////////////////////////////////////////////</p><br /><br /><p>void setup() <br />{<br />&nbsp; RemoteXY_Init (); <br />&nbsp; &nbsp;pinMode(dynPin,OUTPUT);<br />&nbsp; pinMode(IN_PIN, INPUT);<br />frec=3000;//исходное значение частоты 3000 Гц<br />&nbsp; <br />&nbsp; <br />&nbsp; <br />}</p><p>void loop() <br />{ <br />&nbsp; RemoteXY_Handler ();<br />&nbsp; if ((RemoteXY.switch_1!=0)and (frec&lt;5000)){<br /> //инициализируем переменные<br />int mn = 1024;<br />int mx = 0;<br />tone(dynPin,frec);//запускаем генератор звука<br />for (int i=0; i &lt; 1000; ++i) {//ищем макс и мин значения амплитуды<br />int val = analogRead(IN_PIN);<br />mn = min(mn, val);<br />mx = max(mx, val);<br />}<br />//нашли размах амплитуды<br />&nbsp; &nbsp; &nbsp; &nbsp;frec=frec+100;//увеличиваем частоту на 100 для следующего измерения<br />&nbsp; &nbsp; noTone(dynPin);//отключаем звук<br />&nbsp; &nbsp; &nbsp; &nbsp;RemoteXY.onlineGraph_1 = float (5.0 / MAX_ADC_VALUE* (mx - mn));<br /> }<br /> else {<br />&nbsp; &nbsp; /*&nbsp; выключатель выключен */<br />&nbsp; }<br />&nbsp; }<br /> Правда не удается вывести график почему-то, хотя без вай-фая все работает.Что-то тут конфликтует с фай-фаем, а что я понять не могу, так как не знаю как реализован интерфейс с фай-фаем.</p>]]></description>
			<author><![CDATA[null@example.com (gorchakov)]]></author>
			<pubDate>Fri, 31 Mar 2023 03:15:47 +0000</pubDate>
			<guid>https://forum.remotexy.com/viewtopic.php?pid=5072#p5072</guid>
		</item>
	</channel>
</rss>
