<?xml version="1.0" encoding="ISO-8859-1" ?><rss version="2.0">
<channel>
    <title>RoboRealm Forum</title>
    <link>http://www.RoboRealm.com/</link>
    <description>The newest forum threads.</description>
    <lastBuildDate>Tue, 30 Nov 1999 00:11:00 EST</lastBuildDate>
    <language>en-us</language>
    <copyright>Copyright: (C) RoboRealm, http://www.RoboRealm.com/</copyright>
    <docs>http://www.RoboRealm.com/</docs>

    <item>
        <title>No Title</title>
        <description>
        Hi Steven&lt;br&gt;1 yes by pressing 5 second and realise, the sound is playing upon realising the buton. However try pressing &amp;lt; 5 secs, it does bot trigger the sound.&lt;br&gt;&lt;br&gt;2. The sound does not start with 5 sec of silence. It started immediately after realising the key button. (however the condition now has to hold the button a little long about 5 sec)&lt;br&gt;&lt;br&gt;&quot;Which it suppose trigger just by pressing abd realise key button instanteniously&quot;        </description>
        <link>http://www.roborealm.com/forum/index.php?thread_id=4527</link>
        <guid>http://www.roborealm.com/forum/index.php?thread_id=4527</guid>
        <pubDate>Tue, 30 Nov 1999 00:11:00 EST</pubDate>
    </item>
    <item>
        <title>No Title</title>
        <description>
        ron,&lt;br&gt;&lt;br&gt;Are you saying that you need to hold the key down for 5 seconds BEFORE the sound starts? Or that it starts as soon as you hold the key down but then stops when you release it?&lt;br&gt;&lt;br&gt;It seems that the code is sending the correct key value but your first Set_Variable module will reset it to zero as soon as you release the key. &lt;br&gt;&lt;br&gt;Does the sound file start with 5 seconds of silence? Or should it start playing the sound right away?&lt;br&gt;&lt;br&gt;STeven.        </description>
        <link>http://www.roborealm.com/forum/index.php?thread_id=4527</link>
        <guid>http://www.roborealm.com/forum/index.php?thread_id=4527</guid>
        <pubDate>Tue, 30 Nov 1999 00:11:00 EST</pubDate>
    </item>
    <item>
        <title>Roborealm with Sound Module (MCU)</title>
        <description>
        Hi, I am trying to program sound module with MCU communicator, with case as followed in arduino&lt;br&gt; case 100: // play &quot;0000.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(0x0000); //delay(3000); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt; case 101 : // play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(0x0001);//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt; case 102 : // play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(STOP);//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&amp;nbsp;&amp;nbsp; &lt;br&gt; case 103 : // play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(PLAY_PAUSE);//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default : break;&lt;br&gt;&lt;br&gt;However the respond in the sound module is not as expected, when clicking s, by right rr corresponding send value 100, it does send by monitoring the &quot; Watch variable&quot; it does send value at my keyboard however upon realising it goes to 0, so i assumed the value has been sent to arduino trigger the sound 1 which is&lt;br&gt; &lt;br&gt;case 100: // play &quot;0000.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(0x0000);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&lt;br&gt;however, my observation, i need to hold the &apos;s&apos; for 5 second in order the sound to be played, how do I improve on this so just by pressing &apos;s&apos; or other function key it will plays the sounds right away&lt;br&gt;&lt;br&gt; &lt;a href=&quot;http://youtu.be/fBq5Rl2olsw&quot; target=&quot;_blank&quot;&gt;http://youtu.be/&lt;wbr&gt;fBq5Rl2olsw&lt;/a&gt;&lt;br&gt;&lt;br&gt; &lt;a href=&quot;http://youtu.be/iAVzeXl3KO8&quot; target=&quot;_blank&quot;&gt;http://youtu.be/&lt;wbr&gt;iAVzeXl3KO8&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;I am also having issue on the roborealm freeze quite often so i can close it or do some adjustment I need to force closed with windows task manager&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://youtu.be/DW2CyXdYRMo&quot; target=&quot;_blank&quot;&gt;http://youtu.be/&lt;wbr&gt;DW2CyXdYRMo&lt;/a&gt;&lt;br&gt;&lt;br&gt;below is the robo files and arduino files&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;#include &amp;lt;Servo.h&amp;gt; &lt;br&gt; &lt;br&gt;Servo myservo;&amp;nbsp;&amp;nbsp;// create servo object to control a servo &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;/* SETTING FOR MCU COMMUNICATOR */&lt;br&gt;#define MCU_GET_ID 1&lt;br&gt;#define MCU_END_FRAME 2&lt;br&gt;#define MCU_SET_NUMBER_MAILBOX 3&lt;br&gt;#define MCU_SET_TEXT_MAILBOX 4&lt;br&gt;#define MCU_SET_LOGIC_MAILBOX 5&lt;br&gt;#define MCU_GET_NUMBER_MAILBOX 6&lt;br&gt;#define MCU_GET_TEXT_MAILBOX 7&lt;br&gt;#define MCU_GET_LOGIC_MAILBOX 8&lt;br&gt;&lt;br&gt;unsigned char mailboxToSend[20];&lt;br&gt;unsigned char mailboxSendFlag[20];&lt;br&gt;&lt;br&gt;unsigned long intValue[20];&lt;br&gt;unsigned char logicValue[20];&lt;br&gt;unsigned char *textValue[20];&lt;br&gt;&lt;br&gt;unsigned char textStore[1024];&lt;br&gt;int textStoreTop=0;&lt;br&gt;/* SETTING FOR SOUND CARD,&lt;br&gt;&amp;nbsp;&amp;nbsp; using pin 2,3,8 , with functionality as follows */&lt;br&gt;const int clockPin = 2;&amp;nbsp;&amp;nbsp;// the pin number of the clock pin&lt;br&gt;const int dataPin = 3;&amp;nbsp;&amp;nbsp;// the pin number of the data pin&lt;br&gt;const int resetPin = 4;&amp;nbsp;&amp;nbsp;// the pin number of the reset pin&lt;br&gt;&lt;br&gt;const unsigned int VOLUME_0 = 0xFFF0;&lt;br&gt;const unsigned int VOLUME_1 = 0xFFF1;&lt;br&gt;const unsigned int VOLUME_2 = 0xFFF2;&lt;br&gt;const unsigned int VOLUME_3 = 0xFFF3;&lt;br&gt;const unsigned int VOLUME_4 = 0xFFF4;&lt;br&gt;const unsigned int VOLUME_5 = 0xFFF5;&lt;br&gt;const unsigned int VOLUME_6 = 0xFFF6;&lt;br&gt;const unsigned int VOLUME_7 = 0xFFF7;&lt;br&gt;&lt;br&gt;const unsigned int PLAY_PAUSE = 0xFFFE;&lt;br&gt;const unsigned int STOP = 0xFFFF;&lt;br&gt;/* send command to sound card for playing audio */&lt;br&gt;void sendCommand(unsigned int command) {&lt;br&gt;&amp;nbsp;&amp;nbsp;// start bit&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(clockPin, LOW);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(2);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// bit15, bit14, ... bit0&lt;br&gt;&amp;nbsp;&amp;nbsp;for (unsigned int mask = 0x8000; mask &amp;gt; 0; mask &amp;gt;&amp;gt;= 1) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (command &amp; mask) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digitalWrite(dataPin, HIGH);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digitalWrite(dataPin, LOW);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// clock low&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digitalWrite(clockPin, LOW);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delayMicroseconds(200);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// clock high&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digitalWrite(clockPin, HIGH);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;delayMicroseconds(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// stop bit&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(2);&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;void setup() &lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;Serial.begin(115200);&lt;br&gt;&amp;nbsp;&amp;nbsp;myservo.attach(9);&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;int i;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;for (i=0;i&amp;lt;20;i++) { mailboxToSend[i]=0; mailboxSendFlag[i]=0; }&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// set pin 13 to output so we can flash the LED&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;pinMode(13, OUTPUT);&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;//setting for driving two dc motors &lt;br&gt;&amp;nbsp;&amp;nbsp;for(i=4;i&amp;lt;=7;i++)&lt;br&gt;&amp;nbsp;&amp;nbsp;pinMode(i, OUTPUT); &lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;//Setting for sound card&lt;br&gt;&amp;nbsp;&amp;nbsp;pinMode(clockPin, OUTPUT);&lt;br&gt;&amp;nbsp;&amp;nbsp;pinMode(dataPin, OUTPUT);&lt;br&gt;&amp;nbsp;&amp;nbsp;pinMode(resetPin, OUTPUT);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(clockPin, HIGH);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(dataPin, LOW);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// reset the module&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(resetPin, HIGH);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(100);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(resetPin, LOW);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(10);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(resetPin, HIGH);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(100);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;sendCommand(VOLUME_1);&lt;br&gt;}&lt;br&gt;&lt;br&gt;unsigned char getByte()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;while (Serial.available() &amp;lt;= 0) continue; &lt;br&gt;&amp;nbsp;&amp;nbsp;return Serial.read();&lt;br&gt;}&lt;br&gt;&lt;br&gt;void loop() &lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;unsigned char buffer[8];&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;while (Serial.available()&amp;gt;0)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned char command;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned char mailbox;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;unsigned char crc;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;int hold;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// command is the only byte that should have bit 7 set.&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;command = getByte();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ((command&amp;128)==0);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc = command;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;command^=128;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (command)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// init&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_ID:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial.print(&quot;MCUC&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_SET_NUMBER_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[0] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[0];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[1] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[1];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[2] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[2];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[3] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[3];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[4] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[4];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[5] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[5];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[6] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((crc&amp;127)!=buffer[6]) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;intValue[buffer[0]] = (unsigned long)buffer[1]|((unsigned long)buffer[2]&amp;lt;&amp;lt;7)|((unsigned long)buffer[3]&amp;lt;&amp;lt;14)|((unsigned long)buffer[4]&amp;lt;&amp;lt;21)|((unsigned long)buffer[5]&amp;lt;&amp;lt;28);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxToSend[buffer[0]]=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_SET_LOGIC_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[0] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[0];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[1] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= buffer[1];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((buffer[2] = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((crc&amp;127)!=buffer[2]) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;logicValue[buffer[0]] = buffer[1];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxToSend[buffer[0]]=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_SET_TEXT_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((mailbox = getByte())&amp;128) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= mailbox;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hold = textStoreTop;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textStoreTop--;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;do&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{ &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textStoreTop++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textStore[textStoreTop] = getByte();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc^=textStore[textStoreTop];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ((textStoreTop&amp;lt;1024)&amp;&amp;(textStore[textStoreTop]));&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textStoreTop++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ((crc&amp;127)!=getByte()) { textStoreTop=hold; continue; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textValue[mailbox] = &amp;textStore[hold];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxToSend[mailbox]=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//stream values to mailbox&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_NUMBER_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailbox = getByte();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (((crc^mailbox)&amp;127)!=getByte()) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxToSend[mailbox]=MCU_GET_NUMBER_MAILBOX;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_LOGIC_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailbox = getByte();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (((crc^mailbox)&amp;127)!=getByte()) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxToSend[mailbox]=MCU_GET_LOGIC_MAILBOX;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_TEXT_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailbox = getByte();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (((crc^mailbox)&amp;127)!=getByte()) continue;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxToSend[mailbox]=MCU_GET_TEXT_MAILBOX;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_END_FRAME:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;processMailboxes();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// note that Text values are lost after being processed as we&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// will reuse the buffer for the next frame&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;textStoreTop=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;int i,j;&lt;br&gt;&amp;nbsp;&amp;nbsp;unsigned long lvalue;&lt;br&gt;&amp;nbsp;&amp;nbsp;unsigned char *tvalue;&lt;br&gt;&amp;nbsp;&amp;nbsp;unsigned char crc;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;for (i=0;i&amp;lt;20;i++)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mailboxToSend[i]&amp;&amp;mailboxSendFlag[i])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;switch (mailboxToSend[i])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_NUMBER_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lvalue = intValue[i];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[0]=MCU_GET_NUMBER_MAILBOX|128;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[1]=i;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[2]=lvalue&amp;127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[3]=(lvalue&amp;gt;&amp;gt;7)&amp;127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[4]=(lvalue&amp;gt;&amp;gt;14)&amp;127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[5]=(lvalue&amp;gt;&amp;gt;21)&amp;127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[6]=(lvalue&amp;gt;&amp;gt;28)&amp;127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[7]=(buffer[0]^buffer[1]^buffer[2]^buffer[3]^buffer[4]^buffer[5]^buffer[6])&amp;127;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial.write(buffer, 8);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_LOGIC_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[0]=MCU_GET_LOGIC_MAILBOX|128;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[1]=i;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[2]=logicValue[i]&amp;127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[3]=(buffer[0]^buffer[1]^buffer[2])&amp;127;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial.write(buffer, 4);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&amp;nbsp;&amp;nbsp;MCU_GET_TEXT_MAILBOX:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tvalue = textValue[i];&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[0]=MCU_GET_TEXT_MAILBOX|128;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[1]=i;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc = buffer[0]^buffer[1];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;while ((tvalue[j]!=0)&amp;&amp;(j&amp;lt;254))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tvalue[j] &amp;= 127;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;crc ^= tvalue[j];&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;j++;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buffer[2] = crc&amp;127;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial.write(buffer, 2);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial.write(tvalue, j);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Serial.write(&amp;buffer[2], 1);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mailboxSendFlag[i]=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;}&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;/* PWM CONTROL, &lt;br&gt;&amp;nbsp;&amp;nbsp; using pin 4,5,6,7&lt;br&gt;*/&lt;br&gt;//Standard PWM DC control&lt;br&gt;int E1 = 5;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //M1 Speed Control&lt;br&gt;int E2 = 6;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //M2 Speed Control&lt;br&gt;int M1 = 4;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//M1 Direction Control&lt;br&gt;int M2 = 7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//M1 Direction Control&lt;br&gt; &lt;br&gt;///For previous Romeo, please use these pins.&lt;br&gt;//int E1 = 6;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //M1 Speed Control&lt;br&gt;//int E2 = 9;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //M2 Speed Control&lt;br&gt;//int M1 = 7;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//M1 Direction Control&lt;br&gt;//int M2 = 8;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//M1 Direction Control&lt;br&gt; &lt;br&gt; &lt;br&gt;void stop(void)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Stop&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite(E1,0);&amp;nbsp;&amp;nbsp;//? &lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(E1,LOW);&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite(E1,0);&amp;nbsp;&amp;nbsp;//?&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(E2,LOW);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;}&amp;nbsp;&amp;nbsp; &lt;br&gt;void advance(char a,char b)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Move forward&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite(E1,a);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//PWM Speed Control&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M1,HIGH);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite(E2,b);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M2,HIGH);&lt;br&gt;}&amp;nbsp;&amp;nbsp;&lt;br&gt;void back_off(char a,char b)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Move backward&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E1,a);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M1,LOW);&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E2,b);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M2,LOW);&lt;br&gt;}&lt;br&gt;void turn_L(char a,char b)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Turn Left&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E1,a);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M1,LOW);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E2,b);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M2,HIGH);&lt;br&gt;}&lt;br&gt;void turn_R(char a,char b)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Turn Right&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E1,a);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M1,HIGH);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E2,b);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M2,LOW);&lt;br&gt;}&lt;br&gt;&lt;br&gt;void driveMotors(int speed1, int speed2)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;if(speed1&amp;lt;0)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;speed1=-speed1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M1=LOW;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;else&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M1=HIGH;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;if(speed2&amp;lt;0)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;speed2=-speed2;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M2=LOW;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;else&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;M2=HIGH;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E1,speed1);&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M1,HIGH);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;analogWrite (E2,speed2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;digitalWrite(M2,LOW);&amp;nbsp;&amp;nbsp;&lt;br&gt;}&lt;br&gt;&lt;br&gt;// called after mailboxes from the PC have been sent ... this is where your code will go!&lt;br&gt;void processMailboxes()&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;//controlling drive motors&lt;br&gt;&amp;nbsp;&amp;nbsp;driveMotors(intValue[0],intValue[1]);&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;//controlling servo&lt;br&gt;&amp;nbsp;&amp;nbsp;int pos = 180/200*(intValue[2]+100);&lt;br&gt;&amp;nbsp;&amp;nbsp;myservo.write(pos);&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;//controlling sound card&lt;br&gt; // sendCommand(0x0000);&lt;br&gt;&amp;nbsp;&amp;nbsp;//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;switch(intValue[3])&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&lt;br&gt; case 100: // play &quot;0000.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(0x0000); //delay(3000); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt; case 101 : // play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(0x0001);//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt; case 102 : // play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(STOP);//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&amp;nbsp;&amp;nbsp; &lt;br&gt; case 103 : // play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sendCommand(PLAY_PAUSE);//delay(200);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;default : break;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;/*&lt;br&gt;&amp;nbsp;&amp;nbsp;char val=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;char speed=255;&lt;br&gt;&amp;nbsp;&amp;nbsp;switch(val)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;w&apos;://Move Forward&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;advance (speed,speed);&amp;nbsp;&amp;nbsp; //move forward in max speed&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;s&apos;://Move Backward&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;back_off (speed,speed);&amp;nbsp;&amp;nbsp; //move back in max speed&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;a&apos;://Turn Left&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;turn_L (speed/2,speed/2);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;d&apos;://Turn Right&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;turn_R (speed/2,speed/2);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;z&apos;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//Serial.println(&quot;Hello&quot;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;case &apos;x&apos;:&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;stop();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;*/&lt;br&gt;&amp;nbsp;&amp;nbsp;/* Here are samples only&lt;br&gt;&amp;nbsp;&amp;nbsp;// Playing sounds&lt;br&gt;&amp;nbsp;&amp;nbsp;// play &quot;0000.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;sendCommand(0x0000);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(1000);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// play &quot;0001.ad4&quot;&lt;br&gt;&amp;nbsp;&amp;nbsp;sendCommand(0x0001);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(1000);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// stop playing&lt;br&gt;&amp;nbsp;&amp;nbsp;sendCommand(STOP);&lt;br&gt;&amp;nbsp;&amp;nbsp;delay(1000);&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// MCU Communicator&lt;br&gt;&amp;nbsp;&amp;nbsp;// variables value will be in one of intValue, textValue or logicValue&lt;br&gt;&amp;nbsp;&amp;nbsp;// arrays and address by the mailbox number. Note the variable name is&lt;br&gt;&amp;nbsp;&amp;nbsp;// NOT sent by identified by the corresponding mailbox number&lt;br&gt;&amp;nbsp;&amp;nbsp;// as seen in the MCU Communicator GUI&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// we have set mailbox 0 to a logic value coming from RR. In this case&lt;br&gt;&amp;nbsp;&amp;nbsp;// we attach it to the IMAGE_COUNT variable so we flash for every few &lt;br&gt;&amp;nbsp;&amp;nbsp;// frames.&lt;br&gt;&amp;nbsp;&amp;nbsp;if (intValue[0])&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digitalWrite(13, HIGH);&lt;br&gt;&amp;nbsp;&amp;nbsp;else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;digitalWrite(13, LOW);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// To send a value back to mailbox #1 specify it as a Get in the MCU Communicator&lt;br&gt;&amp;nbsp;&amp;nbsp;// interface and type in a variable name that will hold that value. Indicate its type&lt;br&gt;&amp;nbsp;&amp;nbsp;// as Number and then use the following to send a value of IMAGE_COUNT+100 back to the PC&lt;br&gt;&amp;nbsp;&amp;nbsp;// into that variable. Don&apos;t forget to set the flag!&lt;br&gt;&amp;nbsp;&amp;nbsp;intValue[1]=intValue[0]+100;&lt;br&gt;&amp;nbsp;&amp;nbsp;mailboxSendFlag[1] = 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// To send back a string configure the MCU Communicator to a text type and use&lt;br&gt;&amp;nbsp;&amp;nbsp;textValue[2] = (unsigned char *)&quot;this is a test&quot;;&lt;br&gt;&amp;nbsp;&amp;nbsp;mailboxSendFlag[2] = 1;&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;// Now we convert mailbox 3&apos;s string into an uppercase version&lt;br&gt;&amp;nbsp;&amp;nbsp;// of it and send it back via mailbox 4 into another string &lt;br&gt;&amp;nbsp;&amp;nbsp;// variable. Note this is not a very reliable uppercase conversion&lt;br&gt;&amp;nbsp;&amp;nbsp;// but just illustrates the point of string manipulation&lt;br&gt;&amp;nbsp;&amp;nbsp;static unsigned char replyStr[256];&lt;br&gt;&amp;nbsp;&amp;nbsp;int i;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;for (i=0;textValue[3][i];i++)&lt;br&gt;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (textValue[3][i]!=&apos; &apos;)&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;replyStr[i]=textValue[3][i]+(&apos;A&apos;-&apos;a&apos;);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;replyStr[i]=&apos; &apos;;&lt;br&gt;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;replyStr[i]=0;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;textValue[4]=replyStr;&lt;br&gt;&amp;nbsp;&amp;nbsp;mailboxSendFlag[4] = 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// and set mailbox 5 to the length of this string&lt;br&gt;&amp;nbsp;&amp;nbsp;intValue[5] = i;&lt;br&gt;&amp;nbsp;&amp;nbsp;mailboxSendFlag[5] = 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;// invert the logic on mailbox 6&lt;br&gt;&amp;nbsp;&amp;nbsp;logicValue[7] = logicValue[6]^1;&lt;br&gt;&amp;nbsp;&amp;nbsp;mailboxSendFlag[7] = 1;&lt;br&gt;&amp;nbsp;&amp;nbsp;*/&lt;br&gt;}&lt;br&gt;        </description>
        <link>http://www.roborealm.com/forum/index.php?thread_id=4527</link>
        <guid>http://www.roborealm.com/forum/index.php?thread_id=4527</guid>
        <pubDate>Tue, 30 Nov 1999 00:11:00 EST</pubDate>
    </item>
</channel>
</rss>
