[SafeRiding]
졸업 작품을 만들며 팀을 이루어 프로젝트를 진행하였습니다. 저희 팀은 SafeRiding이라는 것으로RaspberryPi, Arduino, Application(스마트폰)을 결합하여 카메라를 이용한 후방감지, 초음파를 이용한 물체감지 등의 기능으로 운전자의 안전사고와 자전거의 도난사고를 방지하는 것이었습니다.
전 RaspberryPi를 담당했습니다.
Arduino의 초음파센서, LED, 자이로센서 등 다양한 센서를 사용하여 입력받은 데이터 값들과 Application의 입력 및 GPS값의 RaspberryPi를 통한 양방향 통신이 가능해야했습니다.
RaspberryPi를 중간다리 역할인 서버로 두고 Arduino와 Application에서의 통신제어를 하며 동시에 RaspberryPi의 Cam을 Application으로 Streaming하기 위한 프로그래밍이 저의 주된 역할이었고 Application의 프로그래밍을 보조했습니다.
리눅스기반인 RaspberryPi의 프로그래밍에는 Python과 Bash Script를 사용했습니다. 어떤 통신기술을 사용해야 가장 최적화된 통신이 가능할지에 대한 많은 회의와 테스트를 거쳐 저희는 Arduino와 Application의 통신에는 Bluetooth를, Cam Streaming에는 Web-Streaming을 사용하여 통신하기로 결정했습니다.
사용되는 장비 및 기술과 언어들을 처음 접해본 저희는 프로젝트 진행에 앞서 서로 부족한 부분을 채워나가며 각 기술들을 공부했습니다.
초기 테스트 시에는 양방향 통신을 하는 것에 블루투스 프로그래밍을 하는데 채널의 중복으로 통신이 이루어지지 않아 문제가 됐었습니다.
그리고 Web-Streaming에서도 Web에서 URL로 직접 접속했을 때는 영상이 보였지만 Application에서는 보이지 않는 문제가 있었습니다.
블루투스 연결프로그램의 코드를 바꾸고 다시 짜보는 등 많은 시도를 했지만 쉽게 해결하지 못했습니다. 그러던 중 마음을 비우고 다시 해보자는 생각을 하며 코드의 처음 부분부터 차근차근 보던 중에 정말 단 한 문장의 코드가 문제였다는 것을 알게 되었습니다.
그것을 계기로 프로그래밍을 할 때 작성하는 코드 하나하나가 얼마나 중요한지를 알게 되었습니다.
좋은점 1
Web-Streaming에서의 문제는 RaspberryPi에서는 제대로 영상이 나가지만 Application에서 받지 못하는 것으로 보였고 어느 부분이 잘 못 되어있는지 찾기 힘들었기에 처음 작성한 코드가 아닌 다른 형식으로 코딩해서 문제를 해결하였습니다.
[경험 더하기 배움]
서울특별시 강서구 선관위에서 사무보조업무를 할 당시 과장님은 사전투표 기계 및 네트워크에 관한 업무를 제안했고 흔쾌히 수락했습니다.
저는 각 동사무소 직원들과 아르바이트생들에게 장비설치 및 운용방법을 교육하고, 투표 당일을 대비한 테스트를 진행, 통솔하는 업무를 맡았습니다. 테스트는 접속 로그확인 및 강서구 내 네트워크 트래픽 관제 등을 하는 방식으로 진행되었고 문제가 발생할 경우 해당 투표소의 네트워크 장비들을 재점검하였습니다.
사전투표 당일 시작 30분 전, 문제가 없던 2개의 동에서 암호화된 USB 실행문제, 네트워크 연결문제를 보고받았고 저와 담당 주임은 각각 투표소로 향했습니다.
문제를 확인할 시간이 없었기 때문에 전화로 주임에게 설명하며 동시에 허브를 교체 후 설정 및 암호화 작업을 진행하였고 시간에 맞춰 투표를 시작할 수 있었습니다.
지역구 단위의 네트워크를 관리하며 배운 기술과 카카오에서의 배움이 합쳐진다면 카카오에 걸맞은 인재가 될 것이라 생각합니다.
글자수 1,816자2,876Byte