최근에 chatgpt를 이용해서 블루투스 모듈을 이용한 시리얼 통신 테스트 프로그램을 작성해 봤다.
프롬프트를 어떻게 작성하느냐에 따라 많이 틀려기긴할 것 같은데, 내가 하는 일은 거의 명확하게 정의되는
일들이라 AI가 이해가히가 쉬웠던 것으로 보인다.
그런데 chatgpt는 약간의 문제가 있었다. 수신데이터를 디스플레이 하는 부분에서 에러가 발생한 것으로 보인다.
시스템이 다운되거나 느려지는 증상이 나타났다.
그래서 Claude를 이용해서 다시 같은 작업을 했다. 그랬더니 좀 더 깔끔하게 동작한다.
다음은 작성 프롬프트를 정리해 본 것이다.
"
주변 블루투스 장비를 검색하고, 선택해서 연결하고, 그 장치로 부터 오는 데이터를 디스플레이 하고, 내가 보내고 싶은 HEX 데이터를 ASCII 로 입력해서 전송하는 것을 하고 싶어. 프로그래밍해서 exe 파일로 만들 수 있도록 해 줘
스캔할 때에는 확인이 되는데 연결할 때에는 해당 어드레스에 장치가 없다고 연결이 안되는데?
bleakClient object has no attribute 'get_services'라고 나오는데?
TX항목에 "020200000000000000000102030400161203"를 넣었는데 "Send"버튼이 활성화가 안되는데?
프로그램을 좀 더 수정하자. RX log: 창을 보면 그냥 라인으로 쭉 써 지는데, 창 끝으로 가면 자동으로 줄바꿈이 될 수 있도록 수정해 줘. 그리고, nRF로 검색해 본 chipsen 의 UUID가 primary service : 0xFFF0 Notify : 0xFFF1 client characteristic configuraton : 0x2902 Write : 0xFFF2로나와. 프로그램에서 Write가 왜 00002로 나왔는지 궁금해
지금 짜준 프로그램의 RX 쪽 버퍼의 용량이 얼마나 되지? 일정 수준이 넘으면 버퍼를 클리어시키는 방법을 사용해야할 것 같고, RX에서 300ms 마다 30바이트의 데이터가 들어오거든. 그래서 그런지 프로그램이 계속 멈춰서 사용이 어려워
"
처음에는 이렇게 정리가 안된 내용으로 요청을 했었다.그러다가
그 다음에는 좀 더 정리해서 요청하게 되었다.
"
통신 데이터를 수신하는 프로그램을 짜 보자. 시작 바이트는 0x02이고, 종료는 0x03이야.
총 14바이트가 한 프레임으로 구성되어 있어.
첫 번째 바이트의 비트별로 기능이 있어.
0번 비트가 1이면 포토센서 입력이 된 것, 0이면 포토센서 입력이 없는 것, 0에서 1로 바뀌면 포토센서 카운트를 +1 해주고 표시해줘.
1번 비트는 스타트센서, 1이면 스타트센서 입력, 0이면 스타트센서 입력이 없음. 램프로 표시해 주고, 1일 때 램프를 켜줘.
2번 비트는 다리 줄임 완료 센서. 이것도 램프로 표시해 주고, 1일 때 램프를 켜줘
3번 비트는 회전 감지 센서, 이것도 램프로 표시해 주고, 1일 때 램프를 켜줘
4번 비트는 수위센서 입력, 이것도 램프로 표시해 주고, 1일 때 램프를 켜줘
5번 비트는 영점 설정이 완료됐다는 표시야. 이것도 램프로 표시해 주고, 1일 때 램프를 켜줘 6번 비트는 포토센서 에러 비트, 이것도 램프로 표시해 주고, 1일 때 램프를 켜줘
7번 비트는 비상정지 비트, 이것도 램프로 표시해 주고, 1일 때 램프를 켜줘 램프별로 이름을 적어줘.
두 번째 바이트는 물 온도 값이야. 숫자로 표시해 줘 세 번째 바이트는 에러코드 값이야.
네 번째 바이트는 포토센서 카운트 값이야. 숫자로 표시해 줘
다섯 번째 바이트는 매트 온도 센서야. 숫자로 표시해 줘
여섯 번째 바이트는 부팅 과정을 숫자로 표시한 것이야. 숫자로 표시해 줘
일곱 번째 바이트는 기능이 없어
여덟 번째 바이트부터 열 한번째 바이트는 각도 센서 값인데. 이건 따로 얘기할 게.
수신된 데이터를 14바이트(0x00 ~ 0x03)까지 표시해 주고, 클리어 시키는 버튼을 만들어줘.
수신 데이터는 최신 것을 제일 아랫 줄에 표시해주고, 일정 용량 이상은 삭제해 줘
통신 포트는 검색 되는 것을 풀다운메뉴로 표시하고, 선택할 수 있도록 해 주고, 통신 속도는 9600으로 고정, None Parity, 8bit data로 통신하고, 하드웨어 핸들링은 없어 이런 통신 프로그램을 작성해 줘.
그리고, 중간에 프로그래스바를 만들어줘. 포토센서 카운트 값을 표시할거야.
"
라고 요청했을 때,

와 같은 프로그램이 나타난다.
좀 더 명확하게 하면 내가 원하는 것을 정확하게 만들어 줄 것같다.
다음에는 좀 더 정리된 프롬프트를 작성해 볼 계획이다.
'AI(ChatGpt, Claude, ETC.)' 카테고리의 다른 글
| [AI] Python을 EXE 파일로 만들기 (0) | 2026.02.02 |
|---|---|
| [AI]X-OR 계산기 (0) | 2026.02.02 |
| 챗GPT Pro 시작 - User Profile (2) | 2025.05.19 |