Skip to main content

Posts

Showing posts with the label servo

kitronik :Move buggy (Python controlled servos)

In a previous post I looked at controlling the Kitronik :Move buggy using Javascript based blocks . In this short post I will show  controlling the servos of the micro:bit based :Move buggy with Python. Control is via pin1(left motor) and pin2 (right motor) and the motors have to be driven in opposite directions to move forward or backwards. The direction of the motors is controlled by the analogue value written to the pins;   pinX.write_analog(180) - anticlockwise or  pinX.write_analog(1) - clockwise ( pinX.write_analog(0) - stops the motor). Setting the analog_period seems to work at 20ms; this was found by experiment, discussed in a previous post . So the initial code below sets up the moves for forward, backward, turn left, turn right all controlled with a move for so many milliseconds. Code  from microbit import * pin1.set_analog_period(20) pin2.set_analog_period(20) def forward(N):     pin1.write_analog(180...

Micro:bit, Servo control with Micropython or blocks

You can control servos (small ones) from a Micro:Bit directly. Following a link from the David Whale (Twitter  @ whaleygeek ) , thank you, took me to a Kitronik blog post, https://www.kitronik.co.uk/blog/using-bbc-microbit-control-servo /, which has the answer. The code uses Microsoft Blocks taken from the post, runs the servos 180 degrees and back again, when button A is pressed. It does exactly what it should. I am also using the Tower Pro SG90 servo. Can it be replicated in Micropython? This is a new mini project, there seems to be little out there yet on how do this but the best so far is this video by  PHILG2864 : The closest I have is the following, it is essentially there. from microbit import * pin0.set_analog_period(20) while True:     pin0.write_analog(180)     sleep(1000)     pin0.write_analog(1)     sleep(1000) Setting the time period to 20ms   pin0.set_analog_period(20) seems by experiment (...