SW
-
오목고SW/Project 2018. 2. 1. 10:00
오목고 개요 2016년 화두였던 알파고와 이세돌의 대국으로 인공지능이 일반인에게도 친숙하게 다가왔다. 오목고는 알파고에서 영감을받아 (주)헨즈온 테크놀러지와 시작하게 되어있는데 기존의 바둑은 복잡 한 룰을 가지고 있는데 반해 오목고는 남녀노소, 아이들 까지 친숙한 오목을 인공지능과 접목시킴으로서 사람들에게 호기심과 흥미를 유발하게 만들었다. 뿐만하니라 알파고는 기계가 직접 두지 않는 반면에 오목고는 융합시대에 맞추어 Hardware와 Software를 융합하여 기존 오목들과 다르게, 누구나 어렸을때 가지고 놀았을 LEGO를 가지고 만든 기계가 직접 인간과 오목을 두게 만들었다. 시스템구조 및 개발과정 시스템구조 로봇(하드웨어) 15X15정도 크기의 바둑판을 사용하였다. 바둑돌을 집기위하여 주사기 끝에 고..
-
[라즈베리파이] Shift RegisterSW/Embedded 2018. 1. 28. 10:33
74HC595 shift Register 제한된 GPIO핀을 확장하여 더욱 많은 제어를 할수 있다. 직렬,병렬로 변환하여 gpio를 확장 시켜준다. 많은 종류가 있지만 하나만 해도 다른 시프트레지스터도 어렵지 않게할 수 있을것이다. OE : output enable -칩의 온/오프를 담당한다. Ds : serial input data - 실제로 데이터가 들어가는 곳 이다. ST : 0에서 1을 해야 라이징이 발생하여 출력하는 저장소로 보내 출력한다. SH : 0에서 1 을해야 라이징이 발생하여 쉬프트한다. MR : 클리어 한다.(1을해야 쓸수 있다.) 9 번은 아웃풋으로 쉬프트레지스터를 추가 할때 다음 쉬프트레지스터의 인풋으로 들어간다.
-
[라즈베리 자동차] 파이썬을 C/C++에서 사용하기SW/Embedded 2018. 1. 26. 21:30
sunfunder에서 라즈베리자동차 구동(셋업,모터등)을 파이썬 코드를 제공해 준다. C/C++로 코딩을 하고싶은데 기본 셋업부터 제어는 나중에하고 일단 동작을 해보기 위해서 C/C++에서 파이썬을 사용하는 방법을 알아 보았다. 깃허브 코드보기 다른 내용보기 라즈베리파이 자동차(#1) 전진, 후진 [사진 클릭] Sunfunder 에서 제공해주는 파이썬으로 모터 동작 하기 제공해주는 파이썬 모듈로 setup을 설정하고 C++로 코딩하기 하기 위해 밑 부분처럼 코딩한다. C++에서 파이썬 사용하기 #include#includeusing namespace std; int main(){ Py_Initialize(); //start set path PyObject* sys = PyImport_ImportModul..
-
[라즈베리파이] PWM 제어SW/Embedded 2018. 1. 26. 16:31
PWM PWM은 pulse width modulation의 준말로 펄스의 폭을 컨트롤 하는 주기 제어 방법이다. 펄스를 생성 (반복-이렇게 펄스를 생성 할 수 있지만...) int pin=13; gpio_mode(pin,아우풋); gpio_write(pin,1); // on sleep(); gpio_write(pin,0); //off sleep(); 한 주기(on=pulse width)-최대를 255이다. pigpiod_if2.h 헤더에서 함수를 제공해 준다. set_PWM_range(pi,PIN,range); //범위 설정 get_PWM_range(pi,PIN); //범위 가져오기 set_PWM_dutycycle(pi,PIN,i(0~range)); //불 키기, i값을 변화시켜 세기 조절 12,13 G..
-
[알고리즘] 다익스트라 알고리즘 (최단거리)SW/Algorithm 2018. 1. 17. 20:00
다익스트라 알고리즘 (Dijkstra Algorithm) 음의 가중치가 없는 그래프에서 한 노드에서 다른 모든 노드까지의 최단 거리를 구하는 알고리즘이다. O(v^2)의 복잡도 이지만 우선순위큐를 사용함으로 O(Elogv)의 시간 복잡도를 가지게 된다. E는 간선 v는 노드 // E => 최악의 경우 E번의 탐색한 노드를 집어 넣는 경우가 발생한다. 시작점에서 연결되있지 않은 노드도 무한대 크기만큼 연결되어있다가정하고 알고리즘을 수행한다. E[][] 는 간선들의 크기를 나타낸다.(그래프) D[]는 시작점에서 모든 정점을 가는 최소값을 가지게 된다. q는 시작점에서 q에 있는 정점들을 방분한다. D[v]=min(D[v],D[select_v]+E[select_v][v]) 풀이 시작점 하나를 잡는다. q에 시..
-
[vim] vim 명령어 & 사용자 맞춤 설정SW/Linux 2018. 1. 13. 20:30
vim :e 파일명 => 다른파일을 오픈한다. :w 파일명 => 다른이름으로 저장한다. gg => 문서 맨처음으로 이동한다. G => 문서 맨 마지막으로 이동한다. yy -> 한줄복사 p -> 붙여넣기 D -> 한 행의 커서 뒤 모든 글자 지운다. ctrl+r => 되살리기 cw => 한단어 지워지고 자동으로 i 모드. v => 현재 커서로 부터 블록 가능. ctrl+v => 열로 블록 shift+v => 한 라인 단위로 블록 모든거 블록후 = 누르면 => 자동으로 들여쓰기를 맞추어준다. :%s/old/new/g => old를 new로 바꾼다.(gc는 확인하면서) /찾을단어 => 하이라이트됨 (기본설정안할 땐? ) vim 기본설정 $ vim ~/.vimrc set number syntax on set a..