본문 바로가기

분류 전체보기

리눅스에서 시리얼통신 권한 설정 리눅스에서 시리얼 통신을 하려고 할 때 "Premission denied"가 나오는 경우가 있다. 이 경우 dialout 그룹에 아래의 명령으로 나를 등록해야 한다. $ sudo usermod -a -G dialout $USER 그러고 재시작을 해주자. $ sudo reboot now 참고로 라즈베리파이의 핀헤더(/dev/ttyAMA0)를 통해 시리얼 통신을 사용하려면 dialout이 아니라 tty로 해줘야 한다. $ sudo usermod -a -G tty $USER 그리고 /dev/ttyAMA0 의 읽기 권한을 추가해준다. $ sudo chmod g+r /dev/ttyAMA0 더보기
모두의 프로그래밍 모두의 프로그래밍 최근 들어 전세계적인 소프트웨어의 열풍이 불고 있습니다. 하지만 이러한 소프트웨어 코딩 교육에 대해 우려하는 목소리도 많습니다. 가장 큰 문제는 코딩은 배우기가 어렵다는 것입니다. 이는 코딩에 많은 규칙이 있기 때문입니다. 이러한 문제를 해결하기 위해 하나의 규칙으로 프로그래밍 할 수 있는 방법을 고안하였습니다. 제안하는 방법은 다음과 같습니다.1. 좌측과 상단에서 신호를 전달 받습니다.2. 블록을 실행시키거나 상태를 체크합니다.3. 신호를 아래와 우측으로 전달합니다. 아래는 제안 방법의 예시입니다.1. 버튼이 눌러지면2. 계산기(변수)를 1 증가시킵니다. (아무 내용이 없는 dummy 블록은 신호를 아래와 우측으로 전달합니다.)3. 계산기(변수)가 1이면 빨강 불이 들어오게 합니다.4.. 더보기
네트웍은 Big-endian 방식이다. 그럼 내 컴퓨터는? 0x1234를 네트웍으로 보내면 0x12가 먼저 갈까? 0x34가 먼저 갈까? 당연히 0x12여야겠지만 답은 컴퓨터마다 다르다 이다. 네트웍은 Big-endian 방식으로 데이터를 보내지만 컴퓨터의 데이터 저장 방식은 Big-endian방식과 Little-endian 방식이 있기 때문이다. 간단한 예를 들어 Big-endian과 Little-endian을 설명하자면 0x1234를 각각의 방식으로 저장하면 다음과 같은 순서로 저장된다. n번지 n+1번지 Big-endian 0x12 0x34 Little-endian 0x34 0x12 Big-endian 방식의 컴퓨터에서 0x1234를 보내면 0x12가 먼저 전송되고 0x34가 나중에 전송된다. 하지만 Little-endian 방식의 컴퓨터에서는 0x34가 .. 더보기
Tcp/Ip 소켓 프로그래밍 "hello_server.c" #include #include #include #define PORT 9000 char buffer[BUFSIZ] = "hello, world"; main() { int c_socket, s_socket; struct sockaddr_in s_addr, c_addr; int len; int n; // 소켓을 생성 s_socket = socket(PF_INET, SOCK_STREAM, 0); // 연결 요청을 수신할 주소 설정 memset(&s_addr, 0, sizeof(s_addr)); s_addr.sin_addr.s_addr = htonl(INADDR_ANY); s_addr.sin_family = AF_INET; s_addr.sin_port = htons(PORT); .. 더보기
신혼여행기(5. 마닐라로 돌아옴) 신혼여행 네번째 날 아침이 밝았습니다. 자 이제 다시 마닐라로 갈 시간인거죠. 리젠시 호텔서 부두로 이동한 후 배를 타고 까띠끌란 공항으로 이동~ 거기서 마을버스 비행기 타고 마닐라로 다시 갔습니다. (조립은 분해의 역순... 중얼중얼...) 마닐라에서도 볼건 많이 있었지만 좀 쉬고싶었죠. 그래도 시내 구경만 잠깐 했습니다. 우선 마닐라 필수 코스인 리잘공원 공원의 이런 조형물은 그냥 못 지나치시는 욘슨씨를 위해 포즈를 취해 드렸습니다. 리잘공원을 나온 후에는 마닐라 성당에 들렸습니다. 성당 앞에서 한컷 이렇게 마닐라 시내를 둘러본 후 마닐라 호텔로 왔습니다. 호텔 한편에서는 웨딩촬영 같은게 있는 것 같더군요. 이렇게 마닐라에서의 일정을 마치고 다시 한국으로 왔습니다. 아래 사진은 호텔을 떠나기 전에 가.. 더보기
신혼여행기(4. 보라카이에서 또 놀자) 자~ 이제 세번째 날입니다. 오늘의 일정은 오전에 그 유명한 스킨스쿠버와 오후 버그카입니다. 스킨스쿠버는 아시다시피 산소통을 메고 바다 깊숙히 들어갔다 나오는 뭐 그런 것인데요. 뭔가 스릴 있으면서도 스릴 있는... 그런 거라고 할 수 있죠. 어제의 스노클링은 스킨스쿠버를 위한 예행연습쯤? 된다고 할 수 있겠습니다. 자~ 먼저 스킨스쿠버 교육을 받고요. 복장을 착용하고요. 아래와 같이 배를 타고 깊은 바다로 이동합니다. 저놈의 V... 그건 그렇고 ㅎㅎ 물고기 보이시나요? 아주 많더라고요. 내려가면서 물고기 밥도 주고 그랬습니다. 아주 색다른 경험이었어요. ^^ 이렇게 무사히 살아서 물 밖으로 나오니 정말 기쁘더군요. 역시 삶은 소중한거여~~ 오후에는 버그카입니다. 오전 스킨스쿠버가 해양 스포츠라고 한다.. 더보기
신혼여행기(3. 보라카이에서 놀자) 올려야지 올려야지 생각만 하다가 드디어 올리게 되었습니다. 이제는 기억도 가물가물하네요. 어쨌든 시작합니다. 이제 신혼여행 둘째날입니다. 호텔에서 눈이 번쩍 떠지더군요. ㅎㅎ 오늘의 일정은 수상스포츠 + 호핑 + 세일링보트입니다. 먼저 대표적인 수상스포츠라고 할 수 있는 수상바이크와 바나나보트를 탔습니다. 아래 사진은 수상바이크 입니다. 이날은 해양스포츠라서 카메라를 안챙겼는데 현지가이드분께서 카메라를 준비하셔서 찍어주셨더라고요. 다 구입하긴 했지만 전혀 아깝지 않았습니다. ^^;; 바나나보트는 우리나라에서도 많이 탈 수 있는거라 그냥 재밋었어요. 이렇게 오전 일정을 마치고 점심을 먹으러 갈 시간~~~ 점심 먹으러 배를 타고 이동했습니다. 뒤에 보이는 배는 필리핀 전통 배로서 방카라고 합니다. 밥먹고 이.. 더보기
[디지털 영상 처리] Lec. 12 - Image Segmentation(1) 영상의 특성을 찾아내는 방법에 대한 내용으로 Image Segmentation에는 Discontinuity기반의 방법과 Similarity 기반의 방법이 있다. Discontinuity기반의 방법으로는 고립된 점, 선, 윤곽을 찾을 수 있고, Similarity기반의 방법으로는 Thresholding, Region Growing, Region Splitting & Marging등의 방법을 사용한다. 또한 Hough Transform에 대한 설명도 있는데 Hough Transform을 spacial domain의 y = mx + c를 m과 c의 parameter space로 옮겨 선을 찾는 방법으로서 이 알고리즘에 대한 설명을 한다. 이 알고리즘을 수행할 때 가장 중요한 점은 계산 정확도인데 y = mx .. 더보기
[디지털 영상 처리] Lec. 11 - Colour Image Processing 컬러 영상 모델의 종류와 원리 그리고 컬러 영상을 처리하는 방법에 대한 내용이다. RGB - Red, Greed, Blue로 구성된 색 모델이다. CMY - RGB의 보색인 Cyan, Margenta, Yellow로 구성된 색 모델이다. RGB 색 모델을 Cube 형태로 구성하면 각각 반대 방향에 존재하는 색상이 CMY이다. 이 Cube를 Black-White축으로 세우고 Red를 0도로 설정하여 측정한 색 모델이 HSI(Hue, Saturation, Intensity)이다. 더보기
[디지털 영상 처리] Lec. 10 - Image Registration & Colour Image Processing Image Registration은 두장의 이미지의 관계의 일치도를 측정하는 기법이다. 일치도는 Cauchy-Schwartz inequility를 사용하여 구할 수 있다. Colour Image Processing은 컬러 이미지를 이용한 영상 처리에 대한 내용으로서 색을 표현하는 방법과 특성에 대해서 설명한다. 더보기