<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="https://stemrobotics.org/mediawiki/skins/common/feed.css?164"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>Omnibot Code - Revision history</title>
		<link>https://stemrobotics.org/mediawiki/index.php?title=Omnibot_Code&amp;action=history</link>
		<description>Revision history for this page on the wiki</description>
		<language>en</language>
		<generator>MediaWiki 1.13.2</generator>
		<lastBuildDate>Fri, 29 May 2026 22:02:40 GMT</lastBuildDate>
		<item>
			<title>Foster: New page: &lt;source lang=&quot;c&quot;&gt;   #define _VEX_BOARD #include &quot;API.h&quot; #include &quot;BuiltIns.h&quot; #include &quot;stdio.h&quot; /*   	Fire fight robot  	Omni drive 	Last update - 13 November 2007 	Rebuilt on 6 November ...</title>
			<link>https://stemrobotics.org/mediawiki/index.php?title=Omnibot_Code&amp;diff=197&amp;oldid=prev</link>
			<description>&lt;p&gt;New page: &amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;   #define _VEX_BOARD #include &amp;quot;API.h&amp;quot; #include &amp;quot;BuiltIns.h&amp;quot; #include &amp;quot;stdio.h&amp;quot; /*   	Fire fight robot  	Omni drive 	Last update - 13 November 2007 	Rebuilt on 6 November ...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#define _VEX_BOARD&lt;br /&gt;
#include &amp;quot;API.h&amp;quot;&lt;br /&gt;
#include &amp;quot;BuiltIns.h&amp;quot;&lt;br /&gt;
#include &amp;quot;stdio.h&amp;quot;&lt;br /&gt;
/*  &lt;br /&gt;
	Fire fight robot &lt;br /&gt;
	Omni drive&lt;br /&gt;
	Last update - 13 November 2007&lt;br /&gt;
	Rebuilt on 6 November 2008&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
#define sonar 11&lt;br /&gt;
#define front 1&lt;br /&gt;
#define right 2&lt;br /&gt;
#define left  3&lt;br /&gt;
#define back  4&lt;br /&gt;
#define sensorservo 7&lt;br /&gt;
#define co2servo 8&lt;br /&gt;
&lt;br /&gt;
void IO_Initialization(void) &lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
	SetCompetitionMode(0,240); // Autonomous mode is 10 seconds, driver time is 240 seconds&lt;br /&gt;
	SetDirection(sonar,0);&lt;br /&gt;
	PrintToScreen(&amp;quot;IO_Initialization Complete\n\r&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Initialize(void) // When the robot is turned on this gets done first &lt;br /&gt;
{&lt;br /&gt;
	PrintToScreen(&amp;quot;Version 1 - FS\n\r&amp;quot;);&lt;br /&gt;
	Set_Number_of_Analog_Channels(4);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void Autonomous(void) // Autonomous code&lt;br /&gt;
{&lt;br /&gt;
#define speed 120	&lt;br /&gt;
#define offset 20&lt;br /&gt;
&lt;br /&gt;
} // End of Autonomous code&lt;br /&gt;
&lt;br /&gt;
void OperatorControl(void) // Driver control code&lt;br /&gt;
{&lt;br /&gt;
&lt;br /&gt;
int LF; // Left Front&lt;br /&gt;
int RF; // Right Front&lt;br /&gt;
int LR; // Left Rear&lt;br /&gt;
int RR; // Right Rear&lt;br /&gt;
int leftx;&lt;br /&gt;
int lefty;&lt;br /&gt;
int rightx;&lt;br /&gt;
int spin;&lt;br /&gt;
      while ( 1 )&lt;br /&gt;
      {&lt;br /&gt;
            // Get Data &lt;br /&gt;
            leftx = GetRxInput ( 1 , 4 ) ; // Left Joystick, X Axis&lt;br /&gt;
            lefty = GetRxInput ( 1 , 3 ) ; // Left Joystick, Y Axis&lt;br /&gt;
            rightx = GetRxInput ( 1 , 1 ) ; // Right Joystick, X Axis&lt;br /&gt;
            // Half the input signal (so code does not overflow past 255)&lt;br /&gt;
            leftx = leftx / 2 ;&lt;br /&gt;
            lefty = lefty / 2 ;&lt;br /&gt;
            spin = rightx / 2 ;&lt;br /&gt;
            // Drive Code Algorithim&lt;br /&gt;
            LF = RR = lefty - leftx + 127 ;&lt;br /&gt;
            RF = LR = 255 - lefty - leftx ;&lt;br /&gt;
            RR = 255 - RR ; // Reverse Direction of RR motor&lt;br /&gt;
            LR = 255 - LR ; // Reverse Direction of LR motor&lt;br /&gt;
            // Spin Code Algorithim&lt;br /&gt;
            RF = RF - spin + 63 ;&lt;br /&gt;
            RR = RR - spin + 63 ;&lt;br /&gt;
            LF = LF - spin + 63 ;&lt;br /&gt;
            LR = LR - spin + 63 ;&lt;br /&gt;
            // Code overflow prevention&lt;br /&gt;
            if ( LF &amp;lt; 0 )&lt;br /&gt;
            {&lt;br /&gt;
                  LF = 0 ;&lt;br /&gt;
            }&lt;br /&gt;
            else if ( LF &amp;gt; 255 )&lt;br /&gt;
            {&lt;br /&gt;
                  LF = 255 ;&lt;br /&gt;
            }&lt;br /&gt;
            if ( RF &amp;lt; 0 )&lt;br /&gt;
            {&lt;br /&gt;
                  RF = 0 ;&lt;br /&gt;
            }&lt;br /&gt;
            else if ( RF &amp;gt; 255 )&lt;br /&gt;
            {&lt;br /&gt;
                  RF = 255 ;&lt;br /&gt;
            }&lt;br /&gt;
            if ( RR &amp;lt; 0 )&lt;br /&gt;
            {&lt;br /&gt;
                  RR = 0 ;&lt;br /&gt;
            }&lt;br /&gt;
            else if ( RR &amp;gt; 255 )&lt;br /&gt;
            {&lt;br /&gt;
                  RR = 255 ;&lt;br /&gt;
            }&lt;br /&gt;
            if ( LR &amp;lt; 0 )&lt;br /&gt;
            {&lt;br /&gt;
                  LR = 0 ;&lt;br /&gt;
            }&lt;br /&gt;
            else if ( LR &amp;gt; 255 )&lt;br /&gt;
            {&lt;br /&gt;
                  LR = 255 ;&lt;br /&gt;
            }&lt;br /&gt;
            // Set Motors&lt;br /&gt;
            SetPWM ( 1 , RF ) ;&lt;br /&gt;
            SetPWM ( 2 , LF ) ;&lt;br /&gt;
            SetPWM ( 3 , LR ) ;&lt;br /&gt;
            SetPWM ( 4 , RR ) ;&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
} // End of Driver code &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
void OperatorControl(void) // Driver control code&lt;br /&gt;
{&lt;br /&gt;
unsigned char forward;&lt;br /&gt;
unsigned char side;&lt;br /&gt;
unsigned char spin;&lt;br /&gt;
unsigned char search;&lt;br /&gt;
unsigned char co2;&lt;br /&gt;
printf('In Operator Mode\r');&lt;br /&gt;
while (1 == 1)&lt;br /&gt;
	{&lt;br /&gt;
		forward = GetRxInput ( 1 , 2 ) ; // Right Joystick, X Axis&lt;br /&gt;
        side    = GetRxInput ( 1 , 1 ) ; // Right Joystick, Y Axis&lt;br /&gt;
        spin    = GetRxInput ( 1 , 4 ) ; // Left Joystick, X Axis&lt;br /&gt;
&lt;br /&gt;
		SetPWM (right, forward);&lt;br /&gt;
		SetPWM (left, 255 - forward);&lt;br /&gt;
		SetPWM (front, side);&lt;br /&gt;
		SetPWM (back, 255-side);&lt;br /&gt;
&lt;br /&gt;
		search = GetRxInput(1,5);  // Back button&lt;br /&gt;
		SetPWM (sensorservo,search);&lt;br /&gt;
&lt;br /&gt;
		co2 = GetRxInput(1,6);  // back button&lt;br /&gt;
		SetPWM (co2servo, co2); &lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
 void main(void)&lt;br /&gt;
{&lt;br /&gt;
	while (1) &lt;br /&gt;
	{&lt;br /&gt;
		PrintToScreen(&amp;quot;This is the main loop\n\r&amp;quot;);&lt;br /&gt;
                OperatorControl();&lt;br /&gt;
		Wait(2000);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</description>
			<pubDate>Mon, 15 Jun 2009 01:55:08 GMT</pubDate>			<dc:creator>Foster</dc:creator>			<comments>https://stemrobotics.org/mediawiki/index.php/Talk:Omnibot_Code</comments>		</item>
	</channel>
</rss>