본문 바로가기

이것저것 배운것

Eclipse For Arduino - 2. Use It! 프로젝트 생성 및 실제 사용 방법 [New] - Other C/C++ perspetive를 오픈할거냐 라고 묻는데YES 해주면 된다.(실은 뭔지 잘 모름 누가 설명좀...)cpp 에서 작업하면 된다! 작업 프로젝트를 오른클릭하여 Properties에 들어가면보드세팅과 포트세팅. Baud Rate설정등이 가능하다. 소스를 타이핑하고 Build후Upload Project to Target Device를 클릭하면Properties에 설정했던 보드로 업로드 된다. 더보기
Eclipse For Arduino - 1. Install 선행작업Arduino IDE 다운로드 및 Path 알아둘것. 1. [Help] - Install New Software Work with : http://www.baeyens.it/eclipse/update Install Done. 2.[Windows] - Preferences IDE Path = Arduino-1.0.XLibrary Path = Arduino-1.0.X/librariesUse Arduino IDE tools in eclipse Check.test serial dll 눌러볼것. 이 메세지가 보이면 성공한것. 더보기
Arduino - Libraries 페이지 http://www.pjrc.com/teensy/td_libs.html 더보기
4. rpi-update가 안될경우 path/etc/resolv.conf nameserver 8.8.8.8nameserver 8.8.4.4 168.126.63.1 = Base DNS8.8.8.8 And 8.8.4.4 = Google DNS 168.126.63.1168.126.63.2= KT DNS 219.250.36.130210.220.163.82= SKT DNS 164.124.101.2203.248.252.2= LG DNS 더보기
3. 고정IP Path /etc/network/interfaces auto lo iface lo inet loopback // ???iface eth0 inet dhcp // ??? // 추가설정 부분auto eth0iface eth0 inet static // static 일 경우 고정. dhcp 일 경우 자동address // 고정IP주소network // IP주소의 마지막단위만 0netmask // Subnet Maskgateway // Default Gatewaybroadcast // Default DNS Server// 여기까지 allow-hotplug wlan0iface wlan0 inet manualwpa-roam /etc/wpa_supplicant/wpa_supplicant.confiface defaul.. 더보기
2. Basic Setting 처음 설치하면 사용할수 있는 respi-config 창이다.추후에 다시 세팅을 바꿔야 할 경우가 있다면sudo raspi-config를 입력하면 된다. 1. Expand FilesystemSD카드의 모든 공간을 사용할 수 있게 해주는 옵션그냥 엔터만 하면 설정된다. 2. Change User Password비밀번호를 변경하는 부분.초기설정은ID : piPassword : raspberry 3. Enable Boot to Desktop/Scratch부팅옵션을 선택하는 부분엔터를 누르면 3가지 옵션중 하나를 선택하여 사용 가능1. Text Console - CMD같은 도스 창만 뜬다.2. Graphical Desktop - GUI지원3. Scratch - 프로그래밍을 가르쳐주는 프로그램 같다고 한다. 4. .. 더보기
1. 라즈베리파이 OS설치하기 Windows에서 SD카드를 마운트시켜 OS설치하는 방법을 사용 1. OS 이미지 다운로드하기 http://www.raspberrypi.org/downloads/ 받은 다음. http://sourceforge.net/projects/win32diskimager/files/Archive/에서 Win32DiskImager-vX.X-binara.zip를 받은 후 빈폴더에 풀고. 이미지 파일에 다운로드받은 OS 이미지. 디바이스에 SD카드가 마운트된 드라이브 설정 후 Write를 클릭. 더보기
newton_diff(뉴턴분할차 보간법) function inter=newton_diff(x, y, new_x)% x,y: 입력데이터% new_x: 보간이 적용되는 x값 n=length(x); b=zeros(n,n); b(:,1)=y(:); %분할차분표 작성for i=2:n for j=1:n-i+1 b(j,i)=(b(j+1,i-1)-b(j,i-1))/(x(i+j-1)-x(j)); endend b%뉴턴보간다항식 계산product=1;inter=b(1,1);for j=1:n-1 product=product*(new_x-x(j)); inter=inter+product*b(1,j+1);end 더보기
newtondd(일반적 분할차분표) function b=newtondd(x, y)% x,y: 입력데이터 n=length(x); b=zeros(n,n); b(:,1)=y(:); %분할차분표 작성for i=2:n for j=1:n-i+1 b(j,i)=(b(j+1,i-1)-b(j,i-1))/(x(i+j-1)-x(j)); endend 더보기
Lagrange_interpol(라그랑주 보간법) function [inter,error]=lagrange_interpol(x, y, new_x)% x,y: 주어진 좌표점% new x_ : 보간이 필요한 x값 n=length(x);sum=0;for i=1:n temp=y(i); %y(i)값 temp로 저장for j=1:n %y(i)*Li(x)계산 if(i~=j) temp=temp*(new_x-x(j))/(x(i)-x(j)); endendsum=sum+temp; %Pn(x)계산end inter=sum; %Pn(x)값 출력error=abs(tan(1.15)-inter) 더보기
falseposition - 가(假)위치법 function root=falseposition(func, x1, x2, threshold)% x1, x2 : 초기경계값% threshold: 반복여부를 결정하는 임계값% root: 가위치법에 의해 최종적으로 구해진 근의 근사값 if feval(func, x1)*feval(func, x2) > 0 % feval(func,x)는 함수값을 계산하는 함수 disp('해는 이 구간에 없습니다.') returnend %rel_error=100.0; % 상대오차 초기값%x3=x1;j=0;fprintf('| iteration | x | error |\n')while(1) j=j+1;% xold=x3; x3=x2-feval(func, x2)*(x1-x2)/(feval(func, x1) - feval(func, x2).. 더보기
secent - 할선법 function root=secent(func, x1, x2, threshold)fprintf('| iteration | x | error |\n')j=0;while(1) j=j+1; xn=x2-feval(func, x2)*(x2-x1)/(feval(func, x2)-feval(func,x1)); if xn ~=0 rel_error=abs((xn-x1)/xn)*100; end x1=x2; x2=xn; fprintf('| %d |% 10.5f | %9.5f |\n',j,x2,rel_error) if(rel_error < threshold) break endendroot=x2; 더보기
Newton-Raphson 법 function root=newton2(func1,func2,x0, threshold)%func1: input function%func2: derivative of input%func2=diff('func1',1);fprintf('| iteration | x | error |\n')j=0;while(1) j=j+1; x=x0 - feval(func1, x0)/feval(func2, x0); rel_error=abs((x-x0)/x); x0=x; fprintf('| %d |% 10.5f | %9.5f |\n',j,x0,rel_error) if(rel_error < threshold) break endendroot=x0; 더보기
Bisection - 이분법 function root = bisection(func, x1, x2, threshold)%func = 함수%x1, x2 = 범위%threshold = 오차율 if feval(func, x1)*feval(func, x2) > 0 % feval(func,x) disp('해는 이 구간에 없습니다..') returnend j = 0;fprintf('| iteration | x | error |\n') while(1) % begin of while j=j+1; %iteration번호 x3=(x1+x2)/2; % new x3 계산 if feval(func, x2)*feval(func, x3) < 0 xold=x1; x1=x3; else xold=x2; x2=x3; end if x3 ~= 0 rel_error=ab.. 더보기
Tayler_e(exp) n = input('n=');x = input('x='); sum = 1;disp('iteration | sum | Error'); for i = 1 : n sum = sum+(x^(i))/factorial(i); error = exp(x) - sum; fprintf('%d |%f |%f\n', i, sum, error);end 더보기
Tayler_Cos n = input('n=');x = input('x='); sum = 1;disp('iteration | F(x) 근사값 | Error');for i = 1 : n-1 sum = sum + ((-1)^(i) * x^(2*i))/factorial(2*i); error = abs(cos(x) - sum); fprintf('%d | %f |%f\n', i, sum, error);end 더보기
Tayler_Sin n = input('n=');x = input('x='); sum = 0;disp('iteration | F(x) 근사값 | Error');for i = 1 : n sum = sum + ((-1)^(i+1) * x^(2*i-1))/factorial(2*i-1); error = abs(sin(x) - sum); fprintf('%d | %f |%f\n', i, sum, error);end 더보기
Tayler n=input('n=');x=input('x=');a=input('a='); sum=sqrt(a)+(x-a)*1/(2*sqrt(a)); mul=1;number=1;for i=2:nmul=mul*number;sum=sum+(x-a)^i/factorial(i)*(-1)^(i+1)*(1/2)^i*a^(1/2-i)*mul;number=number+2;endsumerror=abs(sum-sqrt(x)) 더보기
Gauss_Jordan 소거법 function x=gauss_jordan2(A)% A: 계수행렬% I: 단위행렬% x: inv(A)의 계산값 [m1,k1]=size(A);% [m2,k2]=size(b); x=zeros(m1,k2);I=eye(m1); % 상삼각 행력 형성for i=1:m1-1 m=-A(i+1:m1,i)/A(i,i); A(i+1:m1,:)=A(i+1:m1,:)+m*A(i,:); I(i+1:m1,:)=I(i+1:m1,:)+m*I(i,:);end%A%I % 하삼각 행렬 형성for i=1:m1-1 for j=i+1:k1 m=-A(i,j)/A(j,j); A(i,:)=A(i,:)+m*A(j,:); I(i,:)=I(i,:)+m*I(j,:); end %A %Iend%A%Ifor i=1:m1 x(i,:)=I(i,:)/A(i,i); A.. 더보기
Fr_bin2dec / Fr_dec2bin Fr_bin2decBinary => Decimal Fr_dec2binDecima => Binary 더보기
Gauss Gauss33 , Gauss44, Gauss55를 아우르는 일반적인 가우스 일반해모든 크기의 행렬에 대해 사용 가능 function x=gauss(A,c)% A: 계수행렬% c: 상수행렬% x: 연립방정식의 해 [m1,k1]=size(A); % 상삼각행렬로 변환for i=1:m1-1m=-A(i+1:m1,i)/A(i,i);A(i+1:m1,:)=A(i+1:m1,:)+m*A(i,:);c(i+1:m1,1)=c(i+1:m1,1)+m*c(i,1);endx(m1,1)=c(m1,1)./A(m1,m1); % 후진대입법을 사용하여 근 x를 구함for i=m1-1:-1:1x(i,1)=((c(i,1))-A(i,i+1:m1)*x(i+1:m1,1))./A(i,i);end 더보기
Test Gauss55 function x=gauss55(A,b)m21=A(2,1)/A(1,1);m31=A(3,1)/A(1,1);m41=A(4,1)/A(1,1);m51=A(5,1)/A(1,1);A(2,:)=A(2,:)-m21*A(1,:);A(3,:)=A(3,:)-m31*A(1,:);A(4,:)=A(4,:)-m41*A(1,:);A(5,:)=A(5,:)-m51*A(1,:);b(2,1)=b(2,1)-m21*b(1,1);b(3,1)=b(3,1)-m31*b(1,1);b(4,1)=b(4,1)-m41*b(1,1);b(5,1)=b(5,1)-m51*b(1,1);m32=A(3,2)/A(2,2);m42=A(4,2)/A(2,2);m52=A(5,2)/A(2,2);A(3,:)=A(3,:)-m32*A(2,:);A(4,:)=A(4,:)-m42*A(2,:).. 더보기
Gauss44 A = 4X4 Matrixx = 4X1 Matrixb = 4X1 Matrix function x=gauss44(A,b)m1=A(2,1)/A(1,1);m2=A(3,1)/A(1,1);m3=A(4,1)/A(1,1);A(2,:)=A(2,:)-m1*A(1,:);A(3,:)=A(3,:)-m2*A(1,:);A(4,:)=A(4,:)-m3*A(1,:);b(2,1)=b(2,1)-m1*b(1,1);b(3,1)=b(3,1)-m2*b(1,1);b(4,1)=b(4,1)-m3*b(1,1);m4=A(3,2)/A(2,2);m5=A(4,2)/A(2,2);A(3,:)=A(3,:)-m4*A(2,:);A(4,:)=A(4,:)-m5*A(2,:);b(3,1)=b(3,1)-m4*b(2,1);b(4,1)=b(4,1)-m5*b(2,1);m6=A(4,.. 더보기
Gauss33 A = 3X3 Matrixx = 3X1 Matrixb = 3X1 Matrix function x=gauss33(A,b)m21=A(2,1)/A(1,1);m31=A(3,1)/A(1,1);A(2,:)=A(2,:)-m21*A(1,:);A(3,:)=A(3,:)-m31*A(1,:);b(2,1)=b(2,1)-m21*b(1,1);b(3,1)=b(3,1)-m31*b(1,1);m23=A(3,2)/A(2,2);A(3,:)=A(3,:)-m23*A(2,:);b(3,1)=b(3,1)-m23*b(2,1);x(3,1)=b(3,1)/A(3,3);x(2,1)=(b(2,1)-A(2,3)*x(3,1))/A(2,2);x(1,1)=(b(1,1)-A(1,2)*x(2,1)-A(1,3)*x(3,1))/A(1,1); 더보기
Windows에서 Git이용시 https://code.google.com/p/tortoisegit/ TortoiseGit 이라는건데SVN프로그램과 비슷하다고 한다. 더보기
GitHub 클론생성~체크아웃 클론 생성이란것은 새로운 repository를 만드는게 아니라다른곳에서 저장소를 만들어 원래 있던 repository를 불러오기 위한 작업이다.(라고 생각한다.) 일단 폴더를 만든다. $ mkdir repo2 그 후 클론 생성. $ git clone http://github.com/yourname/reponame.git git@github.com:yourname/reponame.git 여기도 url을 add해주면 편리하다. $ git remote add origin http://github.com/yourname/reponame.git git@github.com:yourname/reponame.git다음으로 체크아웃 (Pull작업) $ git pull ~~~~~ 변경이 있을때마다, 리프레시 하는 방법. .. 더보기
GitHub 시작 ~ 업로드 1. github 시작 사용할 폴더를 만들거나 이동할것.만일 repo라는 폴더를 이용할것이라면 $ mkdir repo 혹은 이동할것이라면 $ cd repo 아무튼, 특정폴더로 이동한 후.git을 사용할 수 있는 폴더로 바꾸어 주어야 한다. $ git init 그 후에 ls -al을 해보면 빈폴더 안에 .git라는 폴더가 생성된 것을 볼수 있다.이게 생성되면 정상적으로 만들어진 것이다. 그 후에 config등록을 해주어야 한다.(사용자 등록이다.)$ git config --global user.email "your_email@example.com"$ git config --global user.name "your_name" 마지막으로 http나 ssh를 등록해준다.물론 그 이전에는 ssh 키를 생성해서 등.. 더보기
SSH 키 생성하기 ubuntu 14.04LTS 기준 1. ssh 체크 $ ls -al ~/.ssh# .ssh폴더가 있는지 체크 2. ssh key 생성 $ ssh-keygen -t rsa -C "your_email@example.com"# 새로운 ssh키를 생성. 공개키와 개인키를 생성# id_rsa : private || id_rsa.pub : public Generating public/private rsa key pair.Enter file in which to save the key (/c/Users/you/.ssh/id_rsa):# ssh키를 저장할 위치를 묻는건데 변경 안할거니 그냥 Enter Enter passphrase (empty for no passphrase): [Type a passphrase]Ent.. 더보기
Git이란? Git 이란? Git은 리눅스의 창시자 리누스 토발즈가 만든 분산 버전 관리 시스템이다. 리눅스를 개발하는데 사용되었고, 현재도 많은 사람들이 사용하고 있다. Git이란, ‘소스코드를 저장’하는 저장소 이다. 누가 언제 어떤 파일에서 어떤 부분을 왜 바꾸었는지를 변경이 생길 때 마다 추적할 수 있도록 체계적으로 관리해 주는 기능을 하는게 '소스코드 저장소'이고 보통 이걸 'Repository'라고 부른다. 분산형 버전관리 시스템(DVCS, Distributed Version Control System)이며 C언어로 구현되었다. 버전 관리시스템은 당신이 어떤 파일 집합에 대한 히스토리를 생성하고 관리할 수 있도록 도우며 특정 다른 상태(어느 시점)으로 복귀(Revert)할 수 있는 기능을 가지고 있다. 파.. 더보기
C언어 개발환경 구축 - 2 MinGW라는 소프트웨어를 받는다.: 툴이나 dll에 의존하지 않는 프로그램을 만들수 있도록 도와준다고 한다. 컴파일러도 제공한다. http://sourceforge.net/projects/mingw/files/에서 latest version을 받자. 실행하면 이런 창이 뜬다. continue를 누르면밑에 창으로 가진다.뭔지 모르겠으면... 그냥 다 받아주자.이름 앞의 네모를 눌러보면 mark어쩌구 하는걸로 뜬다.어차피 한개밖에 활성화 안되니까.(......) 다 하고 닫기 버튼을 누르면, Review어쩌구 버튼을 누른다.그러면 밑의 창이 또 뜬다. 한참을 기다리자. 다 받아지면 Close할수있다. Close하고나서 환경변수 설정을 해야한다. 시스템변수에 PATH에 끝부분에 MinGW\bin 경로를 추가.. 더보기