# Line following Car with different drive controller

**URL:** <https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578>\
**Category:** OpenMV Boards\
**Created:** [October 11, 2022, 4:24am UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578 "2022-10-11T04:24:01Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sultan](https://avatars.discourse-cdn.com/v4/letter/s/aeb1de/32.png) [@sultan](https://forums.openmv.io/u/sultan)\
**Post date:** [October 11, 2022, 4:24am UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578/1 "2022-10-11T04:24:01Z")

</div>

Hello, I am a newbie and need help with code, i have been trying wire OPENMV H7 with the two motors

the code i have uses the TB6612 , howver I am using two CytronMD10c

however the cyron has GND, PWM , DIR pins but the TB6612 is connected P0, P1, P2, P3 of the openmv with PWM on P7 and P8

I wasnt sure how to wire teh Cytron to the PWM so that the code will still work, unless i need to alter the code somewhow,

any help would be appreciated.

from pyb import Pin, Timer  
inverse\_left=False #change it to True to inverse left wheel  
inverse\_right=False #change it to True to inverse right wheel

ain1 = Pin(‘P0’, Pin.OUT\_PP)  
ain2 = Pin(‘P1’, Pin.OUT\_PP)  
bin1 = Pin(‘P2’, Pin.OUT\_PP)  
bin2 = Pin(‘P3’, Pin.OUT\_PP)  
ain1.low()  
ain2.low()  
bin1.low()  
bin2.low()

pwma = Pin(‘P7’)  
pwmb = Pin(‘P8’)  
tim = Timer(4, freq=1000)  
ch1 = tim.channel(1, Timer.PWM, pin=pwma)  
ch2 = tim.channel(2, Timer.PWM, pin=pwmb)  
ch1.pulse\_width\_percent(0)  
ch2.pulse\_width\_percent(0)

def run(left\_speed, right\_speed):  
if inverse\_left==True:  
left\_speed=(-left\_speed)  
if inverse\_right==True:  
right\_speed=(-right\_speed)

```
if left_speed < 0:
    ain1.low()
    ain2.high()
else:
    ain1.high()
    ain2.low()
ch1.pulse_width_percent(int(abs(left_speed)))

if right_speed < 0:
    bin1.low()
    bin2.high()
else:
    bin1.high()
    bin2.low()
ch2.pulse_width_percent(int(abs(right_speed)))

```

---

<div class="post-metadata">

**Author:** ![kwagyeman](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/kwagyeman/32/4_2.png) [@kwagyeman](https://forums.openmv.io/u/kwagyeman)\
**Post date:** [October 11, 2022, 1:55pm UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578/2 "2022-10-11T13:55:42Z")

</div>

Hi, what issue are you having exactly?

---

<div class="post-metadata">

**Author:** ![sultan](https://avatars.discourse-cdn.com/v4/letter/s/aeb1de/32.png) [@sultan](https://forums.openmv.io/u/sultan)\
**Post date:** [October 11, 2022, 4:25pm UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578/3 "2022-10-11T16:25:28Z")

</div>

My problem is that the code uses p0. P1 p2p3 using the DUAL motor driver TB6612

So if p0 was high it will go forward and if P1 is high it will go reverse

However the cytron md10c is a SINGLE motor driver, does not have I forward and reverse it only has. DIR and GND

I AM using 2 cytron (1 for each motor) but didn’t know how to connect it to the open MV, since

My problem is trying to make the code work using the cytron controller. Am I supposed to connect the DIR to P0 and GND to P1?

Or should the code be somehow altered

Hopefully that makes sense, I have attached the wiring diagram for the openmv using the tb6612, I need to know how to wire it using the cytron

 ![12-01-009 (1)](https://canada1.discourse-cdn.com/flex029/uploads/openmv1/original/2X/a/a970297c074c9a1fad07d201ece3aa1919a04f6f.jpeg)

---

<div class="post-metadata">

**Author:** ![kwagyeman](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/kwagyeman/32/4_2.png) [@kwagyeman](https://forums.openmv.io/u/kwagyeman)\
**Post date:** [October 11, 2022, 6:30pm UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578/4 "2022-10-11T18:30:46Z")

</div>

DIR is the direction. So, you just connect DIR to P1 or P2. If you use the wrong one you’ll get the inverse direction.

This also means you only need P1/P2, but not both.

---

<div class="post-metadata">

**Author:** ![sultan](https://avatars.discourse-cdn.com/v4/letter/s/aeb1de/32.png) [@sultan](https://forums.openmv.io/u/sultan)\
**Post date:** [October 11, 2022, 11:44pm UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578/5 "2022-10-11T23:44:46Z")

</div>

What do I do to p0 and P3 ?

Should anything be connected to them

---

<div class="post-metadata">

**Author:** ![kwagyeman](https://yyz1.discourse-cdn.com/flex029/user_avatar/forums.openmv.io/kwagyeman/32/4_2.png) [@kwagyeman](https://forums.openmv.io/u/kwagyeman)\
**Post date:** [October 12, 2022, 12:00am UTC](https://forums.openmv.io/t/line-following-car-with-different-drive-controller/7578/6 "2022-10-12T00:00:10Z")

</div>

You only need 1 pin for DIR. So, no.
