
İÇERİK VE AMAÇ
Projenin Amacı ve Kapsamı
Modüller
Programın Çalıştırılması ve Gerekli Yüklemeler
Irrlicht ( Windows - Visual Studio ):
Irrlicht ( Linux ) :
Uygulama için Windows Gereksinimleri:
Windows 7/8/10,
Visual Studio 2013/2015 Visual c++ eklentisi ,
Irrlicht kütüphanesi Version 1.8.1 => http://irrlicht.sourceforge.net/,
Visual Studio projesine Irrlicht kütüphanesinin eklenmesinin basamakları =>
Visual Studio'da ilk olarak Project -> Properties seçilmelidir. Daha sonra aşağıdaki fotoğraflarda gözükenler yapılmalıdır.




Uygulama için Linux Gereksinimleri:
Linux tabanlı bir sistem gerekir(Ubuntu, Fedora, vb.),
Irrlicht kütüphanesi Version 1.8.1 => http://irrlicht.sourceforge.net/
Irrlicth zipten çıkarıldıktan sonra aşağıdaki adımlar terminalden yapılmalıdr,
cd ~/irrlicht/source/Irrlicht
make
make NDEBUG=1
Küresel bir cismin board üzerinde belirlenen noktaya taşınması ve bu
noktada dengede tutulması, istenen noktanın bilgisayar için hazırlanan
programda değişmesi durumunda belirlenen noktanın yeniden atanması ile topun güncel noktada tekrar denge durumuna getirilmesi.
3D uygulaması ile iletişim Arduino tarafında Serial sınıfı üzerinden
sağlandı. Arduino’dan bilgisayara koordinat ve açı/ivme değerleri, her
iterasyonun başında, tek bufferda binary olarak gönderildi.
Open GL tabanlı Irrlicht Engine kullanıldı. Görüntü kısmı 2D ve 3D olmak
üzere ikiye ayrıldı. 3D kısmında sadece görüntü, 2D kısmında mouse ile
tıklama yaparak topun yönlendirilmesi sağlandı.
Bu modül top, bilgisayar, gyro, touchscreen, servo motorlar ve pushrodtan oluşmaktadır. Donanım modülü aracılığı arduino ile bilgisayar arasında bağlantı kurularak simülasyonun amacına ulaşması ve touchscreenin üstünde topun dengelenmesi amaçlanır.
Arduino IDE:
Yazılımı Arduinoya yüklemek ve USB sürücüler için gerekli.
Kurulumu:
- Buradan uygun platform için dosya indirilir.
Windows için exe dosyası çalıştırılarak kurulabilir.
Linux için tar.gz dosyası arşivden çıkarılıp, içindeki install.sh çalıştırılarak kurulabilir. Sonrasında ise aşağıdaki yapılandırma yapılmalıdır.
Serial device dosyasına okuma/yazma izni için:
# gpasswd -a $USER uucp
# gpasswd -a $USER lock
$USER: Kullanıcı adı.
Sonrasında Arduino IDE→Tools menüsünden eldeki Board ve Processor seçilir. (Bu proje için Board: Mega 2560, Processor: Atmega2560)
Son olarak, yine aynı menüden cihaz bağlandıktan sonra hangi porttan bağlı olduğuna bakılır.


3D kodundaki default değerler:
Linux: /dev/ttyACM0
Windows: COM7
Eğer port doğru değilse aşağıdaki tablodan portun hangi port nr.’a karşılık geldiğine bakılır.
port nr. Linux windows
0 ttyS0 COM1
1 ttyS1 COM2
2 ttyS2 COM3
3 ttyS3 COM4
4 ttyS4 COM5
5 ttyS5 COM6
6 ttyS6 COM7
7 ttyS7 COM8
8 ttyS8 COM9
9 ttyS9 COM10
10 ttyS10 COM11
11 ttyS11 COM12
12 ttyS12 COM13
13 ttyS13 COM14
14 ttyS14 COM15
15 ttyS15 COM16
16 ttyUSB0 n.a.
17 ttyUSB1 n.a.
18 ttyUSB2 n.a.
19 ttyUSB3 n.a.
20 ttyUSB4 n.a.
21 ttyUSB5 n.a.
22 ttyAMA0 n.a.
23 ttyAMA1 n.a.
24 ttyACM0 n.a.
25 ttyACM1 n.a.
26 rfcomm0 n.a.
27 rfcomm1 n.a.
28 ircomm0 n.a.
29 ircomm1 n.a.
30 cuau0 n.a.
31 cuau1 n.a.
32 cuau2 n.a.
33 cuau3 n.a.
34 cuaU0 n.a.
35 cuaU1 n.a.
36 cuaU2 n.a.
37 cuaU3 n.a.
Sonrasında 3D’nin kaynak kodunda, serial dizini altındaki serial.h dosyasındaki
COM_PORT makrosu, çalışılan işletim sistemine göre değiştirilir.
(Windows için #ifdef _WIN32 #else arasındaki define, Linux için #else, #endif arasındaki define)
Gerekli Arduino kütüphaneleri:
Bu dosyalar Arduinonun kurulu olduğu dizindeki libraries dizini altına kopyalanır.
Ve burdaki kütüphanenin Arduino dizini altındaki MPU6050 ve I2Cdev klasörleri.
- OpenCV ve ArUco: Vision mode için gerekli.
Not: 3D’nin kaynak kodundaki main.cpp dosyasının
#define VISION
satırı yoruma alınıp veya silinip derlenirse, program bunlar kurulu olmadan da çalışır.
OpenCV:
Wikisinde ayrıntılı olarak hazırlanmış kurulum rehberi var. Linux ve Windows için olanlar aşağıda.
Windows kurulumu: Link
Linux kurulumu: Link
Not: 3D’nin kaynak kodundaki main.cpp dosyasının #define VISION
satırı yoruma alındıktan veya silindikten sonra makefile dosyasında USERLDFLAGS değişkenindeki “-lpthread” ten sonraki kısım -aşağıda seçili olan- silinip derlenirse, program bunlar kurulu olmadan, vision modu devre dışı olarak çalışır.
Not: Program başlarken topun plakanın üzerinde olmaması gerek. Top program açıldıktan sonra koyulmalı.
Proje Raporu :

ArUco:
Öncesinde OpenCVnin kurulmuş olması gerekli.
Buradan kaynak kod indirilir.
Linux kurulumu:
Bağımlılıklar: cmake. (Dağıtımın paket deposundan kurulabilir.)
Kurulum:
- İndirilen arşiv klasöre çıkarılır.
- Klasör içinde build diye bir klasör oluşturulur.
- Terminalden bu klasöre girilip:
$ cmake ..
$ make
# make install
Not: Kurulumdan sonra “error while loading shared libraries: libaruco.so.2.0” hatası verebilir. Bu durumda aşağıdaki komutlar çalıştırılmalı.
# cd /usr/local/lib
# ls | grep libaruco.so*
Sonrasında /usr/lib dizininde bu dosyaların kısayolları oluşturulur. Benim sistemimde şu şekilde
# ln -s libaruco.so /usr/lib/libaruco.so
# ln -s libaruco.so.2.0 /usr/lib/libaruco.so.2.0
# ln -s libaruco.so.2.0.14 /usr/lib/libaruco.so.2.0.14
Son olarak
# ldconfig