Remote control bike - Steering motor, gears/pulleys and encoder selection

I am trying to make a remote control bike. So far I have an ebike kit on an old bike with adult stabilisers (turned out they exist!) to stop it falling over. I am controlling the hub motor speed with a DAC so can move but have failed with the steering.

My attempt was using T5 pulleys and belt designed for CNC with a stepper motor. See photo - I had to cut the handle bars off after various attempts to un-seize the steering column failed…
The torque proved insufficient and I found mounting it all very difficult.
2.2 Nm stepper and ~4:1 ratio on the pulleys. So around 8 Nm was not enough. I think 16Nm would do it. Also I had no encoder which proved an issue.

Does anyone have suggestions of how to do this better?
I will be putting in new forks with a 1 1/8" steering column. I found this motor - seems to make sense to use a worm gear for low RPM and position holding reasons.
https://gimsonrobotics.co.uk/categories/dc-electric-motors/products/gr-wm3-24v-dc-high-torque-worm-gear-motor
But have no Idea how to connect it to a 1 1/8" threadless steering column… Or how to mount an encoder to it as well.

Any suggestions much appreciated!

Hi, and welcome to the Arduino forum.

Your questions are not Arduino relates, but I would use something like THIS and pin it to the fork tube.

Then find a sprocket with the same pitch to fit your motor/gear output shaft. Chain drive will not slip and cause accidents.

Paul

Thank you Paul that is very helpful. I hadn't thought of using chain and sprokets. I shall get searching.

Sorry it's not directly arduino related, I saw lots of seemingly not related posts so was unsure if it mattered or not.

Junglist:
Thank you Paul that is very helpful. I hadn't thought of using chain and sprokets. I shall get searching.

Sorry it's not directly arduino related, I saw lots of seemingly not related posts so was unsure if it mattered or not.

Probably 50% of the questions in the project section are not Arduino related. Fewer in the motor section, but very common.

I guess there may be an Arduino somewhere in your project!

Good luck,
Paul

Hi there, i got into this forum because i read it is related to arduino codes
. I have a problem maybe someone can help me to solve.

The case is that a i want to build a one to three phase inverter and a guy from Pakistan helped me with the code, i dont thinks this code can work the way it was written so that is why iam asking for your help, this is the code:

int led1 = 2; // Pulse 1
int led2 = 3; // Pulse 2
int led3 = 4; // Pulse 3
int led4 = 5; // Pulse 4
int led5 = 6; // Pulse 5
int led6 = 7; // Pulse 6

int cont = 0;
int val = 8;

int R = A0; //run
int S = A1; //stop

void setup()
{
// initialize the digital pin as an output:
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
// initialize the analog pin as an inputs:
pinMode(R, INPUT);
pinMode(S, INPUT);
}

void loop()
{
if ((digitalRead(R) == LOW) && (digitalRead(S) == HIGH))
{
forw();
}
}

void forw()
{
while (1)
{
if ((digitalRead(R) == HIGH) && (digitalRead(S) == LOW))
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
break;
}

digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
delay(val);

digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
delay(val);

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
delay(val);

digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
delay(val);

digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
delay(val);

digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, HIGH);
delay(val);

digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
delay(val);

digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
delay(val);

}
}

Do you think this code will work?

If you are not here to help the original poster, you should start you own thread.

Paul