Woops
Managed to break my Crazyflie with a 2 story high drop onto my patio. Ouch. New parts coming this week or next I hope.

❣ Chile in a Photography ❣
No title available
todays bird

JBB: An Artblog!
Jules of Nature
occasionally subtle

tannertan36
let's talk about Bridgerton tea, my ask is open
I'd rather be in outer space 🛸

oozey mess

Origami Around
noise dept.
h
sheepfilms
art blog(derogatory)
Not today Justin
Peter Solarz
Claire Keane

if i look back, i am lost
Alisa U Zemlji Chuda
seen from Germany

seen from Malaysia
seen from United States

seen from Singapore
seen from Germany
seen from Russia

seen from Ireland

seen from Malaysia

seen from France
seen from France
seen from Saudi Arabia

seen from Brazil

seen from Colombia
seen from United States
seen from United States
seen from United States

seen from United States

seen from United States
seen from United States
seen from United States
@crazyfliedev-blog
Woops
Managed to break my Crazyflie with a 2 story high drop onto my patio. Ouch. New parts coming this week or next I hope.
Simple Python code example for the Crazyflie
I spent a fair amount of time yesterday getting to know the Crazyflie's Python library, the documentation isn't brilliant at the moment but I'm helping contribute to the wiki, so hopefully it'll be better soon.
In the mean time I've written an example application for the Crazyflie, it's very simple - it simply sets the thrust amount to whatever value you specify. It's a nice starting point though and I hope people find it useful.
import time from threading import Thread import cflib.crtp from cflib.crazyflie import Crazyflie class Main: # Initial values, you can use these to set trim etc. roll = 0.0 pitch = 0.0 yawrate = 0 thrust = 10001 def __init__(self): self.crazyflie = Crazyflie() cflib.crtp.init_drivers() # You may need to update this value if your Crazyradio uses a different frequency. self.crazyflie.open_link("radio://0/10/250K") self.crazyflie.connectSetupFinished.add_callback(self.connectSetupFinished) def connectSetupFinished(self, linkURI): # Keep the commands alive so the firmware kill-switch doesn't kick in. Thread(target=self.pulse_command).start() while 1: self.thrust = int(raw_input("Set thrust (10001-60000):")) if self.thrust == 0: self.crazyflie.close_link() break elif self.thrust <= 10000: self.thrust = 10001 elif self.thrust > 60000: self.thrust = 60000 def pulse_command(self): self.crazyflie.commander.send_setpoint(self.roll, self.pitch, self.yawrate, self.thrust) time.sleep(0.1) # ..and go again! self.pulse_command() Main()
Getting the Crazyflie working on Mac OS X
So I've been spending a little bit of time getting the Crazyflie and the Crazyradio to work on OS X and I wanted to share my progress and the steps taken to get here.
Firstly, it's worth noting that I have a pretty well set-up Python 2.7 dev environment on my machine due to my job as a Python dev, so as a base I'll just assume that you have Python 2.7 installed and you have it in your Path.
So, the first thing I did was to download the Python library / client from the Bitcraze repo, the exact file being cfclient-2013.4.1.tar.gz. I extracted it to my machine and ran ./bin/cfclient. As expected, it failed and said I was missing certain dependancies, the first of which being pyusb. At this point I just did `pip install pyusb`. Don't do this. Instead, get this version from Sourceforge and run `./setup.py install`.
The next thing it needed was pygame, I tried `pip install pygame` but that was missing a load of dependancies, so I found a binary version, which you can get here. I remember having to fiddle around with PyQT and SIPS, but I can't recall whether I had to actually install them from source in the end, if I did, then the downloads I used were PyQT and SIPS.
At this point, my GUI was loading when I ran `./bin/cfclient`, which was great, but I was unable to actually detect my Crazyflie with my Crazyradio. A quick install of libusb fixed this issue and I can now connect to my Crazyflie and see the sensor data coming in.
The next step is to get my Xbox 360 controller to work and to get the input routed through to the Crazyflie via the Crazyradio. I think a lot of this work is already done (as it works on Windows), I just need to make some compatibility modifications to get it working on OS X.
I'll keep you updated. If you have any questions you can find me on Twitter @danielsamuels.