Welcome to Synthiam!

The easiest way to program the most powerful robots. Use technologies by leading industry experts. ARC is a free-to-use robot programming software that makes servo automation, computer vision, autonomous navigation, and artificial intelligence easy.

Get Started
Asked — Edited

Test This Script For Me

Good Morning,

Could the members of the community with fast computers please run this script for me and tell me the CPU load from EZ-Builder. For me, when I run this script my CPU process from ARC is 50 percent. If you have something at D20,D21,D22 just comment the PWM statements out.

Code:



:loop
REPEAT($x,0,100,10)
PWM(D20,$x)
PWM(D21,$x)
PWM(D22,$x)
print($x)
ENDREPEAT
If ($x = "100")
REPEAT($x,100,0,10)
PWM(D20,$x)
PWM(D21,$x)
PWM(D22,$x)
ENDREPEAT
ENDIF
goto(loop)



Thank You
Wayne A


ARC Pro

Upgrade to ARC Pro

Harnessing the power of ARC Pro, your robot can be more than just a simple automated machine.

AI Support Bot
Related Content
Synthiam
Based on your post activity, we found some content that may be interesting to you. Explore these other tutorials and community conversations.
United Kingdom
#1  
No need to test it, you need to add in a sleep to the code. Without the sleep the script will run too fast as ARC can perform over 9500 commands per second (at least that's less than the average on my PCs).

It looks like ramping of the PWM from 0 to 100, that's 100 commands, at 9500 per second you wont get any noticeable ramping.

CPU load isn't really the thing to be looking at just yet.
#2  
We need an initial value of $x... I used 0... Your script runs lightning fast on my PC. It doesn't bog down ARC... Mine indicates 27%... However, I just ran the script, I did not have an EZB4 connected at the time...

Does the script have to run that fast? Can you put some sleep commands in so you are not using up so much processor?
#3  
LOL... Rich beat me to it, again... you need a sleep command to slow things down... less demand on the processor...
#4  
Ok, where would the sleep go?
#5  
I usually put sleep commands at the bottom of loops (see below)... you can change the vale of sleep to suit your needs...

Code:


:loop
REPEAT($x,0,100,10)
PWM(D20,$x)
PWM(D21,$x)
PWM(D22,$x)
print($x)
sleep(20)
ENDREPEAT
If ($x = "100")
REPEAT($x,100,0,10)
PWM(D20,$x)
PWM(D21,$x)
PWM(D22,$x)
sleep(20)
ENDREPEAT
ENDIF
goto(loop)