﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>RoboticsConnection User Forum / RoboticsConnection Software Support / Serializer .NET Library </title><generator>InstantForum.NET v4.1.4</generator><description>RoboticsConnection User Forum</description><link>http://roboticsconnection.com/userForums/</link><webMaster>info@roboticsconnection.com</webMaster><lastBuildDate>Fri, 10 Sep 2010 09:42:35 GMT</lastBuildDate><ttl>20</ttl><item><title>OK to publish a Python Serializer library on Google Code?</title><link>http://roboticsconnection.com/userForums/Topic1974-6-1.aspx</link><description>Hi Jason,&lt;br&gt;&lt;br&gt;I have put together a simple open source Python Serializer library so that I (and others) can use the Serializer on Linux as well as Windows (and probably MacOS X as well).  But before I post it on Google Code, I wanted to make sure that was OK with you.&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;patrick&lt;br&gt;&lt;br&gt;</description><pubDate>Sun, 29 Aug 2010 00:59:04 GMT</pubDate><dc:creator>pirobot</dc:creator></item><item><title>Source code for PID controller routines?</title><link>http://roboticsconnection.com/userForums/Topic1945-6-1.aspx</link><description>Hi Jason,&lt;br&gt;&lt;br&gt;I am writing some simply Python routines to control my Serializer so I can access it on Linux as well as Windows.  Most of the stuff I can do just by calling the appropriate firmware command (e.g. pping(4) to get the Ping reading on pin 4).  However, I now want to emulate your pidController commands such as Rotate()  and TravelDistance().  Rather than reinvent the wheel (so to speak), I'm wondering if you would mind posting the source of your PID routines on the forum.  Then I can just convert them to Python.&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;patrick&lt;br&gt;&lt;br&gt;</description><pubDate>Wed, 18 Aug 2010 12:48:54 GMT</pubDate><dc:creator>pirobot</dc:creator></item><item><title>Serializer and Sharp IR sensor</title><link>http://roboticsconnection.com/userForums/Topic1904-6-1.aspx</link><description>Hi all,&lt;br&gt;&lt;br&gt;I'm working with the sharp IR sensor and the serializer in visual C#. While the frequency of the sensor is set to 50Hz, I'm planning to extract all data points over a given length of time and plot them on a dynamic graph (adds data points as time progresses, of course). Logically this seems simple if we could simply do:&lt;br&gt;&lt;br&gt;while &lt;br&gt;{&lt;br&gt;&lt;br&gt;obtain sensor reading&lt;br&gt;&lt;br&gt;store sensor reading into array if necessary&lt;br&gt;&lt;br&gt;plot point on graph&lt;br&gt;&lt;br&gt;}&lt;br&gt;&lt;br&gt;However, I realized that given the serializer's library for the sensor, the data points are not generated in a while loop, but are instead updated with a given frequency by the command:&lt;br&gt;&lt;br&gt;xxx.UpdateFrequency = 50;&lt;br&gt;&lt;br&gt;My question is, is there a way to extract these readings and plot a real time graph? &lt;br&gt;&lt;br&gt;Thanks a ton</description><pubDate>Thu, 03 Jun 2010 20:40:51 GMT</pubDate><dc:creator>cloud_skyblue</dc:creator></item><item><title>Problems with SRF10 Sensor</title><link>http://roboticsconnection.com/userForums/Topic1865-6-1.aspx</link><description>Hello,&lt;br&gt;&lt;br&gt;I'm french student at Télécom St Etienne and i work on the stinger robot with a serializer and I need some helps.&lt;br&gt;&lt;br&gt;I have developed a software in DOTNET  (C# Windows Form) to drive the robot and I've had some problems with the sensors SRF10. I had already used the Serializer library documentation (API).&lt;br&gt;&lt;br&gt;Here is some information:&lt;br&gt;Serializer firmware's: 1.5.2&lt;br&gt;Interfacing: PC + USB board + Xbee Pro&lt;br&gt;&lt;br&gt;It's my source code about the sensors:&lt;br&gt;&lt;br&gt;[code]&lt;br&gt;#region CAPTEUR_SRF10&lt;br&gt;        private static SRF10 sonar = new SRF10(s_);&lt;br&gt;&lt;br&gt;        // I call this function when i push a button&lt;br&gt;        void InitialisationCapteur() &lt;br&gt;        {         &lt;br&gt;            sonar.Enabled = true; //Etat initiale du capteur desactiver&lt;br&gt;            sonar.UpdateFrequency = 50; //On recupere les informations du capteur toute les 50ms           &lt;br&gt;            sonar.DistanceChangedThreshold = 1;&lt;br&gt;            sonar.DistanceChanged += new SerializerComponentEventHandler(Sonar_Threshold);&lt;br&gt;        }&lt;br&gt;#endregion&lt;br&gt;&lt;br&gt; void Sonar_Threshold(SerializerComponent sender) //Arret du robot quand le detecteur detecte un objet à la distance choisi&lt;br&gt;        {      &lt;br&gt;            Arret_Robot();&lt;br&gt;            MessageBox.Show("Obstacle detecté: Arret du robot, enlever l'obstacle pour reprendre le controle","Obstacle",MessageBoxButtons.OK,MessageBoxIcon.Stop);   &lt;br&gt;        }     &lt;br&gt;&lt;br&gt;        void Arret_Robot()//Factorisation de la fonction d'arret du robot&lt;br&gt;        {&lt;br&gt;            mot.RightMotorSpeed = 0;&lt;br&gt;            mot.LeftMotorSpeed = 0;&lt;br&gt;            mot.Drive();&lt;br&gt;        } &lt;br&gt;&lt;br&gt;[/code]&lt;br&gt;The problems is that the event “Sonar_Threshold” never happened and I don't know why.&lt;br&gt;I've two questions:&lt;br&gt;&lt;br&gt;1)What is the unit for the value of SRF10 object .DistanceChangedThreshold  (on meters ?)&lt;br&gt;2)Did I do something wrong in my code to use the sensors ?*&lt;br&gt;&lt;br&gt;If you need more information ask me.&lt;br&gt;&lt;br&gt;Thx all and sorry for my english. &lt;br&gt;</description><pubDate>Fri, 07 May 2010 08:48:41 GMT</pubDate><dc:creator>Charlie.B</dc:creator></item><item><title>Suggestions for addition to SerializerLIB</title><link>http://roboticsconnection.com/userForums/Topic238-6-1.aspx</link><description>For whatever it is worth, here are a couple things I'd like to see in a future Serializer.NET (and Robotics Studio) release:&lt;/P&gt;&lt;P&gt;1. A class for the Sharp GP2Y0A02YK infrared sensor (8-60").  &lt;/P&gt;&lt;P&gt;2. A class for the Devontech MD23 (I2C H-Bridge).</description><pubDate>Tue, 25 Mar 2008 21:56:50 GMT</pubDate><dc:creator>cjohns</dc:creator></item><item><title>Newbie Question - How do you deploy the program to the Serializer</title><link>http://roboticsconnection.com/userForums/Topic1843-6-1.aspx</link><description>I have a program that works fine when running straight from Visual Studio 2010 but I would like to know how to deploy that code to the Serializer so I can remove my computer and make the robot work autonomously. &lt;br&gt;&lt;br&gt;Anyone have step by step instructions on how to do this. I am completely new to Visual Studio 2010 and have been scrambling to learn it as I get used to programming with the library. &lt;br&gt;&lt;br&gt;Any help would be greatly appreciated.&lt;br&gt;&lt;br&gt;Thanks in advance.</description><pubDate>Mon, 26 Apr 2010 20:57:55 GMT</pubDate><dc:creator>KyleMckay</dc:creator></item><item><title>Webcam</title><link>http://roboticsconnection.com/userForums/Topic625-6-1.aspx</link><description>Dear members,&lt;br&gt;&lt;br&gt;could you help me how to open webcam window in C# console application?&lt;br&gt;&lt;br&gt;&lt;br&gt;thanks a lot.&lt;br&gt;</description><pubDate>Thu, 21 Aug 2008 21:36:57 GMT</pubDate><dc:creator>Mohammad Al-Shamsi</dc:creator></item><item><title>Serializer.NET Lib with SHARP GP2Y0A02YK</title><link>http://roboticsconnection.com/userForums/Topic1825-6-1.aspx</link><description>Does anyone know when the SHARP GP2Y0A02YK IR sensor will be added to the library? I'm using that sensor with the serializer WL. Currently I'm calling the GP2D12 one but of course the outputs are weird. If the GP2Y0A02YK  hasn't been added yet, would anyone know how to convert the values? &lt;br&gt;&lt;br&gt;Thanks.</description><pubDate>Mon, 19 Apr 2010 00:12:23 GMT</pubDate><dc:creator>cloud_skyblue</dc:creator></item><item><title>Some API related questions: Motor rotation and debugging</title><link>http://roboticsconnection.com/userForums/Topic1765-6-1.aspx</link><description>Hi,&lt;br&gt;First i have to say i have been having a blast experimenting with my traxster! it took a while to get going, but now that i am up and running...its a lot of fun.  I do have some questions...&lt;br&gt;&lt;br&gt;1) Motor rotation.  Can you explain how this works? If i set the RoationAngle to 90, should the traxster rotate clockwise 90 degrees?  I am not seeing this happen..for me it rotates what looks like only 45 degrees.  I am wondering if this is because i might be on a rug?  If so, is there a way to check that the wheels are spinning the amount they should?&lt;br&gt;&lt;br&gt;2) debugging: There are times when stepping through the code, after stepping over certain lines of code that are suppose to move the motor or servo, nothing happens.  Why does this happen?  for example, below is a snippet of code that is executed once i have determined the vehicle needs to rotate:&lt;br&gt;&lt;br&gt;[quote]            do&lt;br&gt;            {&lt;br&gt;                ...&lt;br&gt;                ...&lt;br&gt;                ...&lt;br&gt;&lt;br&gt;                if (distanceRight &gt; distanceLeft)&lt;br&gt;                {&lt;br&gt;                    _rover.Motors.RotationAngle = 90;&lt;br&gt;                }&lt;br&gt;                else&lt;br&gt;                {&lt;br&gt;                    _rover.Motors.RotationAngle = -90;&lt;br&gt;                }&lt;br&gt;&lt;br&gt;                _rover.Motors.Rotate();&lt;br&gt;                _rover.WaitForMotor();&lt;br&gt;&lt;br&gt;                //move servo back to center and get another reading to make sure no&lt;br&gt;                //objects obstructing new facing direction&lt;br&gt;                _rover.Servo1.Position = 0;&lt;br&gt;                distanceForward = GetDistance(IrSensor1);&lt;br&gt;&lt;br&gt;            } while (distanceForward &lt; this.ObjectDistance);[/quote]&lt;br&gt;&lt;br&gt;In the above code _rover.Motors is an instance of PIDMotorController and the WaitForMotor() method simply waits for QueryStatus() to return true;&lt;br&gt;&lt;br&gt;I can step over each line of the code to the next, but at times the motor does not rotate nor does the Servo1 reset to center.  When running without stepping through code however, it seems to work fine.&lt;br&gt;</description><pubDate>Mon, 22 Mar 2010 23:19:27 GMT</pubDate><dc:creator>dizzy</dc:creator></item><item><title>Serializer.Net libary documentation</title><link>http://roboticsconnection.com/userForums/Topic1761-6-1.aspx</link><description>Hello,&lt;/P&gt;&lt;P&gt;I have been using the Traxster robot for my mobile robotics course for 3 years now and by far the most commonly asked questions by the students is for the library documentaton on the PID motor control class.  Is there any such documentation available online or via a PDF?  If not, when will it be available.&lt;/P&gt;&lt;P&gt;Thanks.</description><pubDate>Wed, 17 Mar 2010 15:21:39 GMT</pubDate><dc:creator>CABERRY</dc:creator></item><item><title>Cross Thread exception</title><link>http://roboticsconnection.com/userForums/Topic1750-6-1.aspx</link><description>I have a class that exposes public members of type AnalogSensor and GP2D12. This class is instantiated in a Form.  In that form i set the event handlers for the sensors. The problem i having is that when the event handlers are called i get an exception stating "Cross-thread operation not valid: Control 'lblSensor1' accessed from a thread other than the thread it was created on."&lt;br&gt;&lt;br&gt;[quote]&lt;br&gt;         public AnalogSensor BatterVoltage;&lt;br&gt;         public GP2D12 IrSensor1;&lt;br&gt;         private System.Timers.Timer _timer = new System.Timers.Timer();&lt;br&gt;&lt;br&gt;         public Rover()&lt;br&gt;        {&lt;br&gt;           _serializer = new Serializer();&lt;br&gt;           _serializer.BaudRate = 57600;&lt;br&gt;           _serializer.CommunicationStarted += new SerializerEventHandler(Serializer_CommunicationStarted);&lt;br&gt;&lt;br&gt;&lt;br&gt;            this.BatterVoltage = new AnalogSensor(_serializer);&lt;br&gt;            this.BatterVoltage.Pin = AnalogPinId.Pin5;&lt;br&gt;            this.BatterVoltage.UpdateFrequency = 1000;&lt;br&gt;&lt;br&gt;            this.IrSensor1 = new GP2D12(_serializer);&lt;br&gt;            this.IrSensor1.Pin = AnalogPinId.Pin0;&lt;br&gt;            this.IrSensor1.UpdateFrequency = 50;&lt;br&gt;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;public void InitRover()&lt;br&gt;        {&lt;br&gt;            _serializer.PortName = "COM3";&lt;br&gt;            _serializer.StartCommunication();&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        void Serializer_CommunicationStarted(Serializer sender)&lt;br&gt;        {&lt;br&gt;            ...&lt;br&gt;            _timer .Interval = 100;&lt;br&gt;            _timer .Elapsed += new ElapsedEventHandler(Timer_Elapsed);&lt;br&gt;            _timer .Enabled = true;&lt;br&gt;            _connected = true;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        void Timer_Elapsed(object sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;            if (_connected)&lt;br&gt;            {&lt;br&gt;                _serializer.PumpEvents();&lt;br&gt;            }&lt;br&gt;&lt;br&gt;        }&lt;br&gt;        ...&lt;br&gt;        ...&lt;br&gt;}&lt;br&gt;[/quote]&lt;br&gt;&lt;br&gt;calling class:&lt;br&gt;&lt;br&gt;[quote]public FrmRover()&lt;br&gt;       {&lt;br&gt;           InitializeComponent();&lt;br&gt;           _rover = new Rover();&lt;br&gt;           _rover.BatterVoltage.ValueChanged += new SerializerComponentEventHandler(BatteryVoltage_ValueChanged);&lt;br&gt;           _rover.IrSensor1.DistanceChanged += new SerializerComponentEventHandler(Sensor1_DistanceChanged);&lt;br&gt;&lt;br&gt;           _rover.InitRover();&lt;br&gt;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        void BatteryVoltage_ValueChanged(SerializerComponent sender)&lt;br&gt;        {&lt;br&gt;           this.lblBatteryVoltage.Text = "Voltage: " + _rover.BatterVoltage.Value * 0.01459;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        void Sensor1_DistanceChanged(SerializerComponent sender)&lt;br&gt;        {&lt;br&gt;            this.lblSensor1.Text = String.Format("Sensor1: {0}", _rover.IrSensor1.Distance);&lt;br&gt;        }&lt;br&gt;}[/quote]&lt;br&gt;&lt;br&gt;Here is the stacktrace:&lt;br&gt;[quote]&lt;br&gt;   at System.Windows.Forms.Control.get_Handle()&lt;br&gt;   at System.Windows.Forms.Control.set_WindowText(String value)&lt;br&gt;   at System.Windows.Forms.Control.set_Text(String value)&lt;br&gt;   at System.Windows.Forms.Label.set_Text(String value)&lt;br&gt;   at dss.robotics.rover.forms.FrmRover.Sensor1_DistanceChanged(SerializerComponent sender) in C:\Projects\Robotics\TestRobot\TestRobot\FrmRover.cs:line 52&lt;br&gt;   at RoboticsConnection.Serializer.Serializer.PumpEvents()&lt;br&gt;   at dss.robotics.rover.Rover.timer_elapsed(Object sender, EventArgs e) in C:\Projects\Robotics\TestRobot\TestRobot\Rover.cs:line 95&lt;br&gt;   at System.Timers.Timer.MyTimerCallback(Object state)&lt;br&gt;[/quote]&lt;br&gt;&lt;br&gt;Why does this exception occur? Is some of the code from the serializer .net api being run on a different thread (i.e. the PumpEvents method)?  Any suggestions on how to resolve without having to either move the event handlers into the Rover class or move the pumpevents timer into the form?&lt;br&gt;</description><pubDate>Tue, 16 Mar 2010 01:18:12 GMT</pubDate><dc:creator>dizzy</dc:creator></item><item><title>DistAcceleration parameter not working in .NET library?</title><link>http://roboticsconnection.com/userForums/Topic1532-6-1.aspx</link><description>Hi Jason,&lt;br&gt;&lt;br&gt;I was trying the DistAcceleration parameter for the first time in the PID controller.  I am using firmware version 1.5.2 and library version 3.0.0.  My Serializer is version 2.  The parameter does not seem to have any effect--I can set it anywhere from 1 to 1000 and the ramp up to speed remains the same which is fairly slow.  The parameter *does* work at the firmware level using Hyperterminal.  So setting dpid to 1:0:0:20:10 gives faster acceleration than 1:0:0:1:10.  However, there is no effect at the .NET library level.  Is it possible that the DistAcceleration parameter is being ignored in the library?&lt;br&gt;&lt;br&gt;The other DPID and VPID parameters I am using are:&lt;br&gt;&lt;br&gt;VelProportional = 2;&lt;br&gt;VelIntegral = 0;&lt;br&gt;VelDerivative = 5;&lt;br&gt;VelLoop = 5;&lt;br&gt;DistProportional = 1;&lt;br&gt;DistIntegral = 0;&lt;br&gt;DistDerivative = 0;&lt;br&gt;DistAcceleration = 20;&lt;br&gt;DistDeadband = 10;&lt;br&gt;DeadbandEnabled = true;&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;patrick&lt;br&gt;&lt;br&gt;</description><pubDate>Wed, 13 Jan 2010 21:31:13 GMT</pubDate><dc:creator>pirobot</dc:creator></item><item><title>digo from .NET</title><link>http://roboticsconnection.com/userForums/Topic1674-6-1.aspx</link><description>I want to control distance(direction) &amp; speed of my two motors independently (it's not for a robot so the class PIDMotorController doesn't seem to fit). I can do it with digo from a terminal but I can't find the equivalent method in the API.  Is the only way just sending the relevant bytes to the com port and can this be done from the API or do I have to do this without it ?&lt;br&gt;&lt;br&gt;</description><pubDate>Sun, 07 Feb 2010 23:04:18 GMT</pubDate><dc:creator>FazLogic</dc:creator></item><item><title>Robot Driving Aplication</title><link>http://roboticsconnection.com/userForums/Topic1109-6-1.aspx</link><description>Hello, &lt;br&gt;&lt;br&gt;Does anyone know where I can find some examples for using a play station 3 controller to drive my rorobot. &lt;br&gt;&lt;br&gt;thanks.&lt;br&gt;&lt;br&gt;</description><pubDate>Wed, 22 Apr 2009 15:25:38 GMT</pubDate><dc:creator>Bleker</dc:creator></item><item><title>Adding a new sensor</title><link>http://roboticsconnection.com/userForums/Topic1482-6-1.aspx</link><description>I've got a simple I2C IR sensor and want to implement a sensor class similar to the line follower. However, it's not clear to me how to do this from the documentation. I'd rather inherit from the base classes in the library rather than creating my own simple solution of polling the sensor.&lt;br&gt;&lt;br&gt;Also, is the .NET library source code available? I can't find it but I thought it was open source. Right now, because my C# isn't that good I'd use it to figure out things like adding new sensors.&lt;br&gt;</description><pubDate>Wed, 30 Dec 2009 07:12:06 GMT</pubDate><dc:creator>FazLogic</dc:creator></item><item><title>PIDMotorControler issue</title><link>http://roboticsconnection.com/userForums/Topic1459-6-1.aspx</link><description>&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Hi Jason and fellow forum members,&lt;/P&gt;&lt;P&gt;I'm using PIDMotorControlExample, built it and run it, things start spinning :). However, there are a few things I couldn't figure out, I'm hoping I can get some advice from you guys. &lt;/P&gt;&lt;P&gt;1. I have the Traxster, when using the Traxster setting, "Drive distance" consistantly short by about 12%, so I changed the wheel diameter from 2.899(which is correct) to 2.550, it solve the problem, now the bot runs exactly the distance as specified in GUI. Just wondering is this the right hack? &lt;/P&gt;&lt;P&gt;2. In VPID parameter setting, If I use a high L value like 50, the bot would run crazy, the motor would stop and go, run in reverse, totally unpredictable. &lt;/P&gt;&lt;P&gt;3. I want the robot to run a rectangle course, what I did is that I added a button to PIDMotorControlExample code called "run rectangle", and 2 trackbars allow me to specify the length of 2 sides of a rectangle, and when the button is clicked, my Traxster suppose to run a rectangle course. Below is my code for the button click:&lt;/P&gt;&lt;P&gt;private void runRectangleButton_Click(object sender, EventArgs e)&lt;BR&gt;        {&lt;/P&gt;&lt;P&gt;            int rLength = 0;&lt;BR&gt;            int rWidth = 0;&lt;BR&gt;            int motorSpeed = 0;&lt;/P&gt;&lt;P&gt;            rLength = RectangleLengthScroll.Value;&lt;BR&gt;            rWidth = RectangleWidthScroll.Value;&lt;BR&gt;            motorSpeed = MotorSpeed.Value;&lt;/P&gt;&lt;P&gt;            if (connected)&lt;BR&gt;            {&lt;BR&gt;                    pmc.Speed = motorSpeed;&lt;/P&gt;&lt;P&gt;                    pmc.Distance = rLength;&lt;BR&gt;                    pmc.TravelDistance();       &lt;BR&gt;                    Thread.Sleep(2000); &lt;BR&gt;                  &lt;BR&gt;                    pmc.RotationAngle = (double)90;&lt;BR&gt;                    pmc.Rotate();&lt;BR&gt;                    checkPid = false;&lt;BR&gt;                    Thread.Sleep(2000);&lt;/P&gt;&lt;P&gt;                    pmc.Distance = rWidth;&lt;BR&gt;                    pmc.TravelDistance();&lt;BR&gt;                    Thread.Sleep(2000);&lt;/P&gt;&lt;P&gt;                    pmc.RotationAngle = (double)90;&lt;BR&gt;                    pmc.Rotate();&lt;BR&gt;                    Thread.Sleep(2000);&lt;/P&gt;&lt;P&gt;                    pmc.Distance = rLength;&lt;BR&gt;                    pmc.TravelDistance();&lt;BR&gt;                    Thread.Sleep(2000);&lt;/P&gt;&lt;P&gt;                    pmc.RotationAngle = (double)90;&lt;BR&gt;                    pmc.Rotate();&lt;BR&gt;                    Thread.Sleep(2000);&lt;/P&gt;&lt;P&gt;                    pmc.Distance = rWidth;&lt;BR&gt;                    pmc.TravelDistance();&lt;BR&gt;                    Thread.Sleep(2000);&lt;/P&gt;&lt;P&gt;                    pmc.RotationAngle = (double)90;&lt;BR&gt;                    pmc.Rotate();&lt;/P&gt;&lt;P&gt;                    checkPid = true;&lt;BR&gt;                 }&lt;BR&gt;  }&lt;/P&gt;&lt;P&gt;When I run the code, the robot behaves rather strangely. It didn't run the distance I specified, instead, it runs about 15-16 inches, then turn. Looks like when I use TravelDistance() or Rotate() by themselves, they work fine, but when I put them together, they don't work as they suppose to. Maybe there are something I missed in the code? please advise. Thx much.&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Tue, 22 Dec 2009 00:09:13 GMT</pubDate><dc:creator>hexn</dc:creator></item><item><title>.NET library *offline* documentation</title><link>http://roboticsconnection.com/userForums/Topic1351-6-1.aspx</link><description>Greetings,&lt;br&gt;&lt;br&gt;I'm happy that I've been able to revisit my Traxster II project--I've now removed the Freescale HC12 MCU and am running with just the Serializer WL board (v2.0) and a Bluetooth module--both at 57600 baud.&lt;br&gt;&lt;br&gt;I've installed Visual Studio 2008 Professional and was able to look at some of the sample projects, but in order to wrap my head around the structure, etc., I'd like to print the Robotics Connection MSDN-style Serializer .NET documentation from a Windows 7 x64 machine.&lt;br&gt;&lt;br&gt;When I download the .chm file and open it from explorer, I get a message in the display pane telling me that the navigation was stopped, and nothing displays.  When I try to download the web version as a webpage for offline viewing, I don't get the pages.&lt;br&gt;&lt;br&gt;Is there a .pdf, or other printable and/or offline, version of the Serializer .NET library's documentation?&lt;br&gt;&lt;br&gt;BTW the V3 Serializer board looks nice--I'll have to order one before I get ready for my next project...&lt;br&gt;&lt;br&gt;Best regards,&lt;br&gt;--Scott Thompson&lt;br&gt;</description><pubDate>Sat, 07 Nov 2009 17:03:33 GMT</pubDate><dc:creator>electronguy</dc:creator></item><item><title>Obstacle Avoidance Application delivery</title><link>http://roboticsconnection.com/userForums/Topic1327-6-1.aspx</link><description>Hello Jason,&lt;/P&gt;&lt;P&gt;Do you have any delivery date on the obstacle avoidance application example ? I would really appreciate to have this kind of application for my traxster.&lt;/P&gt;&lt;P&gt;Thanks a lot and regards,&lt;/P&gt;&lt;P&gt;Frank.</description><pubDate>Sat, 24 Oct 2009 00:53:04 GMT</pubDate><dc:creator>fakajax</dc:creator></item><item><title>Servo Position</title><link>http://roboticsconnection.com/userForums/Topic1285-6-1.aspx</link><description>So after knocking my head against the wall for an hour or so trying to find out why I could not move a servo with some basic C# code I figured out that I had a faulty board as only the 5 and 6 slots functions.  While I am waiting for my replacement I had a quick question...&lt;/P&gt;&lt;P&gt;Is it possible to query the servos current position with the .net Library?&lt;/P&gt;&lt;P&gt;Adam</description><pubDate>Tue, 08 Sep 2009 19:17:50 GMT</pubDate><dc:creator>masoric</dc:creator></item><item><title>When to use Serializer.Run() and Serializer.PumpEvents()</title><link>http://roboticsconnection.com/userForums/Topic4-6-1.aspx</link><description>&lt;SPAN class=Forum_Normal id=spBody&gt;For those of you who have used the Serializer .NET library, you have probably seen that there are two ways to allow the library to send out events for the various objects as your application is running.   &lt;P&gt;You can either use:&lt;/P&gt;&lt;P&gt;1.) Serializer.Run(), or&lt;/P&gt;&lt;P&gt;2.) In an infinite loop, call Serializer.PumpEvents()&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Serializer.Run()&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;The Serializer.Run() method is useful if don't need to perform any processing in between events (such has handle button clicks, read joysticks, invoke other methods or interfaces).  Thus, if you have a simple application where all you want to do is print the output of various sensors values to the screen, and you have nothing else to do, then Serializer.Run() is your command.&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;using RoboticsConnection.Serializer;&lt;BR&gt;using RoboticsConnection.Serializer.Ids;&lt;BR&gt;using RoboticsConnection.Serializer.Sensors;&lt;BR&gt;using RoboticsConnection.Serializer.Components;&lt;BR&gt;using RoboticsConnection.Serializer.Controllers;&lt;BR&gt;using System;&lt;BR&gt;&lt;BR&gt;namespace test&lt;BR&gt;{&lt;BR&gt;   class Program&lt;BR&gt;   {&lt;BR&gt;      static Serializer serializer;&lt;BR&gt;      static GP2D12 irSensor;&lt;BR&gt;&lt;BR&gt;      static void Main(string[] args)&lt;BR&gt;      {&lt;BR&gt;          serializer = new Serializer();&lt;BR&gt;&lt;BR&gt;          // Sign up for the CommunicationStarted event, so we'll know&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;          // that the library has established communications w/ the board&lt;BR&gt;          serializer.CommunicationStarted += new SerializerEventHandler(serializer_CommunicationStarted);&lt;BR&gt;&lt;BR&gt;          // Create some object:&lt;BR&gt;&lt;FONT size=3&gt;&lt;FONT size=2&gt;          irSensor = new GP2D12(serializer);&lt;BR&gt;          irSensor.Pin = AnalogPinId.Pin2; &lt;BR&gt;          irSensor.UpdateFrequency = 50;&lt;BR&gt;          irSensor.DistanceChangedThreshold = 0.5;  &lt;BR&gt;&lt;BR&gt;          // Sign up to receive events from the GP2D12 object:    &lt;BR&gt;          irSensor.DistanceChanged += new SerializerComponentEventHandler(irSensor_DistanceChanged);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT size=3&gt;&lt;FONT size=2&gt;          serializer.StartCommunication();&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;          // Enter the run loop, which constantly invokes Serializer.PumpEvents()&lt;BR&gt;          // Communication with the serializer board is started and this thread &lt;BR&gt;          // is blocked until ShutDown() is called (presumably in an event handler).&lt;BR&gt;          // As PumpEvents() gets called internally, event for various objects, e.g. GP2D12&lt;BR&gt;          // will be signalled, and our handlers below will be invoked.&lt;BR&gt;          serializer.Run();&lt;BR&gt;      }&lt;BR&gt;&lt;BR&gt;      // This gets invoked once the Serializer object has established communication&lt;BR&gt;      // with the Serializer board:&lt;BR&gt;      static void serializer_CommunicationStarted(Serializer sender)&lt;BR&gt;      {&lt;BR&gt;          Console.WriteLine("Communication Started.");&lt;BR&gt;      }&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;      // This gets invoked once the GP2D12 distance has changed&lt;BR&gt;      // more than the threshold amount specified above.&lt;BR&gt;      static void irSensor_DistanceChanged(SerializerComponent sender)&lt;BR&gt;      {&lt;BR&gt;          Console.WriteLine("New gp2d12 distance: {0}", irSensor.Distance);&lt;BR&gt;      }&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;FONT size=2&gt;   }&lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Serializer.PumpEvents()&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;If you want to perform other processing in between events sent out from the Serializer .NET library, then you'll want to set up your own internal loop, whether it be a while(true) { } loop, or a Timer.Tick() handler (via a Windows Form), and invoke Serializer.PumpEvents() within that loop.  Building on the example above you would then have:&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;using RoboticsConnection.Serializer;&lt;BR&gt;using RoboticsConnection.Serializer.Ids;&lt;BR&gt;using RoboticsConnection.Serializer.Sensors;&lt;BR&gt;using RoboticsConnection.Serializer.Components;&lt;BR&gt;using RoboticsConnection.Serializer.Controllers;&lt;BR&gt;using System;&lt;BR&gt;&lt;BR&gt;namespace test&lt;BR&gt;{&lt;BR&gt;   class Program&lt;BR&gt;   {&lt;BR&gt;      static Serializer serializer;&lt;BR&gt;      static GP2D12 irSensor;&lt;BR&gt;&lt;BR&gt;      static void Main(string[] args)&lt;BR&gt;      {&lt;BR&gt;          serializer = new Serializer();&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;          serializer.PortName = "COM11";&lt;BR&gt;&lt;BR&gt;          // Sign up for the CommunicationStarted event, so we'll know&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;          // that the library has established communications w/ the board&lt;BR&gt;          serializer.CommunicationStarted += new SerializerEventHandler(serializer_CommunicationStarted);&lt;BR&gt;&lt;BR&gt;          // Create some object:&lt;BR&gt;&lt;FONT size=3&gt;&lt;FONT size=2&gt;          irSensor = new GP2D12(serializer);&lt;BR&gt;          irSensor.Pin = AnalogPinId.Pin2; &lt;BR&gt;          irSensor.UpdateFrequency = 50;&lt;BR&gt;          irSensor.DistanceChangedThreshold = 0.5;  &lt;BR&gt;&lt;BR&gt;          // Sign up to receive events from the GP2D12 object:    &lt;BR&gt;          irSensor.DistanceChanged += new SerializerComponentEventHandler(irSensor_DistanceChanged);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;FONT size=3&gt;&lt;FONT size=2&gt;&lt;FONT size=2&gt;&lt;/P&gt;&lt;P&gt;          serializer.StartCommunication();&lt;/FONT&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;BR&gt;          // Enter an infinite run loop, which constantly invokes Serializer.PumpEvents().&lt;BR&gt;          // This is doing the same thing as Serializer.Run(), however, you get a chance to&lt;BR&gt;          // do other tasks in between the call to Serializer.PumpEvents().&lt;BR&gt;          while(true)&lt;BR&gt;          {&lt;BR&gt;              // Do whatever you need to do here, such as set motor speeds, move servos,&lt;BR&gt;              // make navigation decisions, etc.&lt;BR&gt;&lt;BR&gt;              // Invoke Serializer.PumpEvents() so that any outstanding events &lt;BR&gt;              // that need to be triggered occurs.&lt;BR&gt;              Serializer.PumpEvents();&lt;BR&gt;          }&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;BR&gt;      }&lt;BR&gt;&lt;BR&gt;      // This gets invoked once the Serializer object has established communication&lt;BR&gt;      // with the Serializer board:&lt;BR&gt;      static void serializer_CommunicationStarted(Serializer sender)&lt;BR&gt;      {&lt;BR&gt;          Console.WriteLine("Communication Started.");&lt;/FONT&gt;&lt;FONT face="Courier New" size=2&gt;&lt;BR&gt;      }&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size=2&gt;      // This gets invoked once the GP2D12 distance has changed&lt;BR&gt;      // more than the threshold amount specified above.&lt;BR&gt;      static void irSensor_DistanceChanged(SerializerComponent sender)&lt;BR&gt;      {&lt;BR&gt;          Console.WriteLine("new gp2d12 distance: {0}", irSensor.Distance);&lt;BR&gt;      }&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;&lt;FONT size=2&gt;   }&lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Windows Forms...&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;If you want to build a Windows Form application, and interface the Serializer .NET library, it's really as simple as adding a Timer object (Components ToolBox) to your form...&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://www.roboticsconnection.com/userForums/Uploads/Images/109ff106-5b45-46a5-8833-5138.jpg"&gt;&lt;/P&gt;&lt;P&gt;setting the timer1 Enabled property to false, setting the Interval property to 10 (for example).   If you enable the timer1 Enabled property to True at this point, a race condition exists, and it may attempt to invoke serializer.PumpEvents() in the timer handler before the serializer object exists.&lt;/P&gt;&lt;P&gt;&lt;IMG src="http://www.roboticsconnection.com/userForums/Uploads/Images/f7a25f9a-97e0-4525-b526-82c6.jpg"&gt;&lt;/P&gt;&lt;P&gt;and adding a handler to handle the Tick event...&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System.Collections.Generic;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System.ComponentModel;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System.Data;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System.Drawing;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System.Text;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; System.Windows.Forms;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; RoboticsConnection.Serializer;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; RoboticsConnection.Serializer.Components;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; RoboticsConnection.Serializer.Controllers;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; RoboticsConnection.Serializer.Ids;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT face="Courier New"&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; RoboticsConnection.Serializer.Sensors;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;namespace&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; SerializerTestApp&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#000000&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;    public&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;partial&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Form1&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; : &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Form&lt;BR&gt;    &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;        private&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Serializer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; serializer;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;        private&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PwmDCMotorController&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; motor;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;        private&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;GP2D12&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New" color=#000000&gt; ir;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;        public&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; Form1()&lt;BR&gt;        &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            InitializeComponent();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            serializer = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Serializer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            serializer.PortName = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#a31515 size=2&gt;"COM1"&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            serializer.BaudRate = 19200;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            serializer.Units = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#2b91af size=2&gt;Units&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;.English;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            serializer.CommunicationStarted += &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SerializerEventHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(serializer_CommunicationStarted);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;            motor = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;PwmDCMotorController&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(serializer);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            motor.DCMotorId = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#2b91af size=2&gt;DCMotorId&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;.DCMotor1;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            motor.Speed = 0;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New"&gt;            ir = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;GP2D12&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(serializer);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            ir.DistanceChangedThreshold = 0.1;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            ir.Pin = &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#2b91af size=2&gt;AnalogPinId&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;.Pin0;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;            ir.UpdateFrequency = 50; &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT face="Courier New"&gt;// 50 msec&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;            ir.DistanceChanged += &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SerializerComponentEventHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;(ir_DistanceChanged);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;            serializer.StartCommunication();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;        } &lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;        void&lt;/FONT&gt;&lt;FONT size=2&gt; ir_DistanceChanged(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;SerializerComponent&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; sender)&lt;BR&gt;        &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;            &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#2b91af size=2&gt;Console&lt;/FONT&gt;&lt;FONT size=2&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Distance Changed: {0}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;, ir.Distance);&lt;BR&gt;        &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;        void&lt;/FONT&gt;&lt;FONT size=2&gt; serializer_CommunicationStarted(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;Serializer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; sender)&lt;BR&gt;        &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;            &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#2b91af size=2&gt;Console&lt;/FONT&gt;&lt;FONT size=2&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;"Communication Started"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;);&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT face="Courier New"&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;            // Enable timer, which is disabeld by default...&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;            timer1.Enabled = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;&lt;BR&gt;        }&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff size=2&gt;        private&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;FONT size=2&gt; timer1_Tick(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;EventArgs&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt; e)&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;        {&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT face="Courier New"&gt;            // Set motor speed based on distance of object&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT face="Courier New"&gt;            // in front of ir sensor.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;            motor.Speed = (&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;)(ir.Distance * 3.22);&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT face="Courier New"&gt;            // Let library signal outstanding events:&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT face="Courier New"&gt;            serializer.PumpEvents();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;        }&lt;BR&gt;    &lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;So, every 100 msec, the timer1_Tick() handler is setting the speed of a motor based on the distance of the object in front of the ir sensor.  Since the speed range of the motor is 0 to 100, and the distance range of the GP2D12 is 4 to 31, the ir distance is scaled by a factor of 3.22 so you can use the full motor speed range for this experiement.   In fact, it's just and example...and the logic isn't really that useful, eh? :)  Notice that even though the motor speed is being set every 100 msec, the internal distance property for the GP2D12 is being set every 50 msec.  When the distance changes more than the specified threshold specified above, then the &lt;FONT face="Courier New" size=2&gt;DistanceChanged event will occur, and the ir_DistanceChanged() handler will be invoked.&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;</description><pubDate>Sat, 19 Jan 2008 17:41:04 GMT</pubDate><dc:creator>jsummerour</dc:creator></item><item><title>Serial Module problems with Serializer .NET library</title><link>http://roboticsconnection.com/userForums/Topic1237-6-1.aspx</link><description>Hello,&lt;/P&gt;&lt;P&gt;I want to see if anyone has any ideas on the problem I appear to have in utilizing the serial module with the .NET library.  I have successfully utilized the USB and bluetooth modules in my applications but when I switch to the serial module and change the com port, I do not get any return from the module.  The Serializer and serial module combination performs flawlessly when I utilize Hyperterm with manualy typed Serializer commands.&lt;/P&gt;&lt;P&gt;My connection to the Module is over a PC - USB to Serial converter and serial cable. &lt;/P&gt;&lt;P&gt;Below is the small test program that I used with all three modules to read the batery voltage.  Below the program is data capture from the serial port of the program output and of me trying a hyperterm session of the same commands without a failure.  &lt;/P&gt;&lt;P&gt;The serializer is running firmware 1.5.2 and the serialzer .NET library is 1.2.5.0&lt;/P&gt;&lt;P&gt;Any ideas on what I am missing?&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Ids;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Sensors;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Components;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Controllers;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;using&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System;&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;namespace&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; test&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Program&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Serializer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; serializer;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;AnalogSensor&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; batteryVoltage;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Main(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;[] args)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;serializer = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Serializer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;();&lt;/P&gt;&lt;P&gt;serializer.BaudRate = 19200;&lt;/P&gt;&lt;P&gt;serializer.PortName = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"COM10"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/P&gt;&lt;P&gt;batteryVoltage = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;AnalogSensor&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(serializer);&lt;/P&gt;&lt;P&gt;batteryVoltage.Pin = &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;AnalogPinId&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Pin5;&lt;/P&gt;&lt;P&gt;batteryVoltage.UpdateFrequency = 1000;&lt;/P&gt;&lt;P&gt;batteryVoltage.ValueChangedThreshold = 1;&lt;/P&gt;&lt;P&gt;batteryVoltage.ValueChanged += &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;new&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;SerializerComponentEventHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(batteryVoltage_ValueChanged);&lt;/P&gt;&lt;P&gt;serializer.Run();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// Note: Since battery voltage fluctuates a little, you should&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;// see this event firing pretty regularly w/ a small threshold.&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;static&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; batteryVoltage_ValueChanged(&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;SerializerComponent&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Console&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Raw voltage reading: {0}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, batteryVoltage.Value);&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;int&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; voltage = (batteryVoltage.Value * 5) / 1024;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=2&gt;&lt;FONT color=#2b91af size=2&gt;Console&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Battery voltage: {0}"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, voltage);&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------&lt;/P&gt;&lt;B&gt;&lt;FONT size=1&gt;&lt;P&gt;[08/07/2009 19:06:42] - Open COM10 port (E:\example battery tester\example battery tester\bin\Debug\example battery tester.vshost.exe)&lt;BR&gt;&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#500564 size=1&gt;&lt;FONT color=#500564 size=1&gt;&lt;BR&gt;&lt;B&gt;[08/07/2009 19:06:43] - Written data&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;72 65 73 65 74 0d 72 65 73 65 74 0d 72 65 73 65 reset.reset.rese&lt;BR&gt;74 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f t.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 or 5.sensor 5.se&lt;BR&gt;6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d nsor 5.sensor 5.&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 sensor 5.sensor &lt;BR&gt;35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 5.sensor 5.senso&lt;BR&gt;72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e r 5.sensor 5.sen&lt;BR&gt;73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 sor 5.sensor 5.s&lt;BR&gt;65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 20 35 ensor 5.sensor 5&lt;BR&gt;0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 6f 72 .sensor 5.sensor&lt;BR&gt;20 35 0d 73 65 6e 73 6f 72 20 35 0d 73 65 6e 73 5.sensor 5.sens&lt;BR&gt;6f 72 20 35 0d or 5.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;BR&gt;&lt;B&gt;[08/07/2009 19:07:52] - Close port&lt;BR&gt;&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;&lt;BR&gt;&lt;B&gt;[08/07/2009 19:08:13] - Open COM10 port (C:\Program Files\Windows NT\hypertrm.exe)&lt;BR&gt;&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#500564 size=1&gt;&lt;FONT color=#500564 size=1&gt;&lt;BR&gt;&lt;B&gt;[08/07/2009 19:08:20] - Written data&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d sensor 5.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#056464 size=1&gt;&lt;FONT color=#056464 size=1&gt;&lt;BR&gt;[08/07/2009 19:08:29] - Read data&lt;BR&gt;&lt;BR&gt;0d 0a 4e 41 43 4b 0d 0a 3e ..NACK..&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#500564 size=1&gt;&lt;FONT color=#500564 size=1&gt;&lt;BR&gt;&lt;B&gt;[08/07/2009 19:08:38] - Written data&lt;BR&gt;&lt;/B&gt;&lt;BR&gt;73 65 6e 73 6f 72 20 35 0d sensor 5.&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#056464 size=1&gt;&lt;FONT color=#056464 size=1&gt;&lt;BR&gt;[08/07/2009 19:08:43] - Read data&lt;BR&gt;&lt;BR&gt;0d 0a 38 36 32 20 0d 0a 3e ..862 ..&amp;gt;&lt;BR&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Wed, 08 Jul 2009 19:44:42 GMT</pubDate><dc:creator>Jonedw</dc:creator></item><item><title>I2C Generic to MD23</title><link>http://roboticsconnection.com/userForums/Topic247-6-1.aspx</link><description>Jason,&lt;/P&gt;&lt;P&gt;Thanks for your response to my earlier post.  I'll pull this out into a separate topic in case it might help someone else.  I saw the I2CDevice object and figured that would be the way to go, for communicating with the not-yet-supported MD23 I2C device.  &lt;/P&gt;&lt;P&gt;However, I got a little hung up with the I2C byte sequences that you mention.  The MD23 documentation discussing the registers, etc., is at &lt;A href="http://www.robot-electronics.co.uk/htm/md23tech.htm"&gt;http://www.robot-electronics.co.uk/htm/md23tech.htm&lt;/A&gt; and it describes "first send a start bit, the module address (0xB0 for example) with the read/write bit low, then the register number you wish to read [there is a list of registers, 0-16, in a table there].  This is followed by a repeated start and the module address again with the read/write bit high (0xB1 in this example).  You are now able to read one or more registers."&lt;/P&gt;&lt;P&gt;Being a relative newbie to I2C and serial communication, I haven't quite been able to translate that into C#, let alone English :)&lt;/P&gt;&lt;P&gt;What i2cd.Write() command(s) would I issue to this (assuming it's at its default I2C address, 0xB0) to read the battery volts (register 10) and write a mode of "2" to register 16?  [A read example and a write example should be enough to get me off to the races!] :)&lt;/P&gt;&lt;P&gt;Thanks!</description><pubDate>Wed, 26 Mar 2008 11:45:20 GMT</pubDate><dc:creator>cjohns</dc:creator></item><item><title>Trying to get robot avoiding objects.........</title><link>http://roboticsconnection.com/userForums/Topic1017-6-1.aspx</link><description>Spent days trying it in C# trying to convert examples in microframework(MF) documentation with no joy&lt;/P&gt;&lt;P&gt;So now tried it using VB as more familiar with that and still no joy, just jumps about erratically and doesn't respond to sensors etc&lt;/P&gt;&lt;P&gt;Hopefully Jason can get samples obstacle avoidance app done so we can all get more of an idea how to do it??!?!&lt;/P&gt;&lt;P&gt;Have posted code below in case anyone can see obvious error (which is quite possible!):-&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Collections.Generic&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.ComponentModel&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Data&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Drawing&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Linq&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Math&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.Windows.Forms&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; System.IO.Ports&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Components&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Controllers&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Ids&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Imports&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; RoboticsConnection.Serializer.Sensors&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;P&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;FONT color=#000000&gt; Form1&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; serializer &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Serializer&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; pmc &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; PIDMotorController&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; dmc &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DifferentialMotorController&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; batteryVoltage &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Sensors.AnalogSensor(Serializer)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; connected &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Boolean&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorLeft &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GP2D12(serializer)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorCentre &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GP2D12(serializer)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorRight &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; GP2D12(serializer)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; REVERSE &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = -5&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; STOPPED &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 0&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SLOW &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 8&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MEDIUM &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 12&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; FAST &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 16&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Double&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceFront &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Double&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceRight &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Double&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; directionTaken &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Left"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DistanceBuffer &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Integer&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = 6.0&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; drive &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Boolean&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Form1_Load(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;MyBase&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Load&lt;/P&gt;&lt;P&gt;serializer.BaudRate = 19200&lt;/P&gt;&lt;P&gt;serializer.Units = Units.Metric&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; serializer.CommunicationStarted, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddressOf&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Serializer_communicationStarted&lt;/P&gt;&lt;P&gt;batteryVoltage.Pin = AnalogPinId.Pin5&lt;/P&gt;&lt;P&gt;batteryVoltage.UpdateFrequency = 1000&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; batteryVoltage.ValueChanged, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddressOf&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Battery_Value_Changed&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;For&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Each&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; port &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;In&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SerialPort.GetPortNames()&lt;/P&gt;&lt;P&gt;ComListBox.Items.Add(port)&lt;/P&gt;&lt;P&gt;ComListBox.Text = port&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Next&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM setup for PID Motor Control (Traxster!!!)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; PIDMotorController(serializer)&lt;/P&gt;&lt;P&gt;pmc.VelProportional = 10&lt;/P&gt;&lt;P&gt;pmc.VelIntegral = 0&lt;/P&gt;&lt;P&gt;pmc.VelDerivative = 5&lt;/P&gt;&lt;P&gt;pmc.VelLoop = 20&lt;/P&gt;&lt;P&gt;pmc.DistProportional = 1&lt;/P&gt;&lt;P&gt;pmc.DistIntegral = 0&lt;/P&gt;&lt;P&gt;pmc.DistDerivative = 0&lt;/P&gt;&lt;P&gt;pmc.DistAcceleration = 1&lt;/P&gt;&lt;P&gt;pmc.DistDeadband = 5&lt;/P&gt;&lt;P&gt;pmc.DeadbandEnabled = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.EncoderResolution = 12&lt;/P&gt;&lt;P&gt;pmc.GearReduction = 0.0185&lt;/P&gt;&lt;P&gt;pmc.TicksPerRevolution = 624&lt;/P&gt;&lt;P&gt;pmc.WheelDiameter = 2.899&lt;/P&gt;&lt;P&gt;pmc.WheelTrack = 7.25&lt;/P&gt;&lt;P&gt;pmc.VelocityDivider = 2.857&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM setup for Differential Motor Control&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;dmc = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;New&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DifferentialMotorController(serializer)&lt;/P&gt;&lt;P&gt;dmc.LeftMotorId = 1&lt;/P&gt;&lt;P&gt;dmc.RightMotorId = 2&lt;/P&gt;&lt;P&gt;dmc.RampingRate = 0&lt;/P&gt;&lt;P&gt;dmc.RampingEnabled = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Sharp InfraRed Distance (Left)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;IRSensorLeft.Pin = AnalogPinId.Pin0&lt;/P&gt;&lt;P&gt;IRSensorLeft.DistanceChangedThreshold = 0.1&lt;/P&gt;&lt;P&gt;IRSensorLeft.ValueChangedThreshold = 1&lt;/P&gt;&lt;P&gt;IRSensorLeft.UpdateFrequency = 50&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorLeft.DistanceChanged, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddressOf&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorLeft_Distance_Changed&lt;/P&gt;&lt;P&gt;LBLIRSensorLeft.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Left: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(IRSensorLeft.Distance) &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" cm"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Sharp InfraRed Distance (Centre)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;IRSensorCentre.Pin = AnalogPinId.Pin1&lt;/P&gt;&lt;P&gt;IRSensorCentre.DistanceChangedThreshold = 0.1&lt;/P&gt;&lt;P&gt;IRSensorCentre.ValueChangedThreshold = 1&lt;/P&gt;&lt;P&gt;IRSensorCentre.UpdateFrequency = 50&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorCentre.DistanceChanged, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddressOf&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorCentre_Distance_Changed&lt;/P&gt;&lt;P&gt;LBLIRSensorCentre.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Centre: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(IRSensorCentre.Distance) &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" cm"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Sharp InfraRed Distance (Right)&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;IRSensorRight.Pin = AnalogPinId.Pin2&lt;/P&gt;&lt;P&gt;IRSensorRight.DistanceChangedThreshold = 0.1&lt;/P&gt;&lt;P&gt;IRSensorRight.ValueChangedThreshold = 1&lt;/P&gt;&lt;P&gt;IRSensorRight.UpdateFrequency = 50&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddHandler&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorRight.DistanceChanged, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;AddressOf&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorRight_Distance_Changed&lt;/P&gt;&lt;P&gt;LBLIRSensorRight.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Right: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(IRSensorRight.Distance) &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" cm"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Battery_Value_Changed(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SerializerComponent)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Dim&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; voltage &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Double&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; = (batteryVoltage.Value * 0.01459)&lt;/P&gt;&lt;P&gt;BatteryVoltageLabel.Text = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;String&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;.Format(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Serializer Battery Voltage: {0:0.0} volts"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, voltage)&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; Serializer_communicationStarted(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; RoboticsConnection.Serializer.Serializer)&lt;/P&gt;&lt;P&gt;ConnectionStatusLabel.ForeColor = Color.Green&lt;/P&gt;&lt;P&gt;ConnectionStatusLabel.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Connection Status: Connected"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;connected = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;SerializerFirmwareVersionLabel.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Serializer Firmware Version: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; + serializer.GetFirmwareVersion()&lt;/P&gt;&lt;P&gt;timer1.Enabled = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; timer1_Tick(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; timer1.Tick&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; (connected) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;serializer.PumpEvents()&lt;/P&gt;&lt;P&gt;MoveRobot()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ConnectButton_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ConnectButton.Click&lt;/P&gt;&lt;P&gt;serializer.PortName = ComListBox.Text&lt;/P&gt;&lt;P&gt;serializer.StartCommunication()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DisconnectButton_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; DisconnectButton.Click&lt;/P&gt;&lt;P&gt;ConnectionStatusLabel.ForeColor = Color.Black&lt;/P&gt;&lt;P&gt;ConnectionStatusLabel.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Connection Status: Disconnected"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;serializer.ShutDown()&lt;/P&gt;&lt;P&gt;connected = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ExitButton_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; ExitButton.Click&lt;/P&gt;&lt;P&gt;serializer.ShutDown()&lt;/P&gt;&lt;P&gt;Application.Exit()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Updates left infrared sensor reading&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorLeft_Distance_Changed(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SerializerComponent)&lt;/P&gt;&lt;P&gt;LBLIRSensorLeft.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Left: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(IRSensorLeft.Distance) &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" cm"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Updates centre infrared sensor reading&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorCentre_Distance_Changed(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SerializerComponent)&lt;/P&gt;&lt;P&gt;LBLIRSensorCentre.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Centre: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(IRSensorCentre.Distance) &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" cm"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Updates right infrared sensor reading&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; IRSensorRight_Distance_Changed(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; SerializerComponent)&lt;/P&gt;&lt;P&gt;LBLIRSensorRight.Text = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Right: "&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &amp;amp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;CStr&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;(IRSensorRight.Distance) &amp;amp; &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;" cm"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; btnGo_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; btnGo.Click&lt;/P&gt;&lt;P&gt;drive = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Private&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; btnStop_Click(&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; sender &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.Object, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ByVal&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; e &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;As&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; System.EventArgs) &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Handles&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; btnStop.Click&lt;/P&gt;&lt;P&gt;drive = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;False&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Public&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; MoveRobot()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;While&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; drive = &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;True&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Take reading to right&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;distanceRight = IRSensorRight.Distance&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Take reading in front&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;distanceFront = IRSensorCentre.Distance&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Take reading to left&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;distanceLeft = IRSensorLeft.Distance&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM ============================================&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM Basic States:&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 0 0 Wide Open&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 0 1 Obstacle to Right&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 1 0 0 Obstacle to Left&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 1 0 Obstacle In Front&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 1 1 Obstacle in Front and Right&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 1 1 0 Obstacle in Front and Left&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 1 1 1 Obstacle in Front, Left, and Right&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM ============================================&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 0 0 Wide Open&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;gt;= 12.0 &amp;amp; distanceFront &amp;gt;= 12.0 &amp;amp; distanceRight &amp;gt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.Distance = distanceFront - DistanceBuffer&lt;/P&gt;&lt;P&gt;pmc.TravelDistance()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 0 1 Obstacle to Right&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;gt;= 12.0 &amp;amp; distanceFront &amp;gt;= 12.0 &amp;amp; distanceRight &amp;lt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = -45&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 1 0 0 Obstacle to Left&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;lt;= 12.0 &amp;amp; distanceFront &amp;gt;= 12.0 &amp;amp; distanceRight &amp;gt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = 45&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 1 0 Obstacle in Front&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;gt;= 12.0 &amp;amp; distanceFront &amp;lt;= 12.0 &amp;amp; distanceRight &amp;gt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM If we went left last time, go right this time&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; directionTaken = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Left"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = -45&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;directionTaken = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Right"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM If we went right last time, go left this time&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;ElseIf&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; directionTaken = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Right"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = 45&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;directionTaken = &lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"Left"&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 1 1 Obstacle in Front and Right&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;gt;= 12.0 &amp;amp; distanceFront &amp;lt;= 12.0 &amp;amp; distanceRight &amp;lt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = -45&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 1 1 0 Obstacle in Front and Left&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;lt;= 12.0 &amp;amp; distanceFront &amp;lt;= 12.0 &amp;amp; distanceRight &amp;gt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = 45&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=2&gt;&lt;FONT color=#008000 size=2&gt;REM 0 1 1 Obstacle in Front and Right and Centre&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; distanceLeft &amp;lt;= 12.0 &amp;amp; distanceFront &amp;lt;= 12.0 &amp;amp; distanceRight &amp;lt;= 12.0 &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Then&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;pmc.Speed = FAST&lt;/P&gt;&lt;P&gt;pmc.RotationAngle = 180&lt;/P&gt;&lt;P&gt;pmc.Rotate()&lt;/P&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;If&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;While&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;P&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Sub&lt;/P&gt;&lt;P&gt;End&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#000000 size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;Class&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Mon, 09 Mar 2009 10:50:31 GMT</pubDate><dc:creator>wingers</dc:creator></item><item><title>Robotic Applications page</title><link>http://roboticsconnection.com/userForums/Topic982-6-1.aspx</link><description>The applications on&lt;br&gt;http://www.roboticsconnection.com/t-RoboticApplications.aspx&lt;br&gt;are really great. &lt;br&gt;&lt;br&gt;I am in particular interested in the "Robot Driving Application" and hope it will be posted soon&lt;br&gt;&lt;br&gt;Thank you,&lt;br&gt;Ralph</description><pubDate>Tue, 03 Mar 2009 08:56:47 GMT</pubDate><dc:creator>rscheubr</dc:creator></item><item><title>C# classes delima with .Run() or .PumpEvents()</title><link>http://roboticsconnection.com/userForums/Topic985-6-1.aspx</link><description>I have been spending far too much time for the little progress I have made in making my program modular.&lt;br&gt;  What I have accomplished so far: All my programs and modified Roboticsconnection samples work fine inside the base 'Form1' .&lt;br&gt;  Using my separate forms or classes I have managed to create a Windows Form that manages the GUI that works to connect to and initiallize the Serializer WL form / class. I can also shut down and do simple one time things like blink the LEDS.&lt;br&gt;  I can not get my Sensors or Motors classes ( separate modules) to work. The serializer.Run() nor the serlizer.PumpEvents() will activate therefore I never get the sensor readings. I can provide a small sample&lt;br&gt;of my attempts if this will help describe what I am attempting. &lt;br&gt;  Ideally I want the main form to manage the GUI and individual forms for Servos, Motors, Sensors, avoidance logic, and other forms as needed later.&lt;br&gt;&lt;br&gt;thanks in advance for any help,&lt;br&gt;</description><pubDate>Tue, 03 Mar 2009 21:19:19 GMT</pubDate><dc:creator>Don Lewis</dc:creator></item><item><title>object avoidance using ir sensors</title><link>http://roboticsconnection.com/userForums/Topic963-6-1.aspx</link><description>don't suppose anyone has any sample code for object avoidance using ir sensors either in visual basic or c#?&lt;/P&gt;&lt;P&gt;Been playing about for hours but not got far so need something to go on!!&lt;/P&gt;&lt;P&gt;Thanks all</description><pubDate>Wed, 25 Feb 2009 14:28:22 GMT</pubDate><dc:creator>wingers</dc:creator></item><item><title>Visual Basic examples</title><link>http://roboticsconnection.com/userForums/Topic865-6-1.aspx</link><description>Hi all&lt;/P&gt;&lt;P&gt;Does anyone have any example code for controlling the serializer/traxster written in Visual Basic&lt;/P&gt;&lt;P&gt;I am not really a programmer but do know a bit of VB, but don't have a clue about VC#&lt;/P&gt;&lt;P&gt;Would love to have some basic examples done in VB that I can learn from and modify, if not I will bite the bullet and learn VC# instead :(</description><pubDate>Fri, 30 Jan 2009 13:36:02 GMT</pubDate><dc:creator>wingers</dc:creator></item><item><title>Interpretation of the Value of an AnalogSensor</title><link>http://roboticsconnection.com/userForums/Topic754-6-1.aspx</link><description>Hi,&lt;br&gt;I connected an analog sensor to AnalogPinId.Pin0. When querying the pin's "Value" property I am receiving values between 0 and 550. The documentation of the sensor says that it should deliver between 0 and 3V. I would be interested in to learn which formula exactly to use to translate the value-reading to a voltage.&lt;br&gt;&lt;br&gt;Thank you&lt;br&gt;Ralph</description><pubDate>Fri, 12 Dec 2008 03:49:59 GMT</pubDate><dc:creator>rscheubr</dc:creator></item><item><title>Control for Windows-Form</title><link>http://roboticsconnection.com/userForums/Topic755-6-1.aspx</link><description>Hi,&lt;br&gt;on the website there is this great looking control http://www.roboticsconnection.com/t-RadarPanel.aspx.&lt;br&gt;Is the source for this control available anywhere? (When downloading the corresponding link http://www.roboticsconnection.com/multimedia/libraries/NETLibrary/SensorQueryWinFormExample.ZIP this form does not seem to be included.)&lt;br&gt;&lt;br&gt;Thank you,&lt;br&gt;Ralph</description><pubDate>Fri, 12 Dec 2008 03:54:39 GMT</pubDate><dc:creator>rscheubr</dc:creator></item><item><title>Additional DC motor</title><link>http://roboticsconnection.com/userForums/Topic713-6-1.aspx</link><description>Hi all, does anyone know how to control a 3rd D.C motor ? i do not need speed control on this 3rd motor, all i need is full forward and full back hence changing polarity. is this possible with the chip ? any examples how i may do this ?&lt;br&gt;&lt;br&gt;Thanks Zak.</description><pubDate>Thu, 27 Nov 2008 01:13:44 GMT</pubDate><dc:creator>sailaholic</dc:creator></item><item><title>Visuall studio 2008</title><link>http://roboticsconnection.com/userForums/Topic692-6-1.aspx</link><description>Hi does anybody know if the .net serializer is compatible with Visuall studio 2008 or just with Visuall studio 2005 ?&lt;/P&gt;&lt;P&gt;Thanks Zak</description><pubDate>Sat, 22 Nov 2008 04:42:32 GMT</pubDate><dc:creator>sailaholic</dc:creator></item><item><title>problem connecting to the chip</title><link>http://roboticsconnection.com/userForums/Topic691-6-1.aspx</link><description>Hi i have connected the .net serialize chip via USB on COM port3. with a port scanner it indicates that commands are being sent to the chip, but the chip does not respond to this simple code. any ideas what the problem might be ? the COM port ? the code ? the chip ?&lt;br&gt;&lt;br&gt;MANY THANKS ZAK&lt;br&gt;&lt;br&gt;using System;&lt;br&gt;using System.Collections.Generic;&lt;br&gt;using System.ComponentModel;&lt;br&gt;using System.Data;&lt;br&gt;using System.Drawing;&lt;br&gt;using System.Linq;&lt;br&gt;using System.Text;&lt;br&gt;using System.Windows.Forms;&lt;br&gt;using RoboticsConnection.Serializer;&lt;br&gt;using RoboticsConnection.Serializer.Ids;&lt;br&gt;using RoboticsConnection.Serializer.Sensors;&lt;br&gt;using RoboticsConnection.Serializer.Controllers;&lt;br&gt;using RoboticsConnection.Serializer.Components;&lt;br&gt;&lt;br&gt;namespace WindowsFormsApplication4&lt;br&gt;{&lt;br&gt;    public partial class Form1 : Form&lt;br&gt;    {&lt;br&gt;        Serializer s;&lt;br&gt;        GP2D120 right;&lt;br&gt;        private PwmDCMotorController motor;&lt;br&gt;        public Form1()&lt;br&gt;        {&lt;br&gt;            InitializeComponent();&lt;br&gt;             s= new Serializer();&lt;br&gt;            &lt;br&gt;            s.PortName = "COM3";&lt;br&gt;&lt;br&gt;            right = new GP2D120(s);&lt;br&gt;            right.Pin =  AnalogPinId.Pin0;&lt;br&gt;            right.DistanceChangedThreshold = 0.1;&lt;br&gt;            &lt;br&gt;            right.UpdateFrequency = 50; // 50 msec&lt;br&gt;            right.DistanceChanged += new SerializerComponentEventHandler(ir_DistanceChanged);&lt;br&gt;&lt;br&gt;            motor = new PwmDCMotorController(s);&lt;br&gt;            motor.DCMotorId = DCMotorId.DCMotor2;&lt;br&gt;            motor.Speed = 0;&lt;br&gt;            s.AsyncCallbacksEnabled = false;&lt;br&gt;            s.StartCommunication();&lt;br&gt;            &lt;br&gt;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        private void Form1_Load(object sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;&lt;br&gt;        }&lt;br&gt;        void ir_DistanceChanged(SerializerComponent sender)&lt;br&gt;        {&lt;br&gt;            textBox1.AppendText("Distance Changed: {0}" + right.Distance.ToString());&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        private void timer1_Tick(object sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;            s.PumpEvents();&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        private void button1_Click(object sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;           s.BlinkLED(LedId.Led2, 250);&lt;br&gt;            double a = right.Distance;&lt;br&gt;            motor.Speed = 50;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        private void button2_Click(object sender, EventArgs e)&lt;br&gt;        {&lt;br&gt;            s.BlinkLED(LedId.Led2, 1000);&lt;br&gt;            s.BlinkLED(LedId.Led1, 1000);&lt;br&gt;        }&lt;br&gt;    }&lt;br&gt;}&lt;br&gt;</description><pubDate>Fri, 21 Nov 2008 07:12:42 GMT</pubDate><dc:creator>sailaholic</dc:creator></item><item><title>Serializer Connection issues in VB.Net Code</title><link>http://roboticsconnection.com/userForums/Topic694-6-1.aspx</link><description>Hi All, &lt;br&gt;&lt;br&gt;Hopefully someone will be able to see my mistake quick and push me in the right direction,&lt;br&gt;&lt;br&gt;im having issues connecting to the Serializer via a bluetooth connection in .net code, i can access it fine in Hyperterminal get the firmware and make the leds flash, but when i try the same thing in VS it just wont work, i get a NullReferenceException every time as soon as i call the StartCommunication Method&lt;br&gt;&lt;br&gt;&lt;br&gt;below is a chunk of my code&lt;br&gt;&lt;br&gt;        Dim s_ As Serializer&lt;br&gt;        s_ = New Serializer()&lt;br&gt;        s_.PortName = "COM5"&lt;br&gt;        s_.BaudRate = 19200&lt;br&gt;        s_.Units = Units.Metric&lt;br&gt;        s_.AsyncCallbacksEnabled = False&lt;br&gt;        &lt;br&gt;        s_.StartCommunication()&lt;br&gt;        &lt;br&gt;        Dim firmware As String = s_.GetFirmwareVersion()&lt;br&gt;        Console.WriteLine(firmware)&lt;br&gt;&lt;br&gt;        s_.BlinkLED(LedId.Led1, 50)&lt;br&gt;        s_.BlinkLED(LedId.Led2, 50)&lt;br&gt;</description><pubDate>Sun, 23 Nov 2008 22:52:49 GMT</pubDate><dc:creator>Salty</dc:creator></item><item><title>Timing of Bluetooth Connection</title><link>http://roboticsconnection.com/userForums/Topic679-6-1.aspx</link><description>Hi,&lt;P&gt;I wonder if there is way to find out how long it takes until a command issued to the SerializerLib to be executed by the Serializer in particular if the PC and the robot are connected using bluetooth.&lt;/P&gt;&lt;P&gt;In addition, it would be interested to know how much time has passed since the last answer from the serializer was received.&lt;/P&gt;&lt;P&gt;best,&lt;/P&gt;&lt;P&gt;Ralph</description><pubDate>Wed, 12 Nov 2008 12:20:15 GMT</pubDate><dc:creator>rscheubr</dc:creator></item><item><title>Motor Control</title><link>http://roboticsconnection.com/userForums/Topic606-6-1.aspx</link><description>&lt;P style="BACKGROUND: white"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #1f5080; FONT-FAMILY: 'Verdana','sans-serif'"&gt;[quote]Hi,&lt;BR&gt;I’m beginner in C# and wrote this code below in Microsoft Visual C# 2008 Express in Console application to control DC motors. Actually I want to control DC motors from the keyboard, but the problem is I have to press enter after press key.&lt;BR&gt;How can I solve this problem? and How can i change Com port?&lt;BR&gt;Thank you.:)&lt;BR&gt;using RoboticsConnection.Serializer;&lt;BR&gt;using RoboticsConnection.Serializer.Ids;&lt;BR&gt;using RoboticsConnection.Serializer.Sensors;&lt;BR&gt;using RoboticsConnection.Serializer.Components;&lt;BR&gt;using RoboticsConnection.Serializer.Controllers;&lt;BR&gt;using System;&lt;BR&gt;using System.Threading;&lt;BR&gt; &lt;BR&gt;namespace test&lt;BR&gt;{&lt;BR&gt;    class Program&lt;BR&gt;    {&lt;BR&gt;        static Serializer serializer;&lt;BR&gt;        static PwmDCMotorController LeftMotor;&lt;BR&gt;        static PwmDCMotorController RightMotor;&lt;BR&gt; &lt;BR&gt;        static void Main(string[] args)&lt;BR&gt;        {&lt;BR&gt;            serializer = new Serializer();&lt;BR&gt; &lt;BR&gt;            LeftMotor = new PwmDCMotorController(serializer);&lt;BR&gt;            RightMotor = new PwmDCMotorController(serializer);&lt;BR&gt; &lt;BR&gt;            LeftMotor.DCMotorId = DCMotorId.DCMotor2;&lt;BR&gt;            RightMotor.DCMotorId = DCMotorId.DCMotor1;&lt;BR&gt; &lt;BR&gt;            serializer.StartCommunication();&lt;BR&gt;            while (true)&lt;BR&gt;            {&lt;BR&gt;                serializer.PumpEvents();&lt;BR&gt; &lt;BR&gt;              &lt;BR&gt;                Console.Write("Enter Key:");&lt;BR&gt;                string s = Console.ReadLine();&lt;BR&gt; &lt;BR&gt;                if (s == "w")&lt;BR&gt;                {&lt;BR&gt;                    LeftMotor.Speed = 100;&lt;BR&gt;                    RightMotor.Speed = 100;&lt;BR&gt;                }&lt;BR&gt;                if (s == "a")&lt;BR&gt;                {&lt;BR&gt;                    LeftMotor.Speed = -100;&lt;BR&gt;                    RightMotor.Speed = 100;&lt;BR&gt;                }&lt;BR&gt;                if (s == "d")&lt;BR&gt;                {&lt;BR&gt;                    LeftMotor.Speed = 100;&lt;BR&gt;                    RightMotor.Speed = -100;&lt;BR&gt;                }&lt;BR&gt;                if (s == "x")&lt;BR&gt;                {&lt;BR&gt;                    LeftMotor.Speed = -100;&lt;BR&gt;                    RightMotor.Speed = -100;&lt;BR&gt;                }&lt;BR&gt;                if (s == "s")&lt;BR&gt;                {&lt;BR&gt;                    LeftMotor.Speed = 0;&lt;BR&gt;                    RightMotor.Speed = 0;&lt;BR&gt;                }&lt;BR&gt;            }&lt;BR&gt;        }&lt;BR&gt;    }&lt;BR&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P class=MsoNormal style="MARGIN: 0cm 0cm 10pt"&gt;&lt;SPAN style="FONT-SIZE: 8pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Courier New'; mso-no-proof: yes"&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 8pt; LINE-HEIGHT: 115%"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;</description><pubDate>Sun, 03 Aug 2008 13:19:36 GMT</pubDate><dc:creator>Mohammad Al-Shamsi</dc:creator></item><item><title>Time delay</title><link>http://roboticsconnection.com/userForums/Topic492-6-1.aspx</link><description>Hi I have a Problem and I don´t know if it a Hard - or Software Problem.&lt;/P&gt;&lt;P&gt;I write a Programm in C#. There is a Button on the interface, when I press this Button a Motor starts.  A switch which is connected on I/O Pin 1 works as a counter.&lt;/P&gt;&lt;P&gt;The start and stop from the motor over the C# Interface works great and very fast. But the count from the switch which is connected to the borad has a time delay of 0,5 - 1 second.&lt;/P&gt;&lt;P&gt;Is this normal? Can I make this faster? is there the possibility the press of the switch to write in a register, so that I see the counter works when i press the switch faster? &lt;/P&gt;&lt;P&gt;I have tried some different "Timer" periods from 25 - 200 msec. But the counter is always to slow.</description><pubDate>Sat, 10 May 2008 01:42:10 GMT</pubDate><dc:creator>Silvermatrix</dc:creator></item><item><title>Unhandled exception errror</title><link>http://roboticsconnection.com/userForums/Topic568-6-1.aspx</link><description>Hi all,&lt;br&gt;we are working on a summer robotics project at Mesa State College and have run into an early snag. &lt;br&gt;We have the serializer controller board with the bluetooth serial interface with one servo connected to servo pin 1 (digital 8). When we try to run this code: &lt;br&gt;&lt;br&gt;[i]using System;&lt;br&gt;using System.Collections.Generic;&lt;br&gt;using System.Linq;&lt;br&gt;using System.Text;&lt;br&gt;&lt;br&gt;using RoboticsConnection.Serializer;&lt;br&gt;using RoboticsConnection.Serializer.Components;&lt;br&gt;using RoboticsConnection.Serializer.Controllers;&lt;br&gt;using RoboticsConnection.Serializer.Ids;&lt;br&gt;using RoboticsConnection.Serializer.Sensors;&lt;br&gt;&lt;br&gt;namespace ServoApp&lt;br&gt;{&lt;br&gt;    class Program&lt;br&gt;    {&lt;br&gt;        Serializer serializer;&lt;br&gt;        ServoMotorController antennaServo;&lt;br&gt;&lt;br&gt;        private void InitializeSerializer()&lt;br&gt;        {&lt;br&gt;            serializer = new Serializer();&lt;br&gt;            serializer.BaudRate = 19200;&lt;br&gt;            serializer.PortName = "COM40";&lt;br&gt;            serializer.CommunicationStarted += new SerializerEventHandler(serializer_CommunicationStarted);&lt;br&gt;&lt;br&gt;&lt;br&gt;            antennaServo = new ServoMotorController(serializer);&lt;br&gt;            antennaServo.ServoMotorId = ServoMotorId.ServoMotor1;&lt;br&gt;            antennaServo.Position = -100;&lt;br&gt;&lt;br&gt;            serializer.Run();&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        void serializer_CommunicationStarted(Serializer sender)&lt;br&gt;        {&lt;br&gt;            serializer.BlinkLED(LedId.Led1, 50);&lt;br&gt;            serializer.BlinkLED(LedId.Led2, 100);&lt;br&gt;            serializer.Units = Units.English;&lt;br&gt;        }&lt;br&gt;&lt;br&gt;        static void Main(string[] args)&lt;br&gt;        {&lt;br&gt;            Program p = new Program();&lt;br&gt;&lt;br&gt;            System.Threading.Thread thread = new System.Threading.Thread(&lt;br&gt;                new System.Threading.ThreadStart(p.InitializeSerializer));&lt;br&gt;            thread.Start();&lt;br&gt;&lt;br&gt;&lt;br&gt;            for (int position = -99; position &lt;= 100; ++position)&lt;br&gt;            {&lt;br&gt;                p.antennaServo.Position = position;&lt;br&gt;                for (int i = 0; i &lt; 100000; ++i) { ; }&lt;br&gt;            }&lt;br&gt;            p.serializer.ShutDown();&lt;br&gt;        }&lt;br&gt;&lt;br&gt;    }&lt;br&gt;}[/i]&lt;br&gt;&lt;br&gt;we get this error:&lt;br&gt;&lt;br&gt;[i]Unhandled Exception: System.NullReferenceException: Object reference not set to&lt;br&gt;an instance of an object.&lt;br&gt;   at RoboticsConnection.Serializer.Internal.CommunicationTask.ThreadProc()&lt;br&gt;   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)&lt;br&gt;   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, C&lt;br&gt;ontextCallback callback, Object state)&lt;br&gt;   at System.Threading.ThreadHelper.ThreadStart()&lt;br&gt;&lt;br&gt;[/i]&lt;br&gt;&lt;br&gt;&lt;br&gt;Does anyone have any ideas on what might be wrong here?&lt;br&gt;Thanks &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description><pubDate>Tue, 24 Jun 2008 17:22:23 GMT</pubDate><dc:creator>caquinto</dc:creator></item><item><title>Getting distance traveled from PID controller?</title><link>http://roboticsconnection.com/userForums/Topic525-6-1.aspx</link><description>Hi Jason,&lt;br&gt;&lt;br&gt;I've checked the .Net documentation on the PID controller interface and it's not clear to me if I can get the distance traveled between any two points in time.  In other words, suppose I command my robot to move 48 inches but part way through it has to stop because of an obstacle.  I'd like to be able to read off how far it traveled before stopping.  If I were doing it at the firmware level I could clear the encoder counters then read off their values when the robot stopped.&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;patrick&lt;br&gt;&lt;br&gt;</description><pubDate>Sat, 31 May 2008 11:08:36 GMT</pubDate><dc:creator>pirobot</dc:creator></item><item><title>How to cleanly shutdown a .NET Serializer application?</title><link>http://roboticsconnection.com/userForums/Topic449-6-1.aspx</link><description>Yes, it's me again! :)  I am trying to cleanly shut down my Serializer C# application but I must be missing something.&lt;br&gt;&lt;br&gt;I am using a Bluetooth connection to the Serializer and everything works great in terms of firing up the application, connecting to the Serializer, retrieving senors values, etc.  Then I close my Windows form and issue either a Serializer Shutdown() or StopCommunication() command--or both--during the "Form Closed" or "Form Closing" event handler.  The application shuts down cleanly with no complaint (I'm running this all in Debug mode within Visual Studio 2005).  However, if I fire the application up again, it connects to the Serializer but no longer sees any sensor values--in other words, the fields on my form that display the sensor values all show 0.  With the application still running, if I reset the Serializer using the little white push button, then the sensor values show up again.  This behavior always occurs--I can never run the application twice in a row without resetting or power-cycling the Serializer.&lt;br&gt;&lt;br&gt;Any thoughts?&lt;br&gt;&lt;br&gt;Thanks,&lt;br&gt;patrick&lt;br&gt;</description><pubDate>Thu, 24 Apr 2008 15:28:20 GMT</pubDate><dc:creator>pirobot</dc:creator></item><item><title>Volume, Pitch and Speed for SP03?</title><link>http://roboticsconnection.com/userForums/Topic500-6-1.aspx</link><description>Hello Jason,&lt;br&gt;&lt;br&gt;Is there a way to embed volume, pitch or speed control characters in the string phrase passed to the SP03.Speak method?    When I used my SP03 with a Brainstem controller in the past, the Acroname software interface had a way to set these parameters.&lt;br&gt;&lt;br&gt;Thanks!&lt;br&gt;patrick&lt;br&gt;</description><pubDate>Wed, 14 May 2008 20:33:33 GMT</pubDate><dc:creator>pirobot</dc:creator></item></channel></rss>