Ubuntu에서 USB 시리얼포트 low_latency 설정하기

로봇에 외장 기기를 부착할 경우 USB 시리얼포트 디바이스를 많이 사용한다. 요즘 나온 메인보드엔 시리얼포트가 없으니 당여한 이야기인데, USB 통신의 특성상 latency timer 값이 16ms로 기본으로 설정되어 있어, 빠른 응답 특성을 요구할때엔 속도 저하의 이유가 된다.

먼저 현재 설정된 latency_timer 값을 확인해본다.

$ cat /cat/sys/bus/usb-serial/devices/ttyUSB0/latency_timer
16

ttyUSB0는 사용자의 포트 번호에 따라 변경하여 사용하면 된다. 위와 같이 16ms로 설정되어 있는 값을 1ms로 변경해본다.

$ echo 1 | sudo tee /sys/bus/usb-serial/devices/ttyUSB0/latency_timer

문제는 이를 부팅때마다 반복해야 되는데, setserial 명령어를 udev 룰에 추가해서 이를 간단히 해결할 수 있다. 먼저 setserial를 설치한다.

$ sudo apt install setserial

다음으로 /etc/udev/rules.d로 이동해서, 99-ttyUSB.rules 파일을 만들거나, 이미 사용하고 있는 룰에 다음과 같이 추가한다.

KERNEL=="ttyUSB[0-9]*", MODE="666", ATTRS{idVendor}="0403", RUN+="/bin/setserial /dev/%k low_latency"

저장하고, 재부팅한다.

이제 명령어로 확인해보면

$ cat /cat/sys/bus/usb-serial/devices/ttyUSB0/latency_timer
1
$ cat /cat/sys/bus/usb-serial/devices/ttyUSB1/latency_timer
1
$ cat /cat/sys/bus/usb-serial/devices/ttyUSB2/latency_timer
1

모든 USB 시리얼포트의 latency_timer 값이 1ms로 설정되어 있음을 볼 수 있다.

[독서후기] 기계 요소 설계 (3판)

태생이 전자 공돌이라, 소프트웨어까진 어떻게 해본다 쳐도, 기구설계는 완전 다른 이야기인듯 하다. 물론 요즘에야 개발 도구들이 잘 되어 있어 뚝딱뚝딱 만들어 볼수 있다곤 하지만, 그래도 기본적인 사항은 알아야 이해를 하고 만들어볼 수 있는 듯.

3D 프린터를 좀더 알차게 사용해보고 싶은 마음에, 서점 간 김에 그래도 좀 예제가 많아보이는 책을 구입했다. 기초적인 요소들에 대한 설명과 각종 수치들이 있고, 한국에선 요런거 사용함 등등의 내용이 보인다. 아주 자세히 보진 못하겠지만, 간단한 기구 설계할 때 유용하게 사용할 수 있을 듯 하다.

교보문고: http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788942907403&orderClick=LAH&Kc=#N

[독서후기] 칼만 필터는 어렵지 않아

아마 예전 책 제목은 “칼만 필터의 이해”였던 것 같다. 칼만필터를 로봇에 적용해서 사용하긴 하는데 (OpenCV에서 함수 형태로 있으니…) 이게 어떻게 동작하는 것인지, 왜 적용해야 하는지에 대한 궁금함이 항상 있던 차에 예전 판본을 보고 이해했던 기억이 난다.

이번에 새로 개정되어 제목도 바뀌어 출시되었길래, 또 다시 구입했다. 내용도 약간 증가한듯 하고, 비록 매틀랩 코드이지만 예제도 잘 구현되어 있다. (이걸 파이썬이나 다른 언어로 바꾸는거야 머, 쉬운 작업이니)

교보문고: http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791156644415&orderClick=LEB&Kc=

소라게 집 바꿔주기

한달 전 쯤? 아들 녀석이 방과후 학교에서 소라게 한마리를 가지고 왔습니다. 조그만 플라스틱 케이스와 젤리처럼 생긴 먹이 하나와 같이요. 사실 며칠 지나지 않아 죽거나 할 줄 알았는데 의외로? 한달이 지났는데도 잘 지내고, 밤이 되면 부스럭부스럭 조그만 케이스를 탈출하고자 노력하더군요. ㅠㅠ

인터넷을 검색해보니 소라게의 수명이 엄청 길더라고요. 자연에서 사는 녀석들은 몇십년을 산다고도 하고… 암튼 이대로는 안되겠다 싶어 인터넷을 검색해보고, 다이소에서 적당한 집 (큰 플라스틱 케이스)을 사오고, 코코칩이라 불리는 바닥재, 먹이용 젤리를 주문했습니다.

두텁게 코코칩을 깔아주고, 소라게를 새로운 집에 옮겨주고 젤리를 하나 까서 같이 놓아주었습니다.

원래 소라게의 습성이 어두운 밤에 주로 움직이고, 저런 코코칩 같은 바닥재를 깔아주면 파고 들어가서 산다고 하네요. 지금도 계속 바닥으로 파고들고, 가끔씩 먹이 있는 쪽으로 움직여 젤리를 파먹고 하고 있습니다. 새로운 집을 맘에 들어 하는 것 같습니다.

바닥재는 3주 정도에 한번씩 갈아주고, 그 동안은 너무 건조해지지 않도록 스프레이로 물을 조금씩 뿌려주면 되고, 젤리도 갈아주면 된다고 합니다. 혼자는 외로워할테니 한마리 더 넣어줘도 좋을듯 한데… 저 녀석이 암컷인지 숫컷인지 알 방법이 없네요.?? ^^

스팸무스비

이름은 뭔가 있어보이는데, 그냥 스팸 들어간 김밥인데 모양은 좀 다른 것. 아주~ 간단히 만들수 있고 재료를 좀더 추가하면 고급스럽게도 만들수 있다.

재료: 밥 2공기, 참기름 두 큰술, 깨소금 약간, 소금 약간, 스팸 작은 통 하나, 김밥용 김 2장.

  1. 밥 2공기를 큰 그릇에 덜어놓고 한소큼 식힌다. 참기름 혹은 들기름 2 큰술, 소금 약간, 깨소금 약간 넣고 잘 섞어준다. 밥의 간은 약간 싱겁게 해야 나중에 스팸의 간과 섞여 괜찮다.
  2. 스팸 작은 통을 열고 다 꺼낸 다음 스팸통 길이 방향으로 4개로 나눈다.
  3. 자른 스팸은 후라이팬에 잘 구워준다.
  4. 투명랩을 좀 크게 잘라, 빈 스팸통에 잘 깔아준다.
  5. 밥을 통의 1/3민큼 채우고, 그 다음 구운 스팸을 넣어준다.
  6. 나머지 공간을 또 밥으로 채운다.
  7. 랩을 잘 싸서 꺼낸다.
  8. 4 ~ 7 과정을 반복.
  9. 김밥용 김을 반으로 나눈다.
  10. 8번까지 만든 것을 김밥 중앙에 넣고, 김을 잘 싸준다.
  11. 먹기 좋게 썰어서 먹는다.

스팸 이외에 계란스크램플, 볶음양파, 볶음 김치 등을 추가해서 싸 먹어도 별미임.

끝!