I bought the BrickPi+ from a Canadian distributor instead of the BrickPi3, since I didn’t notice there were two different versions. I need to know now if the BrickPi+ will work with my Raspberry Pi 3B, as well as the EV3 motors I want to attach (two large, one medium). And by ‘work’ I mean I want to use the API as demonstrated in this example.
It will work. I used the BrickPi+ with the Pi3, worked great. But if I were you I’d return it and get the BrickPi3. It is way nicer!
What’s the difference between BrickPi+ and BrickPi3? What advantages would I get for upgrading?
The BrickPi3 allows for out of the box one click firmware updates, better ev3 support. It is easier to program because you do not have to manually update the sensors. There
Is a batter status indictator. So you can see how much juice you got. There is much better sensing of battery levels. Ere is a battery switch so you can disconnect the battery to save power without unplugging it. Oh yes you can plug in grove sensors and t pivotpi to connect up to 32 servos, if the pivotpi are daisy chained. You get the point.
Though the cons are:
Firmware source code is not released. :
Also the its a bit new, but I think most of the dust has settled.
I managed to get my order switched to the BrickPi3. However now I’m looking through the git repo I linked in the OP, and I can’t find a brickpi3.py to see what commands I could be sending to my motors. Where can I find that?
Specifically I want to be able to tell a motor to rotate X degrees, where X could be more than 360 since I have a 1:7 gear ratio on my current build. Is there a simple call to do that in brickpi3 code?
The github repo of for the BrickPi3 is here:
If you install the latest raspbian for robots it will come preinstalled.
Check out this project example:
That will show how to run a motor a certain degrees. Speed of that motor will have to be set with set_motor_limits()
function. I’d reccomend reading through the Brickpi3 module docs if you get a chance.
Where are the module docs? I couldn’t find anything besides the readme in that repo. My main requirement is that if I do BP.set_motor_position(BP.PORT_A, 720)
it rotates the motor fully twice; I can’t find anything in the code that either confirms or denies this. The method name itself implies that there’s an absolute relative ‘position’ for the motor, and that if I do, for example, BP.set_motor_position(BP.PORT_A, 10)
it’ll rotate to the position 10 degrees from its ‘origin’, wherever that is, and if I call BP.set_motor_position(BP.PORT_A, 10)
again, it won’t move since it’s already at position 10 degrees from the ‘origin’. If that’s how this method works then it won’t do what I need.
The module docs exist in brickpi3.py. So you’ll need to go in that file and scroll through, find a function and read the comments. Or install it on your pi and import the library into python and run help(brickpi3)
Unfortunately that’s t only way.
Ohh, that’s what was meant by module docs, gotcha. It’d be convenient for those docs to exist separately somewhere, but at least they exist.
Yah it would. Be real nice.