EihiS

February 18, 2018

FLIP32-AIO-Lite (no baro) part.2 : S’en sortir avec l’OSD

Filed under: Hobby Electronics — Tags: , , , — admin @ 9:56 am

Suite de l’aventure, et conclusions temporaires : Puisque le firmware SPRACINGF3 depuis cleanflight-configurator 1.1 a marché, j’ai réinstallé le configurator en version 2.1 puis,reflashé la carte depuis celui ci, en firmware ‘SPRACINGF3′, avec les straps toujours en position ‘ FC-PC’ -> les gyro + accel sont accéssibles, la 3D du quadcopter suit les mouvements de celui ci. (ouf) -> la configuration des parametres OSD est disponible depuis le configurateur. prochaine étape : flasher l’OSD.. note : la version FLIP32OSD proposée par cleanflight n’est pas celle qui correspond a la FLIP32-AIO-Lite de Hobbyking. cf, ce post : https://www.rcgroups.com/forums/showthread.php?2633525-LS-F3-OSD-SP-Racing-F3-Flight-Controller-With-Integrated-OSD/page27 a l’inspection de ce bout de code du makefile :

"Good news everyone,
@AndersHoglund added a new target FLIP32F3OSD, so now you can compile the lastest release with out problems
F3_TARGETS += $(TARGET)
FEATURES = ONBOARDFLASH
TARGET_SRC = \
drivers/accgyro_mpu.c \
drivers/barometer_ms5611.c \
drivers/barometer_bmp085.c \
drivers/barometer_bmp280.c \
drivers/compass_ak8975.c \
drivers/compass_hmc5883l.c
ifeq ($(TARGET), FLIP32F3OSD)
TARGET_SRC += \
drivers/accgyro_mpu6500.c
else
ifeq ($(TARGET), ZCOREF3)
TARGET_SRC += \
drivers/accgyro_mpu6500.c \
drivers/accgyro_spi_mpu6500.c
else
TARGET_SRC += \
drivers/accgyro_mpu6050.c
endif
endif"
on peut voir que le build FLIP32OSD est une version qui utilise la MPU6500 et non le MPU6050, i2c , de la carte FLIP32-AIO-Lite ….
*** NOTES, en cours de rédaction , et pour le futur *** (you can safely ignore those things)
- maxim max7456->monochrome OSD chip
- silcon labs : CP2102 = USB to UART Bridge
//
scarab OSD : prebuilt .hex source pour flash, hardware : minimOSD sous cleanflight:
https://github.com/ShikOfTheRa/scarab-osd/releases/download/1.8.0.0/minim.cleanflight.multirotor.hex

MWOSD 1.68 , java standalone ( win , linux 32 et 64 , mac os )
*** fin des notes ***
—- s’en sortir avec MWOSD (scarab fork) —————-
1:charger la version 1.6 des releases
2:decompresser..(prendre une version plus ancienne : scarab-osd-1.6, le GUI est GRATUIT)
3:ouvrir projet MW_OSD avec ARDUINO IDE
4: verifier : si les straps sont bien en position ‘OSD-PC’ sur la carte FC , selectionner : port = /dev/ttyUSB0 (dans mon cas) , et faire ‘get board info’. doit retourner une info du genre :
BN: Unknown board
VID: 10C4
PID: EA60
SN: Upload any sketch to obtain it
... on sait au moins que l'usb adapter fonctionne :'(
4:configurer le source , fichier : config.h (TODO : détailler, mais au moins, #definir : minimOSD, cleanflight…)
5: pret à flasher
6:selectionner type de carte : tools -> board -> arduino pro or pro mini
7:selectionner type de processeur : atmega328P (5V, 16MHz)
-> flasher (icon ‘->’ de l’arduino IDE )
Apres uploading et verify :
lancer MWOSD_GUI 1.6
LINUX users : executer depuis le dossier /scarab-osd-1.6/MW_OSD_GUI/application.linux64/MW_OSD_GUI
(ne pas oublier de CHMOD +x le fichier (script shell)
-> et VOILA
si vous n’aimez pas la version ‘1.6 gui , free’ , je vous invite a installer l’extension .crx de MWOSD R1.6 free version.
j’ai pré-decompressé le fichier ( aller chrome->extensions->expert mode ->load unpacked extension -> selectionner le dossier complet ou vous l’avez placé ). le fichier zip : mw_osd_gui_extension_uncompressed.tar.gz
-> ce qui donne, une fois installé dans chrome :
314159265358979323846264338327950288
419716939937510582097494459230781640
628620899862803482534211706798214808

February 17, 2018

FLIP32-AIO-Lite (no baro) , first power-on on cleanflight

Filed under: Hobby Electronics — Tags: , , , — admin @ 10:05 am

Achetée sur hobbyking en février (https://hobbyking.com/en_us/flip32-f3-aio-lite.html?___store=en_us)

configuration pc : linux , ubuntu 16.04

configurateur : cleanflight configurator 2.1.0

NOTES :

- erreur a la premiere connection, sur /dev/ttyUSB0 : Vérifier que l’utilisateur de la session est enregistré dans le groupe ‘dialout’ (linux ! )

- firmware de la flip32 : cleanflight configurator force a reflasher la carte , ou a installer une version plus ancienne de cleanflight-configurator  :(

-> brancher la carte avec les pins ‘boot 0′ court-circuitées (led bleue : fixe, orange fixe) , flasher le firmware apres download depuis internet (options FLASH :  ‘no reboot sequence’ et ‘manual baud rate : 256000′

- déconnecter usb, rebrancher, et ‘connecter’ sur cleanflight-configurator.

RESULTAT : pas de GYRO / pas d’ACCEL….’calibrate accelerometer’ reste grisé.

je suis pasé sur la console ‘CLI’

-> ’status’ affiche CPU Clock=72MHz, mais rien en suivant ( devrait afficher : GYRO=…,ACC=….. )

->forcer la detection en entrant ‘ set acc_hardware=MPU6050′ , save, reboot : rien de changé, toujours pas de GYRO ni ACCEL…. ;’(

Après une matinée de recherches sur les forums ..

downgrade de cleanflight configurator vers la version 1.1

re-flash du FC avec le firmware SPRACINGF3 (!!!) et non pas ‘FLIP32OSD’

reboot, et dans CLI , ’status’ :

# status
System Uptime: 225 seconds, Voltage: 0 * 0.1V (1S battery - NOT PRESENT)
CPU Clock=72MHz, GYRO=MPU6050, ACC=MPU6050.n
Cycle Time: 3500, I2C Errors: 3, config size: 2052

ENFIN !!!.bon, j’ai les nerfs.. les docs sont inexistantes sur cette carte, les réponses sur les forums sont aléatoires.. bref, c’est la jungle.

Reste a configurer l’OSD et faire tourner le tout en liaison ( straps en position OSD-FC )

314159265358979323846264338327950288
419716939937510582097494459230781640
628620899862803482534211706798214808

May 16, 2017

3D photogrammetry on Linux with CUDA + COLMAP

Filed under: linux — Tags: , , , , , — admin @ 6:45 am

Ce post regroupe des notes concernant l’installation de CUDA et du logiciel COLMAP pour photogrammetrie
( Reconstruction de modele 3D en utilisant des photos multiples d’un même élément depuis plusieurs points de vues )

Target config : portable x86_64, 8Go,NVIDIA GT540M , Linux Ubuntu 16.04

Part I : CUDA drivers

  • Nvidia-CUDA drivers,téléchargement (1.8 Go) : http://developer.nvidia.com/cuda-downloads
  • >> choix des OPTIONS du download :  Linux, x86-64, ubuntu, 16.04, deb(local)
  • Installation (depuis le dossier : ‘Downloads’ )

  • sudo dpkg -i ./Downloads/cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
  • sudo apt-get update
  • sudo apt-get install cuda
    • Note : des warnings “ldconfig.real,   **warnings** sur egl.so ‘not a symbolic link’ ” apparaissent (more on this later )
    • Redémarrer…

    Quick starting guide, PDF : http://developer.download.nvidia.com/compute/DevZone/docs/html/C/doc/CUDA_C_Getting_Started_Linux.pdf

    • Ajouts à PATH & LD_LIBRARY_PATH des librairies CUDA :
    1. $ export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
    2. $ export PATH=/usr/local/cuda/bin:$PATH
    3. (pour ajout permanent, ajouter ces lignes en fin du fichier “.profile” du dossier “home” utilisateur )
    Tester , compiler un exemple :
    • les examples sont localisés dans /usr/local/cuda/samples
    Pour compiler dans un dossir autre ( droits d’accès.. ) , exemple ‘test_cuda’ :
    • recopier le dossier complet ’samples’ de /usr/local/cuda/samples dans l’endroit de votre choix de votre ‘home’
    • Puis, ‘make’ depuis le sous-dossier d’exemple
    • le dossier ./test_cuda/bin/ est créé
    • dans ./test_cuda/bin/x86_64/linux/release/ se trouve l’executable du nom de l’exemple compilé

    Part II : COLMAP software

    • git clone https://github.com/colmap/colmap
    apt-get , dependances :
    sudo apt-get install \
        cmake \
        build-essential \
        libboost-all-dev \
        libeigen3-dev \
        libsuitesparse-dev \
        libfreeimage-dev \
        libgoogle-glog-dev \
        libgflags-dev \
        libglew-dev \
        freeglut3-dev \
        qt5-default \
        libxmu-dev \
        libxi-dev
    executer : $ dpkg -l | grep libeigen
    Si la version n'est pas 3.2.10, voir footnote , réinstaller la version 3.2.10 avant de continuer
    Installer "Ceres Solver" :
    sudo apt-get install libatlas-base-dev libsuitesparse-dev
    git clone https://ceres-solver.googlesource.com/ceres-solver
    cd ceres-solver
    mkdir build
    cd build
    cmake ..
    make -j1 ( <- your taste..)
    sudo make install
    Le cache de ma machine reste plein apres la manip, si c'est votre cas, essayez (flush du cache linux) :
    • sudo sh -c ‘echo 1 >/proc/sys/vm/drop_caches’
    Ensuite, compilation+installation COLMAP :
    • cd repertoire de download colmap
    • mkdir build
    • cd build
    • cmake ..
    • make -j2
    • sudo make install

    FOOTNOTE :

    si problemes de crashes COLMAP en lancant ‘reconstruction’ (SEGFAULTS, EIGEN visible dans le crash resume):
    Vérifier la version de eigen , avec : dpkg -l | grep libeigen
    Il faut la 3.2.10 et non la 3.3(beta) comme c’etait le cas sur ma machine..
    Donc, en résumé :
    • Télécharger Eigen 3.2.10 https://bitbucket.org/eigen/eigen/downloads?tab=tags
    • mkdir build,cd build,cmake ..,make install
    • ->uninstall Eigen 3.3 depuis synaptic package manager
    • Recompiler Ceres ( il FAUT specifier les chemins modifiés pour votre lib EIGEN version 3.2.10 fraichement recompilée )
        dans ceres-solver/ -> cd build, make clean, cmake -D EIGEN_INCLUDE_DIR=/usr/local/include/eigen3 ..
    • make -j2
    • Recompiler Colmap ( il FAUT specifier les chemins modifiés pour votre lib EIGEN version 3.2.10 fraichement recompilée )
    • dans colmap/ -> cd build,make clean,cmake -D EIGEN3_VERSION=3.2.10 -D EIGEN3_INCLUDE_DIRS=/usr/local/include/eigen3 -D EIGEN_INCLUDE_DIR=/usr/local/include/eigen3/ ..
    • make -j2
    314159265358979323846264338327950288
    419716939937510582097494459230781640
    628620899862803482534211706798214808
    

    March 25, 2017

    Using the Data-Folder libraries

    Filed under: linux, neuron — admin @ 11:34 am

    Pour cette fois, le post est en anglais

    Today i released a first bunch of my homebrew libraries , so i’m going to post a first ‘hello world’ example program, wich uses those libraries.
    I have not enough time to expose and explain all of that libraries functions, so the best is to dive into the code if you wish to understand the things.

    In order to continue with the ‘neural net learning ‘ series, i need to use some graphic functions like displaying bitmaps, displaying text and buttons , and so on.. so, i’ll use those libraries in the next séries of post.

    a simple “hello world” program (reminder : it uses the EHS2D_V2 folder from data.eihis.com/common/:

    Opens a sdl2.0 based window, and creates a ‘text window’ inside it, displaying bitmap-based char texts :

    This is a ultra-simple , first program just to use some simple functions of the library.

    You can grab the necessary files from here : (ZIP : data.eihis.com/web_ehs2d_helloworld/web_ehs2d_helloworld.zip )

    • Use the makefile to build the executable
    Here is , for information, the main.c code which is pretty small :
    #include "classics.h"
    // ehs 2d , sdl2.0 etc includes
    #include "local_config.h"
    int main(int argc, char **argv)
    {
    
    	int32_t h_textwindow;
    	char* cb_text;
    	char* cb_temp=malloc(sizeof(char)*256); // some room for sprintf functions
    	uint32_t i_eventreturn;
    	// hello world related variables
    	uint32_t roll;
    	uint32_t quit;
    	//
    	// (uses EHS2D globals)
    	//
    	ehs_main_x=0;
    	ehs_main_y=0;
    	ehs_main_w=900;
    	ehs_main_h=600;
    	// mandatory.. we wont resize the main window in this example
    	ehs_dynamic_main_w=ehs_main_w;
    	ehs_dynamic_main_h=ehs_main_h;
    	//
    	ehs_target_main_w=ehs_main_w;
    	ehs_target_main_h=ehs_main_h;
    	// enables/disables the background image (see local_config.h for the image's definition )
    	ehs_background_name="../common/BITMAP/ARGB8888/helloworld_900x600.bmp";
    	ehs_use_background=1;// if 1, would start with background enabled, displayed
    	// could have been 0, with no background name defined
    	//
    	//
    	// init EHS2D
    	//
    	EHS_init();
    	//
    	cb_text=(char*) malloc(sizeof(char)*32*12); // alloc size for the window's text
    	h_textwindow=EHS_reg_elem(_EHS_SUBWINDOW,50,50,32,12,0,0,_EHS_IDLE,(uint8_t*) cb_text,"Console demo\0",_EHS_DM_CHAR,_EHS_FONTB_SIZE,fontB,fontC);//
    	EHS_set_fonts(h_textwindow,0,2); // this sets the font used , aka 'font A / font C'
    	EHS_SUBWIN_clear(h_textwindow,' '); // clear the window's display buffer ('cb_text') with ' ' (space) chars
    	//
    	EHS_SUBWIN_textAt(h_textwindow,"Hello world!",0,0);// place a text inside, at coordinates 0,0
    	//
    	quit=0;
    	roll=0;
    	while(quit==0)// loop there
    	{
    		// sprintf to a temp buffer for dynamic text content, then displat @ x=0,y=2 inside the ehs window
    		sprintf(cb_temp,"Roll value is:%d \n",roll);
    		EHS_SUBWIN_textAt(h_textwindow,cb_temp,0,2);
    		// render the main window
    		SDL_RenderPresent(sdlRenderer);
    		// update the window's contents
    		EHS_update();
    		// now manage with input events
    		i_eventreturn=EHS_process_events();
    		switch (i_eventreturn)
    		{
    			case _EHS_EVENT_QUIT:
    				quit=1;
    			break;
    			case _EHS_EVENT_KEYINPUT:
    				//
    				switch (input_key)
    				{
    					case SDLK_ESCAPE:
    						quit=1;
    					break;
    					case SDLK_t:
    						//
    					break;
    					//
    					case SDLK_SPACE:
    
    					break;
    					//
    					default:
    					break;
    				}
    			break;
    			case _EHS_MOUSECLICK:
    
    			break;
    
    			default:
    			break;
    		}
    		//	some delay
    	usleep(50000);
    	roll++;
    	}
    	EHS_exit();
    }
    314159265358979323846264338327950288
    419716939937510582097494459230781640
    628620899862803482534211706798214808
    
    Older Posts »

    cat{ } { post_1114 } { } 2009-2015 EIhIS Powered by WordPress