Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   General Forum (http://www.chiefdelphi.com/forums/forumdisplay.php?f=16)
-   -   Please help Wave Robotics earn $1,000!!! (http://www.chiefdelphi.com/forums/showthread.php?t=95038)

Jon Stratis 04-05-2011 17:23

Re: Please help Wave Robotics earn $1,000!!!
 
Quote:

Originally Posted by RMiller (Post 1059183)
At the rate this is going, it might be over 1,000,000 for the total count (figure 40,000 today x 25 days). Actually, it has been the better part of 40,000 in under 5 hours!

I think your underestimating... as students get off school this afternoon, I expect the numbers to start skyrocketing. Can we hit 100k tonight?

bobrenjc93 04-05-2011 17:54

Re: Please help Wave Robotics earn $1,000!!!
 
I'm so tempted to write an automated coin deposit script...

WarpSpeed10 04-05-2011 18:02

Re: Please help Wave Robotics earn $1,000!!!
 
And that's the 50,000th coin. You guys are awesome. Hope you win :D

Robotmmm 04-05-2011 18:06

Re: Please help Wave Robotics earn $1,000!!!
 
We can do it!

100,000 by midnight.

(And let's do it w/o all those slick scripts I know you guys could come up with.)

efoote868 04-05-2011 21:20

Re: Please help Wave Robotics earn $1,000!!!
 
Quote:

Originally Posted by Andrew Schreiber (Post 1059182)
Actually yes, I'm curious how you tell where the coins are.

(Hey, it is a really cool application and I'm curious!)

It took me about ~30 minutes to write this (I wrote something similar for a different thing oh so long ago).

I apologize for using magic numbers for pixel locations. Also, do not run this if you're not willing to give up the use of your computer for a minute.



Code:

/*
 Copyright (C) 2011  Evan Foote

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;

public void robotRunner()
{
  try
  {
    Robot myRobot = new Robot();
    myRobot.delay(4000);

    //get the current system time for reference on how long to run
    long time = System.currentTimeMillis();

    int loops = 0;

    int x = 560; //coordinate of the screen in pixels where the coins appear
    int y = 560;           
    int dx = 0; //or offset, where we're sampling
    int dy = 0;               
    int xmax = 240; //size of the rectangle we're sampling
    int ymax = 150;               
    int xsamp = 40; //AKA the step size between samples
    int ysamp = 20;

    Color c; //the sampled color

    int cnt = 0; //The number of coins we've found

    //run main loop for about 1 minute
    while (System.currentTimeMillis() - time < 1*60*1000)
    {
      //iterate through each coordiante in the sample space
      for (dx = 0; dx < xmax; dx += xsamp)
      {
        for (dy = 0; dy < ymax; dy += ysamp)
        {
          //snag the color where we're sampling
          c = myRobot.getPixelColor(x + dx, y + dy);

          //check and see if the color is something other than white (like yellow)
          if (notWhite(c))
          {
            //move the mouse to that location
            myRobot.mouseMove(x + dx, y + dy);
            //increment the count so we know when to stop
            cnt++;

            //subtract this sample so we can check again
            dy -= ysamp;

            //left click the mouse, wait, drag it to the piggy bank, wait,
            //release it, wait.
            myRobot.mousePress(16);
            myRobot.delay(50);
            myRobot.mouseMove(448, 537);
            myRobot.delay(50);
            myRobot.mouseRelease(16);
            myRobot.delay(50);

            //TODO: CAN BETTER THIS CODE by:
            //checking that the coin traveled with the mouse. If it didn't,
            //subtract 1 from the cnt and try again.

            //alright, grabbed 5 coins. click on the refresh button
            if(cnt == 5)
            {
              myRobot.mouseMove(1109, 87);
              myRobot.delay(50);
              myRobot.mousePress(16);
              myRobot.delay(50);
              myRobot.mouseRelease(16);

              //wait a second for the page to refresh. Slower internet speeds
              //should wait longer.
              myRobot.delay(1000);
              break;
            }//if count is at 5
          }//if sample is not white
        }//for each y pixel

        //Putting this in the outer for loop so we can break from it
        //as well.
        if (cnt == 5)
        {
          //reset the count and the iteration
          cnt = 0;
          break;
        }
      }//for each x row

      //if dy >= ymax, it means that we've traveled all the way and didn't
      //spot 5 coins. something went bad, refresh the page.
      if (dy >= ymax)
      {
        myRobot.mouseMove(1109, 87);
        myRobot.delay(50);
        myRobot.mousePress(16);
        myRobot.delay(50);
        myRobot.mouseRelease(16);

        myRobot.delay(1000);

        cnt = 0;
      }

    loops++;
    }//while loop

    System.out.println("Number of loops run: " + loops);
  }//try
  catch(Exception e)
  {
    //not sure what would cause above code to be more than exceptional, but
    //if it is, I don't care and we can stop running here.
  }
}

private boolean notWhite (Color c)
{
  return (c.getRed() + c.getBlue() + c.getGreen() < 255*3);
}


gyroscopeRaptor 04-05-2011 21:31

Re: Please help Wave Robotics earn $1,000!!!
 
I suggest you remove the script. It's highly likely that the rules don't have anything good to say about macros to gain points. This could result in Wave Robotics losing by default.

Duke461 04-05-2011 21:44

Re: Please help Wave Robotics earn $1,000!!!
 
60,000 :D

BrianT103 04-05-2011 22:20

Re: Please help Wave Robotics earn $1,000!!!
 
Just dropped a few coins in for WAVE. You guys are awesome, good luck!

Andrew Schreiber 04-05-2011 22:46

Re: Please help Wave Robotics earn $1,000!!!
 
Quote:

Originally Posted by efoote868 (Post 1059255)
It took me about ~30 minutes to write this (I wrote something similar for a different thing oh so long ago).

I apologize for using magic numbers for pixel locations. Also, do not run this if you're not willing to give up the use of your computer for a minute.

Just doing a naive search if I am understanding this correctly. Does anyone feel like taking a crack at this using vision processing in Labview?

(Not badmouthing this at all, just curious if any of the FRC students want to put all that vision processing they did to good use)

Ryan Himmelblau 04-05-2011 23:01

Re: Please help Wave Robotics earn $1,000!!!
 
Imagine a world solely consisting of FIRST students. Oh the things that we could do.

Emiller8 04-05-2011 23:10

Re: Please help Wave Robotics earn $1,000!!!
 
Team 11, MORT, is helping out. I have been repeating the refresh cycle for about an hour now. I talked to our website site manager, and the link is now posted on the homepage of our team website as well as on our facebook page. With a score of 63,000 to 15,000, all of chief delphi helping you out, and calling in reinforcements, I seriously doubt that you can lose this. Good luck on getting the 1,000 dollars!!

popnbrown 04-05-2011 23:13

Re: Please help Wave Robotics earn $1,000!!!
 
If I vote for you guys will you make an attempt to help the technology needs at Emmeline Cook Elementary School? Or atleast help their technology education?

WarpSpeed10 04-05-2011 23:19

Re: Please help Wave Robotics earn $1,000!!!
 
Quote:

Originally Posted by popnbrown (Post 1059275)
If I vote for you guys will you make an attempt to help the technology needs at Emmeline Cook Elementary School? Or atleast help their technology education?

A robot demo for the kids would be cool. Very GP.

popnbrown 04-05-2011 23:30

Re: Please help Wave Robotics earn $1,000!!!
 
Quote:

Originally Posted by WarpSpeed10 (Post 1059276)
A robot demo for the kids would be cool. Very GP.

I voted for you guys because I believe that you guys will do something like ^ that! :D

efoote868 04-05-2011 23:46

Re: Please help Wave Robotics earn $1,000!!!
 
Quote:

Originally Posted by Andrew Schreiber (Post 1059269)
Just doing a naive search if I am understanding this correctly. Does anyone feel like taking a crack at this using vision processing in Labview?

(Not badmouthing this at all, just curious if any of the FRC students want to put all that vision processing they did to good use)

Yeah, a working search algorithm doesn't take too much time at all. I'm not exactly sure how getpixelcolor works, but its a VERY slow method. Probably a direct screenshot and some image manipulation would make it work faster. :)


All times are GMT -5. The time now is 12:36.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi