지난 시간에 이어서 진행을 하겠습니다. 지난 포스팅[NDK] Android NDK + Opencv 카메라 ndk-build를 이용항 실행 방법_1 Step1. Native Function을 선언해주는 Java Class 파일 생성. 생성하고 한번 build 시키면 아래와 같이 OpenCVNAtiveClass.class 파일이 생성됩니다. Step.2 Javah 를 이용한 c++ 파일 생성. 위 조건은 해당 Native Function을 담고 있는 Java Class파일이 app/intermediates/classes/debug/com/example/[users]/[ndkopencvtest]/ 아래에 생성이 되어 있어야만 합니다. Terminal 창에다가 위와 같이 경로로 이동을 해줍니다. 해당 경로에다가..
Android NDK와 Opencv 카메라 테스트를 위해서 제가 계속 시도해본 결과 정리한 내용을 바탕으로 블로그에 글을 작성한 것 입니다. 저의 개발 환경은 다음과 같습니다.Windows10 Professional KOpencv 3.3.0 (Android-Opencv-SDK)Android Studio 3.0.0LG G4 (Android Ver : 5.1.1) Step.1 Android Project 생성 NDK를 사용하시는 분들 중 "왜 Include C++ support를 체크 안하는가?"라고 생각이 드시는 분들이 계실것입니다. 체크를 안한 이유는 제 경험상 CMake를 사용할때는 해당 부분을 체크해야하는데 그게 아니라 Ndk-build(Android.mk와 Application.mk를 사용하는 경우..
1. 뷰 속성 사용자 눈에 보이는 구성요소, 2. 뷰 그룹(View Group) 여러개의 뷰를 포함하고 있는 그룹, 뷰 그룹 안에서 뷰의 위치를 지정할 수 있다. 또한 뷰 그룹은 다른 뷰 그룹을 계속 넣을 수 있다.즉, 뷰 그룹은 뷰를 상속하여 뷰 그룹도 뷰 처럼 다룰 수 있게 된다. 상속(Inheritance) "무언가를 남에게 물려준다"라고 이해하자, 뷰 그룹이 뷰를 상속했다라는 말은 "뷰 그룹(자식)이 뷰(부모)의 속성을 모두 물려받았다" 라는 뜻이다. 정리 뷰(View)가 뷰 그룹(ViewGroup)을 상속하게 되면, 뷰 그룹도 뷰가 되므로 뷰 그룹 안에 또 다른 뷰 그룹을 가지고 있을 수 있게 된다. 그 이유는 포함되어있는 뷰 그룹도 뷰 속성을 그대로 가질 수 있기 때문이다. (뷰 그룹 = 뷰)..
에코서버란? 간단하게 클라이언트가 요청을 보내면 적당한 응답을 보내주는 서버이다. 즉, 요청 메세지를 메아리로 보내거나 미리 정의된 메세지로 응답을 하게 된다. 목표 : 에코서버와 클라이언트의 양방향 통신 테스트. EchoServer.java import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.EventLoopGroup; import io.netty.channel.nio.NioEventLoopGroup; import i..
모터 회전 구현하기-Processing- 목표 Processing에서 GUI 형태로 매개변수(게인)값을 조정해서 아두이노로 시리얼 통신을 통해 값을 전달해 주는 코드 작성하기 소스코드 import controlP5.*; import processing.serial.*; ControlP5 cp5; Serial comPort; void setup(){ size(700, 360); noStroke(); cp5 = new ControlP5(this); cp5.addTextlabel("", "Drone PID Tunning") .setPosition(200, 10) .setColorValue(0xffffff00) .setFont(createFont("Lucida Sans", 30)) ; cp5.addSlider(..
모터 회전 구현하기 -Arduino IDE- 목표 프로세싱에서 받은 매개변수(게인) 및 throttle 값에 따라 모터 회전 속도를 구현하는 코딩 순서 1. 프로세싱에서 받은 값에 따라서 모터 속도를 구현2. 프로세싱에서 매개변수 및 throttle 값을 변경할 수 있는 코드 작성(다음 포스팅에서 함) 소스코드 #include const int MPU_addr = 0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ; void setup() { initMPU6050(); //MPU-6050 센서에 대한 초기 설정 함수 Serial.begin(115200); //Serial 통신 시작 calibAccelGyro(); //센서 보정 initDT(); //시간 간격에 대한 초기..