( 21년도 ~ 23년도 이야기입니다. )나의 첫 코딩나의 첫 코딩은 수강 신청이 망해서 하게 되었다…. 나는 원래 반도체 쪽 강의를 주로 수강하였으나 수강 신청이 망하고 가져갈 수 있는 전공 강의는 마이크로프로세서였다. 무슨 강의인지도 모르고 그냥 신청했다. 마이크로프로세서그때는 코로나 시절이라 줌을 통해서 실시간 수업을 진행하였다. 첫 시간에 교수님은 "C 언어 기본적인 건 다 아시죠?" 난 몰랐으나 줌이다 보니 말하면 줌 메인 화면이 내 쪽으로 넘어가고 부담스러워서 말하지 않았다. 다행히도 교수님은 변수 선언, 제어문, 반복문 정도까지만 알려주고 본격적으로 마이크로프로세서에 대해 강의를 진행하겠다고 하셨다. 알려주시면서 중간중간 과제로 별찍기, 구구단 같은 문제를 내셨었다. 처음에는 어떻게 해야 하..
이번 캡스톤디자인 프로젝트에서 사용된 프레임워크인 opencv가 해당 프로젝트에서 어떤 역할을 하는지 그리고 어떤 문제점이 있었는지 적으려고 합니다. 이번 프로젝트에서 OPENCV의 역할 이번 프로젝트에서는 OPENCV를 중심으로 모든 알고리즘과 동작이 돌아가게 되어있습니다. 기본 설정 천장에 휴대폰 거치대를 부착한 뒤, 거치대에 카메라를 설치 후 카메라 아래 지점에 트랙을 설치합니다. 휴대폰 카메라가 촬영하는 화면은 IP WEBCAM 앱을 통하여 휴대폰과 같은 와이파이에 접속하여 있는 노트북과 화면을 공유하며, cap 코드에 화면 공유 아이피를 작성하여 코드를 실행하였을 때 휴대폰이 촬영하는 화면을 통해 opencv를 이용할 수 있도록 합니다. OPENCV (좌표 관련) 우선 OPENCV 프레임워크 사..
원래는 Astar, Pure Pursuit 알고리즘이나 opencv부터 올리려고 하였으나, 해당 졸업작품의 동작에 대한 설명을 말하고 해야 할 것 같아서 순서를 이렇게 하였습니다. 기존의 아이디어 처음에는 트랙에 벽 부분에 실제로 벽을 세운 뒤 라이다 센서를 탑재한 RC카를 이용해 트랙 전체를 한 번 스캔하여 노트북 상에 트랙의 모습이 뜨도록 한 다음 동작하려고 하였으나, 라이다 센서에서 요구하는 Ubuntu, ROS 등을 깔고 Ubuntu 내부에서 코딩하려 하였으나, LG 그램 노트북으로 하다 보니 그래픽카드가 없어 지도를 그릴 때 너무 랙이 심하고 버벅대는 모습이 나타나며, 코드 또한 이해가 가지 않으며 아두이노에서 실시간으로 지도와 최단 경로 추종을 실시간으로 받아야 한다는 점에서 불편 요소가 너무..
재료 내가 정한 주제이니 내가 재료를 찾을 수 밖에 없었다.. 어쩌다보니 조장이 된 느낌이었다. 하지만 어떤 재료가 필요한지 자세히 모르고 라이다 센서 같은 경우 소프트웨어 프로그램조차 모르기에 생각이 많았다 우선 생각나는 대로 적어 나가기 시작했다 rc카 프레임 모터 라이다 센서 블루투스 모듈 리튬이온배터리 모터 드라이버 아두이노 등등... 그냥 생각나는 대로 나열한 다음 주문서에 하나씩 적고 팀원들에게 혹시 필요한 게 있는지 물어보고 주문서를 보냈다. 배송비 빼고 45만 원이 나왔었다 . (만약 이 주제를 할 생각이라면 이대로 재료를 사면 안 된다. 한참 뒤에 알게 되었다.) 물품 주문을 한 시점이 5월이었다. 다른 조보다 빠르게 하였고 필요할 때 재료가 없을까 한 번에 다 주문하였다. 원래 지원비는..
첫 시작 이 글은 10월에 쓰여졌지만 3월부터 시작한 내용이다. (이전 블로그에서 글을 옮기느라 현재 2024년 4월에 업로드가 되었습니다.) 처음에는 뭘 해야 하나 고민도 많이하고 수 많은 생각을 하였다. 팀원들도 생각을 많이 했겠지만 팀원이 다 내향형이라 결국 내가 계속 아이디어를 던지게 되었다. 처음에 내가 냈던 아이디어는 이랬다. 지자계 센서와 여러 센서를 이용해 rc카를 만든 다음 스마트폰 어플로 맵을 띄워 맵을 클릭해 좌표를 전송하면 해당 위치로 rc카가 가는 것을 생각했다. 하지만 이는 너무 단순하기도 하였고 외부로 나가야한다는 문제점이 있었고 아이디어만 내고 교수님 선에서 짤렸다. (외부로 나가면 다양한 변수 , 배터리 부피 비용등의 문제 때문인 것 같다) 두번째로 냈던 아이디어는 완전히 ..
String Function (문자열 함수) 문자열에 대한 함수들의 모음이다.. 대소문자 변환 upper(컬럼명) : 모든 영어를 대문자로 lower(컬럼명) : 모든 영어를 소문자로 initcap(컬럼명) : 맨 앞 영어 스펠링만 대문자로 substr () 문자열 추출 substr(컬럼명,시작위치,몇개의 글자를 가져올지) ex) tel 컬럼에 데이터 010-1234-5678 이 있을 때 substr(tel,5,9) 하게 되면 1234-5678이 출력 된다 length () 문자열 길이 자바 문자열 함수 length와 똑같이 길이를 반환한다. ex) Oracle 이라는 데이터가 들은 컬럼 a 검색시 length(a) 하면 6이 나온다 .. instr() 문자열 검색 java로 치면 indexof랑 똑같은..