Sunday, October 12, 2014

Quad copter (BeagleBone and Teensy 3.1)

I've started two quad-copter projects:
The second quad-copter:

The Teensy/250 quad is flying well, the motors in the kit are a little to under power to lift anything but it is a great way to learn the software and quad-copter basics.  Will show more pictures and a basic tear-down. 

The BeagleBone (white) has a lot of advantages out of the box, i.e simple debugging via gdb on board, lots of memory, and easy of developing on Linux.  BaseFlight-Configurator application reports the loop time in microseconds, it is a little more jittery then Teensy 3.1 but within reason. Will report the actual numbers soon.

The basic interfaces for beaglebone:
  • I2C: Sensors and LCD interface
    • This is up and working and plotting in the GUI.
  • PWM decode input
    • Using PRU (starting to code this now)
    • Using the PRU keeps the Linux code clean.  Maybe after this is done, try to see if it can be done using a kernel driver.  
  • PWM generation for ESC control
    • This is using the internal ehwpwm via the sys
  • Serial Port
    • 115200 to Baseflight-configurator
  • Using buildroot
    • Linux 3.16
    • Enabled SMP with realtime scheduler
    • (Will update to use new buildroot, just added the pru package)
    • Since cape-mgr is not supported in the new kernel, will provide a device tree and simple start up scripts. 
The goal is to re-code the loop and break it up to several loops using discrete timerfd for each loop and libev as the interface.  General coding for this has started, but, since the basic polling loop is working, the only big block to do is the PWM decode.  

The goal of porting to the BeagleBone is to then port to the Edison Intel board.  But, Intel has no RTOS support for Quark processor.  Once this is done, it should be easy to port Baseflight and run it on the Quark and keep the Atom processors Linux, to do Vision and flight navigation.  

More to come.... 





No comments:

Post a Comment