전체 글 132

[python] 파이썬 설치

Windows 환경에서 파이썬을 설치해 봅시다. URL : https://www.python.org/ 위의 공식 사이트에서 Downloads로 이동합니다. 파이썬은 3.X.X 버전과 2.X.X 버전으로 나뉘는데 원하시는 버전을 설치하시면 되지만저는 3.X.X버전을 설치하도록 하겠습니다 작성일 기준 버전3.6.1 입니다.버전을 선택하시면 자동으로 다운로드가 시작되고 다운로드 후 실행하시어 설치하시면 됩니다. 설치파일을 실행 시키면 처음에 뜨는 화면인데 여기서 주의하셔야할 사항은 'Add Python 3.6 to PATH'를 체크해 주시는 겁니다.환경변수를 추가해주는 것인데 환경변수 추가하실 수 있으신분은 빼셔도 되기는 하지만 그렇지 않다면 꼭 체크를 해주시기 바랍니다. 설치가 잘 되었는지 확인을 해보겠습니..

programing/python 2017.04.20

[C#] 다른 프로세스에 키보드 이벤트 발생

이건 그냥 개인 취미 생활을 위해 한번 만들어 보았다.매우 단순하게 어떤 프로세스에 스페이스바 키가 주기적으로 입력되게 하는 걸 만들려고 했는데생각보다 시간이 오래 걸렸다. 코드는 매우 간단하다. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ..

ETC/C# 2017.04.18

[기타] 이차 포인터 파라미터 (0xC0000005: 0xCCCCCCD0 위치를 기록하는 동안 액세스 위반이 발생했습니다..)

에러에 대한 거는 기타에 남기는게 좋을거 같아서 정리를 해봅니다. '0xC0000005' 예외가 발생하여 고생을 좀 했습니다.2차원 배열을 선언하여 함수 인자로 이차 포인터로 받으면 에러가 발생하는데구글링에서는 할당을 안해줫다고 나옵니다. 저의 경우에는 다차원 배열 포인터의 특이점(?) 이라 해야 하나요그런 것 때문에 발생했습니다. 코드를 간단하게 해서 보시면 void test(int **arr) { arr[1][1] = 1; } int main(void) { int arr[10][10]; test(arr); return 0; } 에러가 안날것 같지만.. 에러가 발생합니다. 뭐때문일까요 ? 생각보다 간단했습니다...2차 포인터가 2차원 배열을 받으면 각 차원의 갯수를 모르므로 배열접근 시에러가 발생하는 ..

ETC/기타 2017.04.12

[Arduino] 기본 개발 환경

2016년 초에 아두이노로 드론을 만든 이후 1년만에 다시 아두이노를 사용하게 되었다.그런데.. 이거 기억이 하나도 안난다. 개발 환경부터 설정해 보자. 프로그램을 작성/편집하고 컴파일/디버깅 할 수 있는 통합 환경을 IDE라고 하는데아두이노 IDE를 다운 받아 설치해야 한다. 다운로드 : https://www.arduino.cc/en/Main/Software 위의 사이트로 이동하면 각자 환경에 맞는 파일을 다운 받으면 된다.개인적으로 non-install 버전을 좋아해서 그것을 다운 받았다.2017년 3월 30일 기준 버전 1.8.2 이다. 기부해달라고 하는데 나는 가난한 개발자이므로 다운로드만.. 다운로드 후 압축을 풀어보면 위와 같고arduino.exe 를 실행하면 개발 할 수 있는 창이 뜬다.

ETC/Arduino 2017.03.30

[C#] 32bit dll 사용 시 "...호출 결과 스택이 불안정하게 되었습니다." 에러

C++ 64bit Dll 을 만들어서 C# 에서 사용하고 있었다...그런데... 문제가 발생했다. 사용해야 할 PC가 Stick PC 로 바뀌면서 32bit로 변환해주어야 하는 상황이 발생한 것.. dll을 32bit로 컴파일해서 넣으면 끝나는 줄 알았다.그렇게 쉬운게 아니었다. 에러는 계속 나고.. 해결은 안되고.. 다른 에러들은 쉽게 해결했지만 마지막 에러가 오래 걸렸다. 추가 정보: PInvoke 함수 'H-Stage_Demo!H_Stage_Demo.MainForm::SetMagnification'에 대한 호출 결과 스택이 불안정하게 되었습니다. 관리되는 PInvoke 시그니처와 관리되지 않는 대상 시그니처가 일치하지 않기 때문인 것 같습니다. 호출 규칙 및 PInvoke 시그니처의 매개 변수와 관..

ETC/C# 2017.03.20

[기타] MS Word Theta 기호..

문서 작성을 하는데 Theta 기호를 넣어야 한다..그런데 간만에 문서작성을해서 이게 어디있는지 도무지 못찾겠는거.. 어떤 사람은 블로그에 'θ' 요거만 복사해 놨더군...그래도 방법을 아는게 낫지 않겠는가. MS Word 기준으로 설명하겠음. 우선 삽입>기호>다른기호 하위집합>그리스어 및 콥트어 요래가면 'Greek Small Letter Theta' 를 찾을 수 있다.

ETC/기타 2017.02.23

[C#] 비프(Beep)음 내기

모터가 멈췄는지 확인하는 함수가 있는데 이게 순식간에 지나가니까 진행되는지 확인이 안되더군..그래서 C# 하기 전에 비프음을 썻던게 생각이 나서 적용해 보기로 햇지.. 출처 : https://msdn.microsoft.com/ko-kr/library/system.media.systemsounds.beep(v=vs.110).aspx 사용법은 간단 간단하다.namesapce = System.Media'using System.Media'를 추가해 주면 된다. 함수는SystemSounds.Beep.Play();간단하죠 ? 주의할점은 SystemSound(s)로 쓰면 안됩니다. 's'를 꼭 체크해주십시오.. 소리는 바꿀 수 있나 모르겠네

ETC/C# 2017.02.21

[C#] 시리얼 포트 검색

모터 구동 드라이버 연결을 해서 동작시키는 프로그램을 짜게 되었다.갑자기 짜던 사람이 퇴사하는 바람에... 차근차근 해봅시다. 우선 시리얼 포트로 연결되어 있기에 콤보박스에 시리얼 포트를 검색해서리스트를 추가하는 것을 알아봅시다. 출처 : http://leekd123.tistory.com/48 우선 Ports 추가. using System.IO.Ports; 검색하고 콤보박스에 추가하는 코드 string[] portNames; portNames = SerialPort.GetPortNames(); cbPortList.Items.Clear(); foreach (var item in portNames) { cbPortList.Items.Add(item); } GetPortNames 로 연결된 시리얼 포트를 검색..

ETC/C# 2017.02.10

[C#] 배열 0으로 초기화(Enumerable.Repeat)

배열을 선언하면서 0또는 같은 수로 초기화 하고 싶다.그러나 생성자에는 없는듯 하여 알아보았다.한글로 검색하면 나오질 않더이다. 구글 검색 : Array Zero Initialize 참고 : http://stackoverflow.com/questions/14210369/initialize-an-integer-array-with-a-single-value-in-c-sharp-net 정말 단 한줄로 가능.double[] array= Enumerable.Repeat(0, length).ToArray(); 한줄로 끝난다. 굿 ? 자료형만 맞춰주면 되고 '0'에 초기화 하고 싶은 숫자를 넣어 주면 된다.length 는 할당하고 싶은 크기를 넣어 주면 된다.

ETC/C# 2017.01.24

[C++] 배열복사 std::copy()

배열을 복사해야 하는 상황이 생겼다. 배열 길이가 무려 uint16_t 640*640 의 길이기에 반복문을 쓰기가 겁이 낫다. 처음에는 반복문을 썻는데 집에와서 생각해보니 memcpy와 같은 함수가 있을 것만 같았다. memcpy는 byte 단위로 복사를 하는거라 다른 방법을 찾던중 std::copy() 함수를 발견했다. 매우매우 간단간단. 소스코드를 봅시다 #include #include using namespace std; int main() { uint16_t src[16], dst[16]; for (int i = 0; i < 16; i++) { src[i] = i * i; } copy(src, src + 16, dst); for (int i = 0; i < 16; i++) cout

programing/C++ 2017.01.19