Project (22) 썸네일형 리스트형 Kotlin으로 Yolo V8 사용하기 해당 프로젝트 앱의 기획의 변화에 따라 태블릿 앱도 변화가 필요했다. 처음의 기획의도(버튼으로 사진찍고) AI서버로 전송 -> AI서버에서 Detcting된 사진을 AWS S3로 재 업로드 -> S3에서 가져와 화면에 표출 변화된 기획의도 들어옴과 동시에 카메라 on -> Frame 단위로 Yolo V8 onnx를 이용한 판독 -> 결과값 도출 후 반영 서버와의 통신이 아닌 디바이스 내에서 판단하고 사용할 수 있도록 엣지디바이스 화를 시키는 목적으로 변경되었다.외부 기기의 변화도 있었지만 속도의 문제가 제일 컸기 때문이다. 처음 태블릿 앱을 만들 때 적용하려고 했었던 방법이 였는데 Kotiln 언어에 대해서도 잘 몰랐던 상황이였어서 병목이 발생되어 미뤘던 작업이였는데 앱을 한차례 완성시킨 뒤 더욱 .. Kotlin TTS(Text To Speach) - 문제 1. 기기를 사용하는 시각 장애인을 위한 청각이용시스템이 없다고 판단 2. 보다 다양한 사람들이 서비스를 이용할 수 있도록 해야한다. - 문제 해결 1 . TTS(TextToSpeach) 시스템을 이용한 문제해결 https://developer.android.com/reference/kotlin/android/speech/tts/TextToSpeech#isSpeaking() TextToSpeech | Android Developers developer.android.com 안드로이드는 구글에서 기본적으로 제공해주는 TTS 시스템이 있어서 그걸 사용해 문제를 해결해 보았다. 만드는 앱 같은 경우는 액티비티가 변경 시 해야할 일을 알려주는 시스템을 원했고 그렇기 때문에 액티비티가 변경 시 바로 tt.. 근접 센서를 이용한 밝기조절 / 배터리 아끼기 - 문제 1. 기기를 켜진 상태로 유지 ? CPU만 켜진 상태로 유지 ? 밝기만 바꾸기? https://developer.android.com/training/scheduling/wakelock?hl=ko#wakeful 기기를 켜진 상태로 유지 | Android 개발자 | Android Developers 기기를 켜진 상태로 유지 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 배터리가 많이 소모되지 않도록 유휴 상태의 Android 기기는 빠르게 절전 모드로 전 developer.android.com 2. 잠긴화면에 대한 접근 - 문제해결 1 - 1. 우리의 솔루션은 태양열 발전기를 이용한 배터리 운영에 있기에 최대한 전력을 아끼기 위해 항상 스크린을 밝게 하면 안될 것 .. 시리얼 명령 class / 시리얼 명령 동적화 하나하나 복붙할 순 있었지만 여기도 컴포넌트화 할 수 있는 기능이 있을 거라 생각하고 찾아봤다. 역시나 있었고 사용해 보았다. 꽤나 간단히 사용할 수 있게 된 것 같다. - 문제 1. 시리얼 명령을 줄 때 마다 함수를 만들어 내야 함 2. 시리얼 명령 내에서 지정된 값이 아닌 받아온 값에 맞춰서 변할 수 있게 - 문제해결 1 - 1. 명령을 class로 만들어 재사용이 편하게 바꿈 class import android.content.Context import android.hardware.usb.UsbManager import android.util.Log import com.hoho.android.usbserial.driver.UsbSerialPort import com.hoho.android.usbs.. Kotlin으로 메인보드 컨트롤 usb 카메라를 컨트롤하고 나서 자신감이 올랐다. 하지만 더 큰 산이 남아있었다. 바로 외부기기 컨트롤. usb로 연결된 메인보드에게 지정된 통신값을 쏘고 응답 받는 것을 해야 한다. 말로는 언제나 간단해 보이지만 일단 최근에 나온 안드로이드 14 버전부터는 자동으로 인식하게 된다고 하지만 사용하는 기기는 안드로이드 12버전 레노버라 따로 업데이트도 되지 않는다. 문제 그럼 이제 문제는 1. 앱에서 메인보드와 통신 할 수 있도록 usb를 인식시키는 것. 2. 메인보드의 저장된 통신 값을 보낼 수 있도록 하는 것. 문제해결 1-1. 첫번째 문제를 해결하기 위해 처음에는 안드로이드 홈페이지에 나와있는 USB호스트에 관한 내용을 살펴봤다. 읽어오고 알림창이 울리는 것 까진 가능했지만, 아쉽게도 실력이 부족해 .. kotlin으로 s3 버킷에 이미지 올리기(awscognito) 진행하는 프로젝트 시나리오에서 aws s3에 사진을 업로드하고 ai서버로 key값을 보낸다. 그러면 ai서버에서 그 사진을 판독해서 다시 s3 버킷에 판독한 사진이 올라올린다. 이 후 그 사진을 다시 불러와 사용자에게 보여주며 판별 값을 통해 결과를 보여주는 형식인데 aws s3와 통신하는 방법은 여러가지가 있지만 그 중에서 aws cognito라는 사용자 인증방식을 통한 방법으로 진행했다. 간단히 말하면 내가 접근 할 수 있도록 자격을 갖췄다라는 걸 증명해주는 플랫폼이다. Amazon Cognito는 웹 및 모바일 앱을 위한 자격 증명 플랫폼입니다. Amazon Cognito는 OAuth 2.0 액세스 토큰 및 AWS 보안 인증을 위한 사용자 디렉터리, 인증 서버, 인증 서비스 사용방법은 너무 많이 널.. Flutter의 한계와 kotlin 외부 usb카메라 연동 플루터의 한계 이 전 글 이후로 많은 시간이 흘렀는데 가장 중요한 것은 flutter의 한계의 부딪혔다는 점이다. 물론 내가 하려는 앱이 기존 앱과는 달리 태블릿으로 여러 다른 기기들과 통신을 해야한다는 점에서 flutter로는 도저히 구현하지 못하는 부분이 있었다. 회사에서 이전 버전이 코틀린으로 제작이 되었었고, 때문에 안드로이드 앱만 나와있었기 때문에 나에게 새로운 버전이 되는 태블릿 앱과 사용자 앱을 부탁했다. 간단히 얘기하면 태블릿 버전은 usb 외부카메라와 usb와 연결된 메인보드를 통한 외부기기 컨트롤이 가능했어야 했고, 그걸 바탕으로 포인트를 쌓을 수 있어야 했다. (식당이나 카페에서 번호로 포인트 적립 하듯이) 키오스크랑 비슷한 개념이다. 그리고 다른 한가지, 사용자 앱은 포인트를 쌓은 .. Main 회고 오늘로 데모데이까지 진행하면서 모든 프로젝트가 끝이 났다. https://sik-gu.com/ 많은 이슈들이 있어서 블로그에 남기지 기록하지 못한게 아쉬웠다. 최종본에서도 아직 수정해야 할 사항들이 많이 있었다. 데모데이 때는 기본적인 기능들이 다 작동하는 모습을 보여주지 못해 아쉬웠다. 항상 원하는 결과값을 잘 작동하게 만들어야 한다는 말이 머릿속에 맴돌면서 다시 한번 뼈저리게 느꼈다. 멘토님은 항상 기본에 충실하라라고 얘기하셨는데 그 말도 몸소 느꼈다. 그리고 그때 그때 기능들을 추가하려니 더 꼬여버린 현상이 왔는데 앞으로는 이런 실수는 하지 말아야겠다. 그래도 약 3주간의 고생 끝에 결과물을 얻었고 그 과정에 있어서 배움이 있었다는 것에 내 자신이 바뀐 것 같다고 긍정적으로 생각 중이다. 아쉬움은 .. 이전 1 2 3 다음