메세지 | 길이 |
헤더 : 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; // 디스플레이 생성 void setup() { hp.begin(); // 디스플레이 시작 } void loop() { hp.waitStart(); // 디스플레이 준비 완료 기다림 hp.color(Silver); // 색상 Alpha-R-G-B 4byte for( int r=10; r<100; r+=20) hp.circle(100,100,r,false); //원 그리기 hp.color(Red); for( int x=0; x<200 ;x+=10) hp.line(x,0,100,100); // 선그리기 hp.color(MidnightBlue); for( int x=0; x<200 ;x+=10) hp.line(x,200,100,100); } |
앱인벤트 블루투스 연결 블럭 수정 사항
waitStart()에 텍스트 보내기( 디스플레이 준비 됨 알림 ,이신호로 wait 멈춤)
AppInventor 코드 : 지금까지 코드 입니다.. 아직 최종판 아님
Display.H 는 테스트용으로 색상, 원 , 선 그리기 기능만 제작 ( 아직 최종판 아님 )
Display.H | |
#ifndef _Display_
#define _Display_
#include "ARGB_COLOR.H"
class Display
{
public:
void begin(){ _BT.begin(9600); }
void waitStart();
void color(unsigned long c);
void circle( int x, int y, int r, bool f);
void line( int x, int y, int x2, int y2);
private:
void send2Byte( int n );
};
void Display::color(unsigned long c)
{
_BT.write('c');
send2Byte( c &0xffff ) ;
send2Byte( (c>>16) &0xffff );
}
void Display::waitStart()
{
while( !_BT.available() ){}
_BT.read();
}
void Display::send2Byte( int n)
{
_BT.write( n &0xff );
_BT.write( (n>>8) & 0xff );
}
void Display::circle( int x, int y, int r, bool f)
{
_BT.write('C');
send2Byte( x );
send2Byte( y );
send2Byte( r );
_BT.write( f );
}
void Display::line( int x, int y, int x2, int y2)
{
_BT.write('L');
send2Byte( x );
send2Byte( y );
send2Byte( x2 );
send2Byte( y2);
}
#endif
|
COLOR 자료는 MSDN 참조했음(최종판) - 디스플레이 클래스에서 사용.. 같은 디렉토리에 저장
ARGB_COLOR.H | |
#ifndef _ARGB_COLOR_
#define _ARGB_COLOR_
#define AliceBlue 0xFFF0F8FF
#define AntiqueWhite 0xFFFAEBD7
#define Aqua 0xFF00FFFF
#define Aquamarine 0xFF7FFFD4
#define Azure 0xFFF0FFFF
#define Beige 0xFFF5F5DC
#define Bisque 0xFFFFE4C4
#define Black 0xFF000000
#define BlanchedAlmond 0xFFFFEBCD
#define Blue 0xFF0000FF
#define BlueViolet 0xFF8A2BE2
#define Brown 0xFFA52A2A
#define BurlyWood 0xFFDEB887
#define CadetBlue 0xFF5F9EA0
#define Chartreuse 0xFF7FFF00
#define Chocolate 0xFFD2691E
#define Coral 0xFFFF7F50
#define CornflowerBlue 0xFF6495ED
#define Cornsilk 0xFFFFF8DC
#define Crimson 0xFFDC143C
#define Cyan 0xFF00FFFF
#define DarkBlue 0xFF00008B
#define DarkCyan 0xFF008B8B
#define DarkGoldenrod 0xFFB8860B
#define DarkGray 0xFFA9A9A9
#define DarkGreen 0xFF006400
#define DarkKhaki 0xFFBDB76B
#define DarkMagenta 0xFF8B008B
#define DarkOliveGreen 0xFF556B2F
#define DarkOrange 0xFFFF8C00
#define DarkOrchid 0xFF9932CC
#define DarkRed 0xFF8B0000
#define DarkSalmon 0xFFE9967A
#define DarkSeaGreen 0xFF8FBC8B
#define DarkSlateBlue 0xFF483D8B
#define DarkSlateGray 0xFF2F4F4F
#define DarkTurquoise 0xFF00CED1
#define DarkViolet 0xFF9400D3
#define DeepPink 0xFFFF1493
#define DeepSkyBlue 0xFF00BFFF
#define DimGray 0xFF696969
#define DodgerBlue 0xFF1E90FF
#define Firebrick 0xFFB22222
#define FloralWhite 0xFFFFFAF0
#define ForestGreen 0xFF228B22
#define Fuchsia 0xFFFF00FF
#define Gainsboro 0xFFDCDCDC
#define GhostWhite 0xFFF8F8FF
#define Gold 0xFFFFD700
#define Goldenrod 0xFFDAA520
#define Gray 0xFF808080
#define Green 0xFF008000
#define GreenYellow 0xFFADFF2F
#define Honeydew 0xFFF0FFF0
#define HotPink 0xFFFF69B4
#define IndianRed 0xFFCD5C5C
#define Indigo 0xFF4B0082
#define Ivory 0xFFFFFFF0
#define Khaki 0xFFF0E68C
#define Lavender 0xFFE6E6FA
#define LavenderBlush 0xFFFFF0F5
#define LawnGreen 0xFF7CFC00
#define LemonChiffon 0xFFFFFACD
#define LightBlue 0xFFADD8E6
#define LightCoral 0xFFF08080
#define LightCyan 0xFFE0FFFF
#define LightGoldenrodYellow 0xFFFAFAD2
#define LightGray 0xFFD3D3D3
#define LightGreen 0xFF90EE90
#define LightPink 0xFFFFB6C1
#define LightSalmon 0xFFFFA07A
#define LightSeaGreen 0xFF20B2AA
#define LightSkyBlue 0xFF87CEFA
#define LightSlateGray 0xFF778899
#define LightSteelBlue 0xFFB0C4DE
#define LightYellow 0xFFFFFFE0
#define Lime 0xFF00FF00
#define LimeGreen 0xFF32CD32
#define Linen 0xFFFAF0E6
#define Magenta 0xFFFF00FF
#define Maroon 0xFF800000
#define MediumAquamarine 0xFF66CDAA
#define MediumBlue 0xFF0000CD
#define MediumOrchid 0xFFBA55D3
#define MediumPurple 0xFF9370DB
#define MediumSeaGreen 0xFF3CB371
#define MediumSlateBlue 0xFF7B68EE
#define MediumSpringGreen 0xFF00FA9A
#define MediumTurquoise 0xFF48D1CC
#define MediumVioletRed 0xFFC71585
#define MidnightBlue 0xFF191970
#define MintCream 0xFFF5FFFA
#define MistyRose 0xFFFFE4E1
#define Moccasin 0xFFFFE4B5
#define NavajoWhite 0xFFFFDEAD
#define Navy 0xFF000080
#define OldLace 0xFFFDF5E6
#define Olive 0xFF808000
#define OliveDrab 0xFF6B8E23
#define Orange 0xFFFFA500
#define OrangeRed 0xFFFF4500
#define Orchid 0xFFDA70D6
#define PaleGoldenrod 0xFFEEE8AA
#define PaleGreen 0xFF98FB98
#define PaleTurquoise 0xFFAFEEEE
#define PaleVioletRed 0xFFDB7093
#define PapayaWhip 0xFFFFEFD5
#define PeachPuff 0xFFFFDAB9
#define Peru 0xFFCD853F
#define Pink 0xFFFFC0CB
#define Plum 0xFFDDA0DD
#define PowderBlue 0xFFB0E0E6
#define Purple 0xFF800080
#define RebeccaPurple 0x663399
#define Red 0xFFFF0000
#define RosyBrown 0xFFBC8F8F
#define RoyalBlue 0xFF4169E1
#define SaddleBrown 0xFF8B4513
#define Salmon 0xFFFA8072
#define SandyBrown 0xFFF4A460
#define SeaGreen 0xFF2E8B57
#define SeaShell 0xFFFFF5EE
#define Sienna 0xFFA0522D
#define Silver 0xFFC0C0C0
#define SkyBlue 0xFF87CEEB
#define SlateBlue 0xFF6A5ACD
#define SlateGray 0xFF708090
#define Snow 0xFFFFFAFA
#define SpringGreen 0xFF00FF7F
#define SteelBlue 0xFF4682B4
#define Tan 0xFFD2B48C
#define Teal 0xFF008080
#define Thistle 0xFFD8BFD8
#define Tomato 0xFFFF6347
#define Transparent 0x00000000
#define Turquoise 0xFF40E0D0
#define Violet 0xFFEE82EE
#define Wheat 0xFFF5DEB3
#define White 0xFFFFFFFF
#define WhiteSmoke 0xFFF5F5F5
#define Yellow 0xFFFFFF00
#define YellowGreen 0xFF9ACD32
#endif
|
'프로젝트 > 휴대폰을 디스플레이로 활용하기' 카테고리의 다른 글
기능 개선판 아두이노 Bluetooth Display (0) | 2022.09.03 |
---|---|
앱인벤트로 라이브러리에 대응하는 블럭 만들기. (0) | 2022.08.27 |
휴대폰 디스플레이 라이브러리 클래스 (0) | 2022.08.27 |
그래픽 시연 (0) | 2022.08.26 |
휴대폰을 무선 디스플레이로 활용하기 다중 모니터 가능 (0) | 2022.08.25 |