본문 바로가기

프로젝트/휴대폰을 디스플레이로 활용하기

(8)
다중 디스플레이, 수학좌표 기능추가와 사용법이 간편해진 완전 개선판 다중 디스플레이 지원( Display 생성부분이 완전이 새로워짐) 다중 디스플레이를 위한 블루투스 연결은 하드웨어 시리얼과 소프트웨어 시리얼이 있음 Display Class는 모두 지원하고 생성자도 함수 오버레이로 동일한 형태임 기존 #define문은 사라지고 생성시 바로 시리얼 주소을 넘겨주면 됨 #include // 소프트웨어 시리얼 사용시만 SoftwareSerial Soft(A1, A0); //( Rx, Tx ) Display hp( &Serial ); // 하드웨어 시리얼의 주소를 넘겨준다 ( Mega는 4개까지 사용가능 ) Display sp( &Soft ); // 소프트웨어 시리얼 주소를 넘겨준다 hp.begin( 115200 ) sp.begin( 115200 ); // 소프트웨어 시리얼은 ..
echo()사용 위치에 따른 그래픽 속도와 표현 차이 동영상으로 확인하기 https://youtu.be/_z0arpxSNXY 아두이노 소스 1 #define _BT Serial #include "D:\\myHeader\\Display.H" Display hp; int cx,cy; void setup() { hp.begin(); hp.echo(); hp.clear(); cx=hp.width()/2; cy=hp.height()/2; } void loop() { hp.color(White); for( int r=0; r
기능 개선판 아두이노 Bluetooth Display 기능개선판 동영상 보기 앱인벤트 Timer는 interval을 0으로 세팅해도 평균 50ms이상으로(관련 글로 이동) 반응한다. 블루투스 수신을 확인 하기 위하여 Timer를 사용 하므로 선 하나 점 하나 그리는 시간이 빨라도 50ms가 걸린다는 것이다. 그래서 느림.. 그러면 혹시........... 타이머 이벤트가 발생 하면 한번에 테이타를 전송 하면 어떨까? 스스로 실험을 해보면 알겠지만 Timer Event 루프를 빠져 나오기 전까지 아무것도 안 보인다. 왜냐면 Timer Event가 끝나야 Paint Event가 발생하는 데 캔버스에 그리는 속도 보다 아두이노에서 전송되는 데이타가 더 빨라 누적되어 루프를 빠져 나오지 못한다. 그래서 연구 한 결과 기존에 그리기 함수마다 있는 응답을 기다리는 w..
앱인벤트로 라이브러리에 대응하는 블럭 만들기. 소스파일 앱인벤터에서 불러오기로 사용함 apk파일 휴대폰에 앱 설치 파일 앱을 APK로 설치시 아두이노 예제를 실행하면 /storage/emulated/0/Android/data/appinventor.ai_사용자이름.Display/files/ 디렉토리가 생성된다. 실행전에는 디렉토리 없음 /storage/emulated/0/Android/data/appinventor.ai_사용자이름.Display/이후 하위 디렉토리에는 이 앱이 접근 가능하다. 필요한 데이터도 이곳에 작성 하면 된다.
휴대폰 디스플레이 라이브러리 클래스 완성된 휴대폰 디스플레이 라이브러리 클래스 메소드 begin() 블루투스 연결로 디스플에이 시작 wait() 명령 수행후 응답을 기다리며 대기( 그리기 함수에서 사용) 그래픽이 아두이노 속도 보다 느려서 명령수행 완료후 다음을 진행하기 위해 waitDisplayStart() 디스플레이가 준비 될 때 까지 기다림 clear() 화면을 지움 단, 배경 이미지는 유지 됨 color(unsigned long c) 그리기 색상 지정 4Byte Alpha R G B ARGB_COLOR.H참조 bkColor(unsigned long c) 배경색 지정 int width(); 화면 너비 화면이 가로 세로 바뀌면 값도 변경 int height(); 화면 높이 화면이 가로 세로 바뀌면 값도 변경 textSize( int s..
그래픽 시연 사용 휴대폰 LG G3 화면을 터치하면 메뉴 on / off 동여상 보기 클릭 아두이노 휴대폰을 디스플레이로 활용하기 아두이노 휴대폰을 디스플레이로 활용하기(2) 슬라이드 메뉴 Bluetooth Display 예제1 Bluetooth Display 예제2(조이스틱 사용) Bluetooth Display 예제3 원테두리에 다른 작은원 그리기 TFT LCD 출력과 비교하기 아두이노 소스 #define _BT Serial // 하드웨어 기본 시리얼을 블루투스로 사용 #include "D:\\myHeader\\Display.H" // 디스플레이 코어 클래스( 디스플레이 앱과 통신 하는 곳 ) #define _APK_ apk파일로 앱을 휴대폰에 추가 한 경우 #ifdef _APK_ #define LoadImg; ..
아두이노 연결 하고 통신 테스트 하기 메세지 길이 헤더 : C 1 Byte X좌표 2Byte Y좌표 2Byte 반지름 2Byte 채우기 1Byte( 0 , 1 ) 1 = true 아두이노에서 메세지를 넘겨주면 ( 블루투스) 앱에서 1Byte 텍스트받기 = 'C'이면 원그리기 데이타 받기 2Byte 숫자 받기 = X 2Byte 숫자 받기 = Y 2Byte 숫자받기 = R 1Byte 숫자받기 = bool 데이타 받기 완료 원그리기 동영상으로 보기 소스를 보면 일반 TFT LCD에 출력 하는 방식과 동일 하다. 아두이노 소스 #define _BT Serial // 블루투스 기본 시리얼 0,1번핀 사용 라이브러리 전에 선언 #include "D:\\myHeader\\Display.H" // 디스플레이 라이브러리 Display hp; // 디스플레이..
휴대폰을 무선 디스플레이로 활용하기 다중 모니터 가능 계속 코드가 업그레이드 됩니다. 시간순으로 글을 작성 하니 맨 아래쪽 글이 최신판입니다. 다운로드와 복사는 2번글 : ARGB_COLOR.H 복사 하세요 8번글 : Display.H 아두이노 예제소스 복사 앱인벤터 aia apk 다운로드 하세요 TFT LCD는 사용하기 불편하다. 중요 단점만 봐도 하드웨어에 따라 코딩이 달라진다.( 머리가 아픔 ) 핀을 많이 소모한다. ( Uno는 다른 곳에 사용 할 핀이 안 남아요) 한글 출력에 별도의 작업이 필요 하고 메모리도 많이 차지하고 느림 그래서 TFT LCD보다 훨씬 저렴한 중고 휴대폰을 디스플레이로 활용 하기로 한다. 집에 남아 있는 폰이나 테블릿을 활용 하면 될것이다. 구입해도 2~3만원이면 5인치이상 구함( 블루투스는 꼭 되야 함 ) 기존의 TFT LC..