Thumbnail

Brushless Motor Movement Panel

by Synthiam

A movement panel to control brushless motor controllers. These are used in hoverboards or many other robot types.

How to add the Brushless Motor Movement Panel robot skill

  1. Load the most recent release of ARC (Get ARC).
  2. Press the Project tab from the top menu bar in ARC.
  3. Press Add Robot Skill from the button ribbon bar in ARC.
  4. Choose the Movement Panels category tab.
  5. Press the Brushless Motor Movement Panel icon to add the robot skill to your project.

Don't have a robot yet?

Follow the Getting Started Guide to build a robot and use the Brushless Motor Movement Panel robot skill.

How to use the Brushless Motor Movement Panel robot skill

A Movement Panel to control brushless motor controllers. These are used in hoverboards or many other robot types. This uses generic (popular amongst DIY projects) brushless motor controllers. These controllers have a pin for direction, speed, and brake for each motor.

User-inserted image

Configuration

User-inserted image

The configuration menu has options to select the ports for generic brushless motor controllers. Select the ports that are connected to the appropriate connections between the EZB and motor controller.

*Optional: the brake port is optional as it may not be necessary for some applications. Some applications may leave this wire disconnected from the EZB.


ARC Pro

Upgrade to ARC Pro

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

PRO
Synthiam
#1  

Latest release bug fix for motors being reversed

#2  

First Hooked up with ez b v4 and Brushless Motor control worked OK. Using hoverboard motors for robot. today Ive been installing a LattePanda D and have it and the Leonardo working but the motor controller. Using same port setup, DTR set and its connected. Now wheels turn on only full speed, no speed change. Matter a fact wheels don't move till speed is half way. thought it might be another skill interfering so deleted everything but motor controller, same issue. Any ideas?

PRO
Synthiam
#3  

Verify the selected ports are correct, and the wiring to the controller. If needed, put a volt meter on each port to see if it’s the right one and mapped correctly. That’ll help ensure the latte panda’s Leonardo isn’t faulty

#4   — Edited

Checked and rechecked three times, sometimes I do mix grays and greens! Meter on pinD1 Moving left speed slider, o volts till just about half way, then it goes to 5volts. That is forward button pushed. 0volts if stopped. Also have reflashed Arduino twice. Not sure how to test code?

#5   — Edited

User-inserted image

Looks like video didn’t send so, I checked and voltage goes from 0-5 volts with no pwm, I also had an issue when using zen v4 and that was to fast turning hard l or r.

Hopefully we can figure this out. Like I said earlier, have rechecked hook up and settings and as video shows, it’s not working on LattePanda with Leonardo! Thanks for any guidance you can give.

Scott

#6  

Doesn't look like this will help but ??

EZB 0: 2021/07/19 5:30:46 -07:00 Windows version: Microsoft Windows NT 10.0.18363.0 2021/07/19 5:30:46 -07:00 Screen Resolution: 1920x1080 (96x96 dpi) 2021/07/19 5:30:46 -07:00 ARC (Early Access) Version: 2021.07.01.00 2021/07/19 5:30:56 -07:00 TCP Server started on 5685 2021/07/19 5:32:27 -07:00 Attempting connection on COM6 2021/07/19 5:32:28 -07:00 Connected to COM6 at 9600 2021/07/19 5:32:28 -07:00 Reports CapabilityController 2021/07/19 5:32:28 -07:00 Firmware 'DJs Arduino Leonardo v1' on 'Arduino Leonardo' supports the following capabilities:

  • ADC with 10 bit resolution
  • Read/Write Digital I/O Ports
  • Hardware UART TX/RX with DMA buffer and adjustable baud rate
  • PWM Duty on digital ports
  • PWM servos on digital ports
  • PWM servos on digital ports can release their position
  • Transmit Uart TX on all digital ports
  • Native USB Connectivity from ARC

2021/07/19 5:32:28 -07:00 Connected 2021/07/19 7:46:09 -07:00 DTR Enable cannot be changed while connected. Reconnect for this setting to take effect. 2021/07/19 7:46:09 -07:00 TCP Server: Stopped 2021/07/19 7:46:09 -07:00 TCP Server stopped

EZB 1: EZB 2: EZB 3: EZB 4:

PRO
Synthiam
#7   — Edited

Your log shows that you enabled DTR 3 minutes and 14 seconds after connecting...

Quote:

2021/07/19 5:32:28 -07:00 Connected 2021/07/19 7:46:09 -07:00 DTR Enable cannot be changed while connected. Reconnect for this setting to take effect.

That message explains you would need to reconnect for DTR to take effect. You need to enable DTR before a connection is established. Always a good idea to read the log when experiencing difficulties. Additionally, you can verify the Leonardo works by checking one of the i/o pins and setting it ON and OFF with a digital port robot skill: https://synthiam.com/Support/Skills/Digital/Set-Digital?id=16094

PRO
USA
#8   — Edited

Can this skill be used with a brush-less motor that has a built in controller? I am looking at using this motor: https://www.robotshop.com/en/36d-brushless-dc-motor-with-planetary-gearbox-12v-32rpm.html I will be using just one motor (not like a hoover board dual motor setup). If this will work, what do I connect each pin on the motor to on the control?

#9  

No. This skill is not for a motor like this.

What kind of control do you want over this motor? How will you be using it? There may be better options for you.

PRO
USA
#10  

Dave, currently I have a brushed motor running the brain/finger lights in my B9.  But it cause interference with the LEDS in the brain, and the servos in the claws.  I simply want to replace it with a brushed motor, but I can't find one that is small enough to fit in the brain cup, has about the same torque, and costs less than $50.  The Hankscraft motor I originally used did not cause too much interference, but I could not vary the speed much, just full speed, very slow, and off.  So I replaced it with a motor close to what you use.  I now can vary the speed, but it causes the interference.

#11   — Edited

I don't think changing the motor is the answer but it may be. You have electronic noise being generated. However some motors are nosier then others. You did mention that "The Hankscraft motor I originally used did not cause too much interference". That tells me you had this issue before you installed the new motor.

I'm not an expert but I learned by experience and though questions that electronic noise travels on the grounds (neutral). So if you have all grounds tied together you will get any noise generated passed to the other devices if not wired properly.

Without seeing your wiring it's hard to give direct advice on what to do. You may have a different things going on here and may have to address more then one issue.

Do you have a second power supply you can wire the motor to? This would isolate that motor and it's noise to that power supply. This may be the cheapest and easiest way to solve this problem.

You may have a ground loop. These are insidious and hard to find but from what you tell us it may center around your crown motor. Here is an excellent article on this and it also gives suggestions on how to fix it:   https://en.wikipedia.org/wiki/Ground_loop_(electricity) Here's a few lines from that article explaining what a Ground loop is:

Quote:

A common type of ground loop is due to faulty interconnections between electronic components, such as laboratory or recording studio equipment, or home component audio, video, and computer systems. This creates inadvertent closed loops in the ground wiring circuit, which can allow stray 50/60 Hz AC current to flow through the ground conductors of signal cables. The voltage drops in the ground system caused by these currents are added to the signal path, introducing noise and hum into the output.
One great suggestion from that article above is to install a ground loop isolation transformer in the cable. However I've not really found a electric ground loop isolation transformer. All I can find are ones for audio. I don not know if you can use an audio isolation transformer in your power system.

One other issue may be induction (even if a ground loop is a problem). Your power lines feeding the crown motor may be to close to the other lines that you see having the issues. The electric magnetic fields (EMF) produced by the power cable feeding the crown motor are leaking into the cables feeding the other devices. Move the power cable from the crown motor as far away as possible from other wires. The signal wires going to the servos and lights are probably being induced and causing the servos to twitch. Do you hear any pinging or other noise in the background of your robot's audio system?

You can also try Ferrite Suppression Chokes on the wires. I did this on some of my servo's signal wires that were twitching when the neon flashed. It's worked nicely. They are all over Amazon for very little money.

Again, I don't know how you have your robot wired but you also may be getting induction on the brain's wiring directly from the crown motor it's self. The wiring for the brain goes directly past that motor and up into the brain. It's very hard to get any separation in the brain cup. I'm using a motor just like Craig Reinbrecht sells on his vendor page. I've never had the issue you currently have using this motor: For some reason I can't post a link in this page to Craig's vendor page so copy and paste this link: http://www.b9robotbuildersclub.com/pub/parts/B90032/index.html#Motor

Quote:

From his page: This is a high quality Micromo 12V gearhead motor for turning the Crown and Light Rod cam. The mounting plate allows you to mount the motor in the aluminum Neck Bracket (or other Neck Brackets) and comes complete with noise damping rubber grommets. This motor turns at the optimal speed for our B9''s when fed by 6.7VDC. Motor + Mounting Plate + 6.7V Regulator BUILT: $48 
I have my motor powered directly with 12v and adjust it's speed with PWM controlled through Synthiam's ARC.

Someone please correct me if I'm wrong on any of this or have a better way.

Good luck and keep us posted.

PRO
USA
#12  

So I have done all the isolation steps, separate power supplies to each device. I've tried shielding, and Ferrite Suppression Chokes. Nothing worked. I have the motor power going down the middle of Norman's neck piece (lower half of brain cup), and the other power for LEDS going in the side hole. As you know, not a lot of space there to separate the power supply lines. I too use PWM controlled through Synthiam's ARC, with an H-bridge PWM controller card. The motor I use is from ServoCity: https://www.servocity.com/26-rpm-mini-econ-gear-motor/ . I thought it was similar to one you had used before, but I guess I am mistaken on that. I talked with an electrical engineer friend (very knowledgeable and experienced, having worked on B1 bomber, defense radars, and missile systems for 40+ years). He says brushed motors, like what you/me use, and Craig sells, are notorious for introducing EMF in LEDs, especially the individually programmable ones like I am using. His suggestion is switching to a brushless motor. The biggest issue I’m having with the brushless motor is finding one that fits in the brain cup, has the needed torque, and is reasonably priced. The one I posted that I’m thinking about using meets all needs except fitting in the brain cup. But I’m looking at how I might be able to modify the cup to allow for the motor.

#13   — Edited

Yes, it sounds like you have done most everything needed.

Question, do you see the interference while the crown motor is running or when it starts or stops? If starting and stopping, I'm thinking you might be seeing the DC motor's electric field collapsing.

The way I'm reading this is that even with the separate power supply you are getting the interference. This really sounds like an induction problem. Is the crown motor the only thing attached to that new supply? No other grounds from other devices?

I only have a couple more suggestions, #Replace your power cable feeding the motor with shielded cable making sure the shielding is grounded as to bleed off the induction. If you don't ground the shielding you can have an even bigger problem.   #I know this is a lot of work but pull the motor out of the brain cup and bench test it out of the robot to see if you still get interference. Try testing both using the existing wiring you have going down through the robot and with new wiring directly to the power supplies. Both of them, one at a time.  #Look closely at how the affected devices are wired. It may be that they have a wiring issue and by adding the crown motor this has just tipped the scale (so to speak).  #As a last resort replace that motor with Craig's setup. He even has a motor mount that fits into the brain cup for it. #I have been assuming you are using a AC-DC converter to power your robot. Switching power supplies can also introduce noise into the circuit.  #Relocate the crown motor down below the brain cup in the collar or even as far down as in the torso. You would then need to run a longer shaft up unto the brain to rotate the finger lights and crown. If your radar turns you would need to attach the lowered motor bracket to the radar so the motor tunes with the head. This way you can bet a bigger motor. You may even consider using a continuous rotating servo.

That brushless motor your friend suggested may be a solution if you can find one small enough.

You may want to post this on the B9 Robot builders Facebook page. There are lots of builders that may have an idea of how to approach this or know of a brushless motor you can use that would fit.

PRO
USA
#14  

DJ-Sures, Is there a way to control the speed of a brushless motor via a script? I have a brushless motor with built-in controller (https://www.robotshop.com/en/36d-brushless-dc-motor-with-planetary-gearbox-12v-32rpm.html), and have connected it using the Brushless Motor Movement panel, but I really need to control the speed with code instead of sliders. Is there a way to do that?

PRO
Synthiam
#15  

All of the movement commands accept a parameter for speed. Or you can set the speed explicitly. This is a Movement Panel feature for all movement panels that support speed, it’s not specific to this one.

here’s a link to the set speed command. But also look into the movement commands: https://synthiam.com/Support/javascript-api/Movement/setSpeed

PRO
USA
#16  

Ok, that works fine.  Now, one more question.  I don't need the direction control, or the brake.  Also, only using one motor.  I don't want to waist 6 ports when I just need one port.  Can I use the other 5 ports with other controls, and still use the Brushless motor movement panel?  Or is there a better way to control this motor?