2

I have a robotic arm which I want to control using Pico W. The issue is the arm has 5 motors but I was only able to find driver boards which can handle up to 4 DC motors using I2C. Are there boards supporting more than 4 motors? If no are there any boards I can chain, etc. to be able to connect the 5 motors to Pico?

The motors look like this (picture from the box of the kit):

enter image description here

  • 1
    It would help if you can put in some more detail about the motors. Are they servo motors? Brushed DC and Brushless are controlled differently from servo motors and each other. There are a couple of servo motor hats which will support up to 16 servos. – NomadMaker Sep 09 '22 at 22:39
  • 1
    The motors are simple 2-wire DC motors. I don't know the exact model. The original setup is each motor is powered by 2 D batteries and a switch that reverses polarity so it can turn in both directions. – Alexander Vorobiev Sep 09 '22 at 23:50
  • 2
    What prevents you from using two 4-motor or five 1-motor h-bridge drivers? If you only need fwd/rev/stop control, that's 2 digital signals per motor – Abel Sep 10 '22 at 02:00
  • 1
    Could you please paste pictures of the motors into your question? Or the URL of their project page. – NomadMaker Sep 10 '22 at 04:30
  • 1
    please focus your question so that it relates to the Raspberry Pi ... right now the Raspberry Pi is irrelevant ... also remove any "shopping" content – jsotola Sep 10 '22 at 20:02
  • You might find *tutorials from Tom's Hardware* useful: (1) https://www.tomshardware.com/how-to/dc-motors-raspberry-pi-pico

    (2) https://forum.pi-top.com/t/making-a-rpi-pico-based-smart-vehicle/924

    (3) https://forum.pi-top.com/t/making-a-rpi-pico-based-smart-vehicle-part-2/1104

    – tlfong01 Sep 11 '22 at 04:02
  • 1
    @Abel nothing? My question is specifically how to do that and which boards to use. – Alexander Vorobiev Sep 11 '22 at 04:48
  • 1
    @jsotola My question is on how to achieve something with Raspberry Pi Pico. How is it irrelevant? I removed the link to the store. – Alexander Vorobiev Sep 11 '22 at 04:50
  • 1
    the motor driver could be connected to any microcontroller – jsotola Sep 11 '22 at 05:28

2 Answers2

2

I2C is a bus communication, meaning you can put multiple devices in parallel as long as they have different addresses. So you may take 2 devices with 3 channels (e.g. scheme below) or 3x2 to serve your 5 motors.

An alternative is to use other available GPIOs to connect 2nd (or more) I2C motor drives. The advantage would be the communication speed in case you can address the separate I2C lines in parallel.

schematic

simulate this circuit – Schematic created using CircuitLab

Vadim
  • 565
  • 3
  • 12
  • Overkill. Poster likely has over 10 gpio available. – Abel Sep 11 '22 at 13:05
  • Yes, one may also use separate I2C lines inheriting from 2 or 3 different GPIO pairs. However, poster asked if he can "chain" the motor drives and this is the way to do so. – Vadim Sep 11 '22 at 17:02
  • I read "If no" as only cares about chaining if it is absolutely necessary which it is not. – Abel Sep 11 '22 at 17:05
  • This is right, chaining is not absolutely necessary if one has other GPIOs available. The rest depends on personal preferences if to have several I2C lines or if just have one and several devices in parallel. I edited the post accordingly. – Vadim Sep 11 '22 at 17:08
1

There are alot of different driver boards and most have their favorite. You are not approaching the problem correctly.

First: We know they are inductive by design so we will have flyback voltage to contend with.

Second: we know the port can supply 3V3 at a few mills.

Third: we assume the motors will draw more then the port pin can supply.

fourth We know it will operate in both directions.

fifth we assume it will be PWM to control speed.

sixth: Since they are reversing we will need an H-Bridge or equivalent.

What is needed for proper sizing:

How much current do the motors require.

What voltage do they need.

Link to technical information on motor.

With this you need to find a driver that will sink and source this amount of current. Here are two to look at, I use the BTS7960 module and it has 74HC logic chips in the module so I think it will work with 3V3 but it will need about 8V minimum for the motor. It is rated at 43 Amps.

Another is the (I have not used this one) NOYITO 170W High-power H-bridge Motor Drive Module with 2-Channel PWM Inputs 0-100%. Allows Instantaneous Braking Capability and is bidirectional. Support 3.3V 5V Logic input Analog input MCU IO Port.

These are in the 40 amp plus range. There are a lot more available try polo and adafruit have some good stuff. You can also search the web for what you want. This should get you to your solution, Without more information I cannot narrow it down much more.

Gil
  • 1,228
  • 4
  • 5