Kinskii Sumo Test Build Mac OS
I have managed to get the electronics onto the Fingertech chassis and have a somewhat working bot. Still a bit more work to go. Using Sharp sensors and PIC micro controller.
- Kinski Sumo Test Build Mac Os Download
- Kinski Sumo Test Build Mac Os 11
- Kinski Sumo Test Build Mac Os Catalina
- Kinski Sumo Test Build Mac Os X
In that article we will look to this sections.
- What is Mini Sumo Robot?
- Mini Sumo Robot Parts List
- Opponent Sensors & Testing
- Line Sensors & Testing
- DC Motors, how to use?
- Soldering Part
- Mechanical Assembly
- Start to Coding
- How to Develop Mini Sumo Robot?
- Homeworks
- Hi SUMO Users/Developers, I am using SUMO to optimize the global time and energy of all cars by varying the routes of cars. I see that currently, duaIterate.py has a cost function that minimizes individual travel time. I was wondering if there is a way I can change the cost function and minimize global travel time.
- In Sumo Logic select Manage Data Collection Collection. Click Add Collector, click Installed Collector, and then click the link for the Collector to begin the download. Open a browser and enter the static URL for your Sumo deployment. See how to determine which endpoint to use if you are unsure. The download begins immediately.
What is Mini Sumo Robot?
Mini sumo robot is a special robot type that it beats the opponent mini sumo in special rules. Each robot is fully autonomous and tries to prudh other opponent robot. At mini sumo competition usually there is weight and dimension limit ( Max. 10 cm width, 10 cm length, no heigh limit, and max. 500 grams total weight)
Mini sumo robotics is very popular in lots of countries, Mexico, USA, Ecuador, Peru, Turkey, Romania, UK, Poland, Japan is some of them. Usually first timers try to make mini sumo robot due to easiness and fun.
In that article we will use XMotion at center of our mini sumo robot. Before starting I strongly suggest you to read our first XMotion Basics article. If you read that we can continue.
XMotion is best controller for mini sumo robots. We strongly emphasize this, but why? Just watch below video.
Yes, that was not mini sumo video. But I guess you understand the power controlling capability of XMotion. Now think as this 8 kg explorer robot shrinkified to 500 grams mini sumo robot. You have little monster in your hand. XMotion’s potential gives you to make best projects. It is Arduino based controller so nothing to new learn for code environment.
At this article we will use XMotion Mini Sumo Kit, but you don’t need to use. Just read and learn the concept. Any similar design can be made with xmotion.
At this article we will use XMotion Mini Sumo Kit, but you don’t need to use. Just read and learn the concept. Any similar design can be made with xmotion.
So for minisumo robot what should we have here the list:
- 6V 300 Rpm Core Series Gear Motor x
- Micro Line Sensor (ML1) x 2
- JS1 Opponent Sensor x 5
- Steel Mini Sumo Chassis x 1
- JS2721 Silicone – Aluminum Wheel x 2
- 3S 350 Mah LiPo Battery x 1
- Mini Katana Blade
- Screws
- Cable 24 AWG (thin multi-stranded)
- Double Sided Adhesive tape.
First we need to test every part before assembling. Our test procedure includes multimeter (voltage measurement mode) and power supply. Set power supply output to 5V and attach to JS40F sensors. JS40F cable definition.
- Brown: 5V
- Blue: Gnd (-)
- Black: Signal
Kinski Sumo Test Build Mac Os Download
Just attach brown and blue. If it sees something red led at backside will light on. Test 5 of them.
Now test the ML1 sensors, before testing you need to solder wires. After soldering give 5V to ML1s. Attach multimeter’s Ground to sensor’s ground. and measurement prob (red one) to ML1’s signal output. At empty space or black it should give 5V and at white surface or at finger it should give 0V. If it gives 4V at black and 0.5V at white that’s ok too. it gives analog output but XMotion or any digital mcu reads Logic 1 as any signal input higher than 3V. So no problem.
Next, test the motors by applying voltage and look to power supply about how much current it draws. Both motors should be similar.At our tests motors were drawing 200 ma currents. If you don’t have laboratory power supply no problem, attach motors to lipo battery and listem the motor voice. They should be similar both.
Solder the opponent sensors. For opponent sensor soldering here the pins:
- Left Sensor: D0
- Left Diagonal: D1
- Middle Sensor: D2
- Right Diagonal Sensor: D4
- Right Sensor: A5 (We will use it as digital input)
After soldering Oppoent sensors. We will solder ML1 sensors.
- Left Line Sensor: A2
- Right Line Sensor: A1
When soldering cables, length should be like 12-15cm. Little longer but it will help us to place the board or remove more easily.
After this stage, last things are battery and motors. Solder left and right motor cables to pins (due to programming we will look first motors should go forward and we will make trial. So you may need to resolder the cables with reversed. Another option is you can use green terminals.
If you solder the motors, next please solder the last component. Battery input pins. if you want you can solder green terminals. But I preferred male header pins. Xmotion has both different pitch (2.54mm and 5mm) input holes.
Now we will contiune to mechanical assembly. Place ML1 sensors to front spaces. This cables will help them to stay sturdy. And place opponent sensors to their places. They will tightly fit. Next place motors to backside with their mounts.
Until this stage everything was like a puzzle. Now we will attach the silicone mini sumo robot wheels. At wheels there is one allen key wrench. Remove the silicone side from rim and put the wheel to motor. Later use allen wrench with headless setscrew to link wheel rim and motor shaft securely.
Now we will add our battery to middle of chassis. No need to attach to anything. From upside XMotion board will hold it very well. After this screw xmotion board to cnc machined chassis. There is two threaded holes for xmotion.
At this stage, robot should be like that.
Now we can start to coding.
I am thinking that from previous article you downloaded the XMotion’s library. First we need to make sure both motors are going forward. So we will write this code and burn the Xmotion.
void setup() {
}
void loop() {
xmotion.Forward(30, 1000); // 1 Second (1000ms) Forward
xmotion.StopMotors(100); //Stop 100ms
xmotion.Right0(40, 100); //Right 0 turn 0.1 second
xmotion.StopMotors(100); //Stop 100ms
xmotion.Left0(40, 100); //Left 0 turn 0.1 second
xmotion.StopMotors(5000); //Stop 5000ms
}
With this code we will examine the motor connections. When first it must go forward, both motors. If they turn one motor is turning backward, please remove solder and reverse connections and resolder. If both is going backward make this process for both. After that look for they turning to right and left true. If motors are reversed they can go forward true but can turn at opposite sides.
Now let’s develop the code. We will start with definitions, what we have? Sensors… yes. At beginning of code we are writing these defs.
int RightSensor=A5; //Right Opponent Sensor Pin
int RightDiagonalSensor=A4; //Right Diagonal Opppnent Sensor Pin
int MiddleSensor=2; //Middle Oppoent Sensor Pin
int LeftDiagonalSensor=D1; //Left Diagonal Opponent Sensor Pin
int LeftSensor=D0; //Left Opponent Sensor Pin
int LeftLine=A2; //Left Line Sensor Pin
int RightLine=A1; //Right Line Sensor Pin
int Start=10; //Start Button Pin
void setup() {
xmotion.BlinkDelay(1000); // Blink Delay Function for blinking 2 User Leds
pinMode(RightSensor, INPUT); // We declare Digital Inputs and outputs.
pinMode(RightDiagonalSensor, INPUT);
pinMode(MiddleSensor, INPUT);
pinMode(LeftDiagonalSensor, INPUT);
pinMode(LeftSensor, INPUT);
pinMode(Start, INPUT);
}
At here important thing is we didn’t declared motor control and user led output pins. But they are declared at xmotion.h library. Also we don’t declare analog inputs with pinMode command. So these pins are enough.
At traditional competitions usually referee gives start and we push the signal and it waits 5 seconds. Nowadays usually start modules are used but first we will try with 5 second delay mode.
We will read the start button digitally. This button gives 0 when not pushed. So lets write while statement to main loop functions.
void loop() {
while (digitalRead(Start) 0) // Button push is waited. When Button is pushed, it gives 1 value.
{
xmotion.ToggleLeds(20); //Toggle Both User Leds 20millisecond Intervals.
}
While is very useful statement. Xmotion’s Mcu reads the codes from up to down. So when it comes to this while, it locks to there because button output is 0 if not pushed to anything. If we push it will give logic 1 (It will be digital read as 5V= logic 1) And it will escape from this while routine. So when button is pushed it will wait 5 seconds. Lets write 5 seconds blinking code.
for (int i=0; i <= 4; i++){ // For loop counts from 0 to 4 total 5 times loop here.
xmotion.UserLed1(500); // 500 ms Light On, 500ms Light Off.
}
New thing! For statements, we use for statements for counting purposes usually. At here this led must blink 5 times, so we count from 0 to 4 with for loop and at inside paranthesis { } it makes 1 second each loop. 500+500 interval time.
Now we are contiuning to think as a robot, what will I do? Start? yes. But how?
You guessed true, we will use Forward statement. But let’s make some priority here.
1st rule is stay in dohyo. So robot will look to line sensors.
2nd rule is find the opponent so robot will look to opponent sensors.
3rd rule be smart 🙂
4rd rule did I say stay in dohyo?
Let’s try writing this to Arduino language. We will start with line sensors. How many combination can be happen with line sensors? Here:
- Left line sensor see the line, Right sensor Not.
- Right Line sensor see the line, left sensor not.
- Both sensor see the line.
- No sensor see the white line.
4 combinations (2^2) but for us first 3 is important. It will look to statements and later it will pass the opponent sensors
if (analogRead(LeftLine)<300 && analogRead(RightLine)> 300 ) //Left Line Sensor Saw the Line
{
xmotion.Backward(100,100); //Backward %100 speed, 100 ms retreat.
xmotion.Right0(100,200); //Right Turning %100 speed, 200ms duration.
} else if (analogRead(LeftLine)> 300 && analogRead(RightLine)< 300 ) //Right Line Sensor Saw the Line
{
xmotion.Backward(100,100); //Backward %100 speed, 100 ms retreat.
xmotion.Left0(100,200); //Left Turning %100 speed, 200ms duration.
} else if (analogRead(LeftLine)< 300 && analogRead(RightLine)< 300 ) //Both Sensor Saw the Line
{
xmotion.Backward(100,200); //Backward %100 speed, 200 ms retreat.
xmotion.Left0(100,300); //Left Turning %100 speed, 200ms duration.
}
Now look to if statements. It will make backward movement at first and later turning. Turning to other sides. Let’s make visual.
It is clear I hope. If you are good at programming sure you can develop the code but now we are starting from basics. Soo, what’s next? Opponent sensors.
We are continuing with else if. Because at every scan we want only one aim until if statement happens. We start with if statements Now we have 5 opponent sensor, so at least we need to write 5 if statements.
else if (digitalRead(MiddleSensor) 1 ) //Middle Sensor see the opponent (0 Not Seen, 1 Seen)
{
xmotion.Forward(100, 1); // Both Motors Forward %100 Speed, 1 Milliseconds
}
else if (digitalRead(RightSensor) 1) //Right Sensor see the opponent
{
xmotion.Right0(70, 1); // Right Turn %70 Power 1 Milliseconds
}
else if (digitalRead(LeftSensor) 1) //Left Sensor see the opponent
{
xmotion.Left0(70, 1); //LeftTurn %70 Power 1 Milliseconds
}
else if (digitalRead(LeftDiagonalSensor) 1) //Left Sensor see the opponent
{
xmotion.ArcTurn(20,70, 1); // Left Motor %20 Speed, Right %70 Speed 1 ms.
}
else if (digitalRead(RightDiagonalSensor) 1) //Left Sensor see the opponent
{
xmotion.ArcTurn(70,20, 1); // Left Motor %70 Speed, Right %20 Speed 1 ms.
}
Here we finished the opponent sensor queries.
So we are continuing to thinking. First it looks to line sensors, second looks to opponent sensors and now? If robot don’t takes any signal from these sensors what should it do? Forward? Turning or what?
First idea it should go little more slowly to forward so just add this line.
So if robot doesn’t see opponent or doesn’t see white line it will go forward. But is it enough? No!
We need to lock the opponent if opponent is not seen, we need to remember about which sensor saw the opponent lastly. So let’s add one integer variable as an LastValue and add to beginning section.
So this LastValue is a variable that it will hold the which sensor last see the opponent. Now we will add some numbers to each sensor query. Here I am updating the opponent sensor queries. and later adding more if statements for checking LastValue.
else if (digitalRead(MiddleSensor) 1 ) //Middle Sensor see the opponent (0 Not Seen, 1 Seen)
{
xmotion.Forward(100, 1); // Both Motors Forward %100 Speed, 1 Milliseconds
LastValue=0;
}
else if (digitalRead(RightSensor) 1) //Right Sensor see the opponent
{
xmotion.Right0(70, 1); // Right Turn %70 Power 1 Milliseconds
LastValue=1;
}
else if (digitalRead(LeftSensor) 1) //Left Sensor see the opponent
{
xmotion.Left0(70, 1); // Left Turn %70 Power 1 Milliseconds
LastValue=2;
}
else if (digitalRead(LeftDiagonalSensor) 1) //Left Diagonal Sensor see the opponent
{
xmotion.ArcTurn(20,70, 1); // Left Motor %20 Speed, Right %70 Speed 1 ms.
LastValue=2;
}
else if (digitalRead(RightDiagonalSensor) 1) //Left Sensor see the opponent
{
xmotion.ArcTurn(70,20, 1); // Left Motor %70 Speed, Right %20 Speed 1 ms.
LastValue=1;
} else if LastValue0 { //Middle Sensor Saw the opponent
xmotion.Forward(20,1);
} else if LastValue1 { //Right or Right Diagonal Sensor saw the opponent
xmotion.Right0(30, 1);
} else if LastValue2 { //Left or Left Diagonal Sensor saw the opponent.
xmotion.Left0(30,1);
}
}
And closing the loop with } Finished 🙂
Now our code is more logical. Think like that if opponent is fast and suddenly passed from side sensors, it will remember last sensor value and will contiune to turn or go forward according to this value. But speeds are lower due to more balanced, not agressive finding.
How to Develop Mini Sumo Robot?
Here I will explain mechanical and electronics developments. For software side, it will be new article.
- Paint your robot to black
- Use best wheels, best wedge
- Don’t make empty attacks.
- Try new things.
- Make it exactly 500 grams. Add more weight.
- Add some starting tactics (we will handle this at next lecture)
Homeworks
At software we used Forward, Backward, Right0, Left0, ArcTurn Functions. Except Arcturn all other functions uses 1ms delay. Can we use MotorControl(); function to make better timeless turn?
- How we can use trimpot?
- How we can implement Start Module?
RSS Feed RSS Feed (free software only)9,945 applications totalLast updated: Dec 1st 2020, 17:03 GMT
Subcategories
Intel Battery Life Diagnostic Tool 1.1.2
Find out more about the battery lifespan of laptops with Intel's vPro technology so you can preven...
CPU temp
A simple and straightforward utility written in Python that displays the temperature of the CPU in...
GPU-Z 2.38.0
Discover your graphics card's model, chipset and capabilities, monitor live sensor readings in the...
Simple Runtime Window Editor 2.3.6
Manipulate the size, position and style of an active application's main and child windows, with th...
MSDN to USB 2.4.0.0
A simple and user-friendly software solution designed to provide you with the ability of backing u...
Communication Software for FANUC CNC 90.0
A simple to use application that allows you to quickly transfer data or files between your compute...
wxLeakyBin 1.0.1.0
Analyze memory usage to the finest detail for the entire system and for individual processes, with...
WinTiler 2 0.0.5.0
Give your computer's start menu a whole new amazing look with the help of this app that allows you...
Temple 1.18
A straightforward software utility that can offer you a detailed list with all the USB-enabled dev...
CudaLister 1.6.16
A plugin for Total Commander that can enhance the default functionality and the looks of TC's List...
Logger Pro 3.16.2
Measure and analyze various bits of data retrieved from devices such as sensor systems or spectrop...
Geekbench 5.4.0
A dedicated software solution that can help users measure the performance of their CPU and memory,...
Copy Files With Dates 1.19
An application that copies files while keeping the original creation date, modification date and t...
Kinski Sumo Test Build Mac Os 11
Rufus
TeamViewer
Zoom Client for Meetings
CyberLink PowerDirector
SUMo
Wise Folder Hider
Driver Booster PRO
Skype
Microsoft Teams
- Skype
- Microsoft Teams
- Rufus
- TeamViewer
- Zoom Client for Meetings
- CyberLink PowerDirector
- SUMo
- Wise Folder Hider
- Driver Booster PRO
VX Search Enterprise 13.4.26
Perform advanced file search operations on your computer, databases or network drives with this co...
VX Search Server 13.4.26
Create thorough search processes that can be accessed by a client, save reports and create recurre...
VX Search Ultimate 13.4.26
Create multiple search rules, such as file name, date created, size or category, and scan for item...
VX Search Pro 13.4.26
Search for files on multiple hard disks, network servers or folders by taking advantage of the var...
VX Search 13.4.26
Carry out fast and accurate search operations using advanced and meticulous filters, categorize sc...
FINDIT 5.3.12
Can find any file, anywhere on your disk or the entire network - with any criteria you choose, and...
Environment Variables Manager 1.4.2
Get a good look into your directories' global environment variables, with this specialized tool th...
Windows Information Provider 1.3.5
Know everything there is to know about your computer's system with the help of this useful, open-s...
GPT fdisk 1.0.7
Accessible and useful package of of text-mode partitioning instruments that can work with the Glob...
FreeVD 1.2.0
Drastically improve the way you get work done using Windows 10 Virtual Desktops with the help of t...
Super Launcher 1.2.2.0
An application that allows you to quickly launch programs added to it with administrator privilege...
IsMyTouchScreenOK 1.66
Kinski Sumo Test Build Mac Os Catalina
Find out whether the touch screen of the TV or other device you are about to purchase has manufact...
GPU Shark 0.22.1.0
GPU monitoring utility that can help you make sure your GeForce or Radeon graphics card is running...
Duplicate Media Finder 8.001
Automatically find all the duplicate images, videos and audio files on your local and network driv...
Kinski Sumo Test Build Mac Os X
Quick Macros 2.4.12.0
Enables you to quickly automate particular tasks, by configuring macros, as well as recording your...
Basic Hardware Inventory 7.07
Get a basic hardware inventory (e.g. CPU, memory, hard disk, CD-ROM, monitor, sound, BIOS) of any ...
NewFileTime 5.15
Easily access file and folder stored on your computer to modify or correct and manipulation timest...