CやC++でMPU-6050のデータを取得したい場合は
http://www.raspberrypi.org/forums/viewtopic.php?t=22266
のプログラムを使えばよい。
RaspberryPiのBを使っている場合はリンク先にも書いてあるようにI2Cdev.cppの中の/dev/i2c-0を/dev/i2c-1に書き換えなければならない。
3D fireframeを動かすでもはみていないけど、クォータニオンを使っているようだ。勉強してないので分からんな。
#include <iostream> #include <omp.h> #include <time.h> #include <boost/python.hpp> using namespace std; double hoge(int N) { long x = 0; double time; cout << "function start" << endl; #ifdef _OPENMP double start = omp_get_wtime(); #pragma omp parallel for for(int i = 0; i < N; i++) { x += i; } time = omp_get_wtime() - start; #else clock_t start, end; start = clock(); for(int i = 0; i < N; i++) { x += i; } end = clock(); time = (double(end-start)/CLOCKS_PER_SEC) #endif cout << "function done" << endl; return time; } BOOST_PYTHON_MODULE(basic) { using namespace boost::python; def("hoge", &hoge); }
COMPILER = g++ CFLAG = -g OBJGROUP = main.o LIBDIR = LDFLAGS = -lopencv_core -lopencv_highgui LIBS = INCLUDE =/usr/local/include program1: $(OBJGROUP) $(COMPILER) -o a.out $(OBJGROUP) -L$(LIBDIR) $(LIBS) $(LDFLAGS) all: program1 clean: \rm *.o
#include <iostream> #include <omp.h> #include <time.h> using namespace std; int hoge(int x, int y) { return x + y; } int main() { double start, end; clock_t t_start, t_end; long N = 100000000; t_start = clock(); #ifdef _OPENMP start = omp_get_wtime(); #pragma omp parallel for for(int i = 0; i < N; i++) { hoge(1,1); } end = omp_get_wtime(); cout << end - start << endl; #else for(int i = 0; i < N; i++) { hoge(1,1); } #endif t_end = clock(); cout << (double(t_end - t_start)/CLOCKS_PER_SEC) << endl; return 0; }