주간 진행 보고서 (5월 5주차)

2019.05.28 (화)


오늘은 앱 데이터베이스 연동 작업과 아두이노 소프트웨어 보조 작업을 진행했다.

우선 아두이노 같은 경우에는 기존에 썼던 코드에 오류가 좀 있어서 수정을 했는데 나중에는 결국 라즈베리파이를 써야 하기 때문에 기본적인 부분만 교체하고 차후 라즈베리파이 파이썬과 연동해서 옴니 카를 움직이도록 할 예정이다.

앱 부분에서는 레이아웃의 일부를 수정하고 메인화면 및 다이얼로그에 필요한 변수들과 데이터베이스 내의 값들을 연결하는 작업을 했다.

앱 내 전체 데이터 확인 화면을 위한 커스텀 리스트를 만들어 두었는데 각 튜플마다 들어갈 데이터 값들의 정렬이 약간 바닥으로 붙은 것 같은 느낌이 들어 가운데 정렬을 시켜주기 위해 레이아웃 일부를 수정하였고 위치 정보 같은 경우도 내용이 너무 길 경우 잘려서 나오는 현상을 발견하여 해당 열의 폭을 증가시켰다.

또, 메인 아이피 주소 및 포트 정보 표시 구간과 아이피 정보 변경 다이얼로그에 대한 부분을 데이터베이스와 연결시켰다.

데이터베이스에 아이피 정보 값이 저장되어 있는 경우 아이피 정보 변경 다이얼로그에서 이미 저장된 주소 값을 표시하도록 하였고 이는 아이피 정보 변경 시 수정이 용이하도록 한 작업이었다.

추가로, 아이피 정보 변경 다이얼로그에서 메인 아이피 정보, 카메라 아이피 정보, 포트 번호를 입력하지 않는 경우의 예외처리를 일부 수정하기도 했다.



자세히 보기

주간 진행 보고서 (5월 4주차)

2019.05.21 (화)


기존에 구상한 데이터베이스 테이블 내용 중 일부를 앱 내에 1차적으로 구현했다.

메인 화면부터 데이터베이스와 연동하여 각각의 변수를 불러오고 저장하도록 했다.

데이터베이스에 구상한 테이블은 Setting과 Data인데, Data에 들어갈 값들은 데이터 관리 화면에서 필요한 값들이기 때문에 메인 화면에서 따로 불러오는 작업을 하지는 않았다.

계속해서 데이터베이스 연동 작업을 진행해야 하지만 I2C 통신 프로토콜 PPT를 추가 수정해야 할 필요성이 생겨 잠시 중단하였다.

이번 주 목요일 정도까지는 I2C 통신프로토콜 PPT를 수정하고 그 이후에 앱 데이터베이스 구축을 계속해서 진행할 예정이다.

앱 데이터베이스를 구축하는 부분에 있어서는 안드로이드의 SQLiteDatabase를 사용했다.

Setting 테이블에는 아이피 주소, 포트 번호, 작동 방식, 데이터 자동 저장 여부 및 주기가 들어가도록 설정하였고 오늘은 메인 화면과 환경설정 다이얼로그 작동 방식 연동에만 신경을 썼다.

환경설정 다이얼로그 부분과 데이터베이스를 연동하는 부분에서 기존에 설정된 값들을 전체 수정해야 할 필요가 있었는데 막상 전체 내용을 다 수정하고 보니 작동 모드를 결정하는 버튼을 클릭할 때 데이터베이스와의 연동이 제대로 동작하지 않아 I2C 통신 프로토콜 PPT 수정이 끝나는 대로 바로 다시 확인해서 수정할 수 있도록 해야겠다.

자세히 보기

주간 진행 보고서 (5월 3주차)

2019.05.14 (화)


이번 주는 원래 앱 내장 데이터베이스 설계가 계획되어 있었지만 27일에 있을 3차 발표 때문에 PPT를 제작하려고 한다.

금요일에 교수님께 1차 검사를 받고 다음 주 중으로 한 번 더 수정 작업을 거칠 예정이다.

오늘은 출근 후 I2C 통신 프로토콜 PPT 내용 전체 수정을 마무리하였다.

차후 장치 부분에 대한 내용을 추가로 수정해야 할 가능성도 있지만 일단 기존에 수정해야 할 내용들은 모두 수정했다. 해당 자료 마무리 이후부터는 계속해서 PPT를 구상하고 제작하고 있다.

3차 계획 PPT를 구상하는데 있어 1, 2차보다 더 쓸 내용이 없는 것 같다.

물론 한 달 동안 아무것도 하지 않은 것은 아니지만 일단 제품을 구입해야 무언가를 할 수 있을텐데 제품을 아직도 구입하지 못하고 있다보니 한 달 동안 한건 아두이노로 휠과 센서 테스트를 해봤다는 것, 통신 프로토콜에 관한 내용을 조사했다는 것, 앱 데이터 관리 화면을 디자인했다는 것 정도인 것 같다.

세부적인 내용없이 포괄적으로 진행하다보니 PPT에 들어갈 내용이 그렇게 많지 않아서 일단 만든 후에 교수님과 상담을 진행해보고 필요한 내용은 추가할 수 있도록 해야겠다.



자세히 보기

주간 진행 보고서 (5월 2주차)

2019.05.07


앱의 EditText 스타일만 조금 변경하고 학교 실전문제연구단 (X-Corps) 팀빌딩 교육에 참석했다.

저번 오리엔테이션에 이어 올해 처음으로 실전문제연구단에 참가한 사람들을 대상으로 교육을 진행했는데 시간이 조금 늦어지긴 했지만 생각보다 유익한 시간이었던 것 같다.

이번 주는 오늘 교육 이후에 안드로이드 내의 데이터베이스인 SQLiteDatabase 기능과 연동하여 설정 값들을 저장하고 서버 연동 전까지 각종 기능들을 테스트 해볼 예정이다.

이제 곧 제품을 구입할 시기가 된 것 같아서 서둘러서 마무리를 해야할 것 같다.

팀빌딩 교육에서는 팀플을 진행하면서 필요한 부분들에 대해 조금 더 자세히 생각해 볼 수 있었다.

가장 먼저 팀플의 정의를 적어보고 다른 사람과 공유하면서 어떤 의견이 자신에게 가장 와 닿는지 투표하는 시간을 갖기도 했었는데 그 때 여러 가지 의견 중에 내 의견이 뽑혀서 기분이 좋았다.

팀플에서는 효율성보다 효과성이 중요하다는 것, 팀플에서 가장 중요한 것은 사람의 능력이나 그 자체가 아닌 스케줄링이라는 것 그리고 팀플이 망하는 이유, 팀플을 잘하기 위해 어떻게 업무를 나누어야 하는지 등 팀플에 필요한 다양한 정보들을 쉽고 재미있게 설명을 해주셔서 앞으로 캡스톤디자인과 실전문제연구단 프로젝트를 진행하는데 많은 도움이 될 것 같다.



자세히 보기

주간 진행 보고서 (4월 5주차 - 5월 1주차)

2019.04.30


오늘은 출근 후 I2C 통신프로토콜에 관한 자료 수정을 마무리하고 학교에서 진행하는 실전문제연구단 오리엔테이션에 참석했다.

가서 앞으로 실전문제연구단 사업이 어떻게 진행되는지, 어떤 교육을 지원해주는지, 지원 금액은 어떻게 되는지 등 다양한 정보들을 들을 수 있었고 앞으로 2번 정도 추가적인 교육을 들으러 가야할 것 같다.

I2C 통신프로토콜 연구 부분에서는 특별히 어려웠던 내용은 없었고 장치 데이터 시트 분석 전까지의 내용만 진행했다.

이번 주 내로 장치 부분 연구까지 마치고 다음 주부터 다시 데이터 관리 화면을 완성하고 구현하지 못한 나머지 부분들을 해결할 예정이다.

또, 다음 주에 실전문제연구단 팀빌딩 교육이 있어서 그 때 한 번 더 참여해야 할 것 같다.



2019.05.01


자세히 보기

주간 진행 보고서 (4월 4주차)

2019.04.23


오늘과 내일은 라즈베리파이에서 사용할 통신 프로토콜에 관한 연구를 진행할 계획이다.

팀원들과 나누어 UART, SPI, I2C에 관한 정보를 조사하려고 하는데 그 중에서 나는 I2C를 조사할 계획이다.

차후 모든 정보들을 취합하게 되면 다른 통신 방식도 확인해봐야겠다.

오늘은 일반적인 I2C의 정의와 UART, SPI와의 차이점, 필요한 전압, 구성 및 특징 그리고 통신 방식에 관한 내용들을 조사하였다.

오늘은 이 내용을 정리하고 내일은 통신 예제와 특정 부품에 대한 데이터시트 조사를 진행할 예정이다.

조사한 내용으로는 다음과 같다.

I2C는 필립스에서 개발한 직렬 컴퓨터 버스로, 여러 개의 저속 주변 기기를 연결하기 위해 사용된다.

시리얼 통신에 사용되는 UART 또는 SPI들보다 더 단순하여 심플한 회로 구성이 가능하며 최대 1,008개의 슬레이브 장치를 지원하는 동시에 N:N 통신도 가능하다.

자세히 보기

주간 진행 보고서 (4월 3주차)

2019.04.16


데이터 관리 화면 설계를 시작했다.

기본적으로 레이아웃 구성과 화면에 들어갈 아이콘 등 UI 초안을 만들고 그에 맞춰 기본적인 xml을 구성했다.

오늘은 저장된 데이터 세트의 수를 보여주는 플레이트, (데이터 검색, 전체 데이터 보기, 데이터 분석) 아이콘을 구성하였다.

추가로, 2차 계획 설계 기간 이후로 작품의 이름을 교체했기 때문에 그에 맞춰 앱 이름을 ‘MRM 컨트롤러’에서 옴니 카 컨트롤러로 변경하였다.

4월 15일에 2차 계획 발표를 마무리하고 오늘 처음으로 3차 계획 기간에 대한 작업을 시작했다.

이번 2차 계획 발표 때 메카넘 휠에서 옴니 휠로 변경한 것, 와이파이 통신 방식에 대한 교수님의 불만사항이 있었고 이를 수정할 지, 그대로 유지할 지 다음 계획 발표 전까지 생각해봐야 할 것 같다.

우선 옴니 휠을 사용하는 이유를 더 확실하게 해야 할 필요가 있을 것 같고 와이파이 통신 방식은 제품 제작이 완료되는대로 바로 확인해서 적용하도록 해야겠다.



자세히 보기

주간 진행 보고서 (4월 2주차)

2019.04.09


월요일에 담당 교수님께 발표할 제작 PPT를 검사받았는데 특징과 다른 시스템과의 차별성이 뚜렷하지 않다는 말씀을 하셔서 전반적인 내용을 다시 계획하고 수정하려고 한다.

오늘은 우선 필요한 내용들을 추가로 조사하고 내일까지 PPT를 완성한 이후에 교수님께 다시 제출할 계획이다.

이번에는 기존 시스템들과 차이를 중점으로 작성할 수 있도록 해야겠다.

일단은 기존의 RC카들을 찾아보고 작동 영상들을 확인하였다.

기존에 공개된 RC카들은 대부분 앞, 뒤로만 움직일 수 있고 회전 반경이 큰 경우가 대부분이었는데 옴니 휠이나 메카넘 휠을 장착한 RC카들은 대각선으로의 이동도 어렵지 않다보니 360도 회전을 제외하고는 회전하는 것이 크게 중요하게 작용하지 않았다.

또, 앱을 이용한 RC카는 많았지만 와이파이를 이용하고, 팔과 센서를 동시에 제어하는 옴니 카 RC카는 보지 못했기 때문에 2차 발표 때에는 그 차별성을 확실히 할 필요가 있을 것 같다.



2019.04.10

자세히 보기

주간 진행 보고서 (4월 1주차)

2019.04.02


버튼 화면의 대부분의 기능을 구현했다.

물론 지금은 임시적으로 구현해 놓은 것이기 때문에 차후에 제품과 연동시킬 때 수정해야 할 사항들이 많다.

우선 버튼 화면 촬영 기능, 랜덤 주행모드 활성화 기능, 팔 제어 기능 On/Off, 그리고 환경설정 버튼까지 추가하였다.

랜덤 주행모드 같은 경우에는 작동 시에 전체 화면을 가리도록 해서 다른 버튼들을 강제로 클릭할 수 없도록 하였다.

추가로, 기존 메인 화면의 연결 상태 텍스트뷰의 폰트 스타일을 변경하였고 마지막으로 버튼 화면의 오른쪽, 왼쪽 이동에 대한 360도 회전, 역회전 기능 또한 구현하였다.

버튼 화면의 촬영 버튼에 대한 동작 방식을 추가하였는데 나중에 촬영을 할 경우에 라즈베리파이 내의 하드디스크에 사진을 저장하고 그 파일을 전송시켜서 앱의 화면에 출력하도록 할 지, 아니면 앱 내 화면을 스크린샷으로 찍도록 할 지 그 방법도 생각해봐야 할 것 같다.

팔 제어 모드 같은 경우에는 버튼을 구현 할 때에 Toggle 버튼 대신 텍스트뷰와 변수를 이용하여 On/Off를 제어하도록 했는데 Background를 Java 코드로 교체하는 부분에서 문제가 생기기도 했다.

자료를 찾아보다가 setBackground(ContextCompat.getDrawable()) 메소드를 이용하여 현재의 Context에 대한 Background를 변경할 수 있다는 것을 확인하고 교체하였다.

자세히 보기