View unanswered posts | View active topics It is currently Wed Jul 30, 2014 10:58 am






Reply to topic  [ 3 posts ] 
MindSensors GlideWheel-M tests 
Author Message
Senior Roboticist
User avatar

Joined: Wed Sep 28, 2011 10:13 pm
Posts: 630
Location: If I told you, I'd have to kill you.
Post MindSensors GlideWheel-M tests
MindSensors kindly sent me some GlideWheel-Ms to test. Here are my tests, and their results:


Speed test.

I wanted to see how fast the GlideWheel-M could go before it broke, or started to lose encoder counts. Also how well it handled different motors directly connected to it, as well as PWM. It's probably better explained in the video;


So, it handles most motors pretty well. PF-XL seems to be the best, with RC motor (obviously) doing worst. The GlideWheel-M can easily handle speed exceeding 1000 RPMs, though I don't really see a application that would be using that :wink:

Just some pics of the setup and motors.

Image

Image

Image

Code:
task SpeedAdjust();

task main()
{
  nxtDisplayCenteredTextLine(0, "Do you want");
  nxtDisplayCenteredTextLine(1, "PID control?");
  nxtDisplayCenteredTextLine(2, "This will give");
  nxtDisplayCenteredTextLine(3, "speeds like the");
  nxtDisplayCenteredTextLine(4, "MindStorms NXT");
  nxtDisplayCenteredTextLine(5, "Servo Motor.");
  nxtDisplayCenteredTextLine(7, "No.        Yes.");

  while(nNxtButtonPressed == kNoButton);

  if(nNxtButtonPressed == kLeftButton) nMotorPIDSpeedCtrl[motorA] = mtrNoReg;
  else nMotorPIDSpeedCtrl[motorA] = mtrSpeedReg;

  while(nNxtButtonPressed != kNoButton);

  eraseDisplay();

  nxtDisplayCenteredTextLine(7, "DEC         INC");

  StartTask(SpeedAdjust);

  while(true)
  {
    time1[T1] = 0;

    nMotorEncoder[motorA] = 0;

    while(nMotorEncoder[motorA] < 360 && nMotorEncoder[motorA] > -360);

    nxtDisplayCenteredTextLine(2, "Mtr RPM = %d", 60000 / time1[T1]);
    nxtDisplayCenteredTextLine(3, "Mtr RPS = %d", 1000 / time1[T1]);
  }
}

task SpeedAdjust()
{
  int speed = 0;

  while(true)
  {
    if(nNxtButtonPressed == kLeftButton) speed -= 1;
    if(nNxtButtonPressed == kRightButton) speed += 1;

    if(speed > 100) speed = 100;
    if(speed < -100) speed = -100;

    nxtDisplayCenteredTextLine(0, "Mtr speed = %d", speed);
    nxtDisplayCenteredTextLine(1, "Mtr PWM = %d", motorPWMLevel[motorA]);

    motor[motorA] = speed;

    wait1Msec(100);
  }
}



Encoder test.

Not much to this one. Run a NXT motor and PF-XL with the GlideWheel-M for 1000 revolutions, and see how much they drifted.


GlideWheel-M encoder accuracy is equal to, or better than the NXT motor.

Code:
#pragma config(Motor,  motorC,          ,              tmotorNormal, PIDControl, reversed, encoder)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

task main()
{
  long MtrBTtlEncdr = 0;
  long MtrCTtlEncdr = 0;

  for(int i = 1; i <= 1000; i++)
  {
    nMotorEncoder[motorB] = 0;
    nMotorEncoder[motorC] = 0;

    nMotorEncoderTarget[motorB] = 360;
    nMotorEncoderTarget[motorC] = 360;

    motor[motorB] = 50;
    motor[motorC] = 50;

    while(nMotorRunState[motorB] != runStateIdle && nMotorRunState[motorC] != runStateIdle);

    motor[motorB] = 0;
    motor[motorC] = 0;

    MtrBTtlEncdr += nMotorEncoder[motorB];
    MtrCTtlEncdr += nMotorEncoder[motorC];

    nxtDisplayCenteredTextLine(2, "NXT Encdr: %d", MtrBTtlEncdr);
    nxtDisplayCenteredTextLine(3, "PF Encdr: %d", MtrCTtlEncdr);
    nxtDisplayCenteredTextLine(5, "Revolutions: %d", i);
  }
}


So, there they are. I could've done better, but I was pressed for time (BrickWorld, cleaning up, etc). I also used these in my BrickWorld 2012 BOTS challenge robot, but that's another post.

_________________
A.K.A. inxt-generation
Self-proclaimed genius, and future world dominator.
My Brickshelf Folder
"Don't they teach recreational mathematics anymore?" - The Tenth Doctor
Bow down to Nikola Tesla, King of the Geek Gods.


Wed Jul 18, 2012 4:39 pm
Profile WWW
Expert

Joined: Tue Feb 28, 2012 3:10 pm
Posts: 195
Post Re: MindSensors GlideWheel-M tests
Nicely done!

"The GlideWheel-M can easily handle speed exceeding 1000 RPMs, though I don't really see a application that would be using that"

I might use it as a starter for my next line follower's motor; http://www.amtjets.com/Nike.php

_________________
Mike aka Spiked3
http://www.spiked3.com


Wed Jul 18, 2012 5:36 pm
Profile
Senior Roboticist
User avatar

Joined: Wed Sep 28, 2011 10:13 pm
Posts: 630
Location: If I told you, I'd have to kill you.
Post Re: MindSensors GlideWheel-M tests
Spiked3 wrote:
Nicely done!

"The GlideWheel-M can easily handle speed exceeding 1000 RPMs, though I don't really see a application that would be using that"

I might use it as a starter for my next line follower's motor; http://www.amtjets.com/Nike.php


Thanks! :biggrin:

I can't seem to find where that motors top speed is. But when I was testing this, I supercharged a RC motor to about 1700 RPMs, and started to hear clicking noises withing the GlideWheel-M. So for "speeds exceeding 1000 RPMs" I would not suggest going over 1500 RPM. I would test the absolute limit, but don't have the money to replace broken parts, or to get enough RC motors for that speed.

_________________
A.K.A. inxt-generation
Self-proclaimed genius, and future world dominator.
My Brickshelf Folder
"Don't they teach recreational mathematics anymore?" - The Tenth Doctor
Bow down to Nikola Tesla, King of the Geek Gods.


Wed Jul 18, 2012 6:27 pm
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron



Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.