간만에 슈퍼소켓을 사용하려는 에러가 딱!!! 'System.Configuration.ConfigurationElement' 형식이 참조되지 않은 어셈블리에 정의되었습니다. 'System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 어셈블리에 참조를 추가해야 합니다. 아놔 ㅎㅎㅎㅎㅎ 이건 내용을 잘못 이해하면 컨피그에 퍼블릭 키 토큰(Public Key Token)을 추가해야 할것 같지만 사실 'System.Configuration'가 참조에 없다는 뜻입니다. 참조 관리자를 열어 어셈블리 > 프레임워크 에 보면 'System.Configuration'를 찾아 추가하시면 됩니다. 요걸 추가하면 에러가 사라집..
서보모터는 별도의 드라이버 없이 아두이노의 라이브러리만 이용하여 동작시킬 수 있습니다. (엄밀히 말해서 서보모터 안에 컨트롤러가 들어있습니다.) 테스트에 사용한 서보모터는 'DGS-288'입니다. (참고 : 스카이홀릭 - DGS-288 - Digital Servo) 1. 서보 모터 동작시키기 일단 서보모터를 연결해 봅시다. 1-1. 보드 구성 그냥 아두이노에 연결해도 됩니다. 전 포스팅을 하는 입장이라 다른 글과 비슷한 화면을 보여주기 위해 브레드보드를 사용한 것입니다. 1-2. 펌웨어 작성 서보모터는 라이브러리를 이용하면 간단하게 제어할 수 있습니다. #include int potPin = 0; int servoPin = 9; Servo servo; int nSwitch = 0; int nAngle =..
'L293D'는 스테핑모터를 제어할 때 쓰던 칩입니다. (참고 : [Arduino] L293D칩을 이용한 유니폴라 스테핑 모터(unipolar stepping motor) 제어) DC모터의 양방향 제어를 할때도 사용이 가능합니다. (참고 : 디바이스 마트 - L293D ) 'L293B'을 이용해도 됩니다. (참고 : 디바이스 마트 - L293B ) 모터는 'KR-300'와 'MDN-4RA3ETA' 사용 했습니다. (참고 : 디바이스 마트 - 서보형 DC모터 (KR-300), MDN-4RA3ETA ) 외부전원을 이용할 때는 'KR-300'를 아두이노 전원을 이용할 때는 'MDN-4RA3ETA'를 사용합니다. 1. 테스트 해보기 일단 아두이노가 아닌 손으로 배선을 수정하여 동작을 확인하기 위한 구성을 합니다..
스테핑 모터 제어에 사용한 ULN2004(ULN2003)칩은 DC모터를 단순하게 돌릴 때도 사용할 수 있습니다. ( 참고 : [Arduino] ULN2004(ULN2003)칩을 이용한 유니폴라 스테핑 모터(unipolar stepping motor) 제어 ) 여기서 '단순하게'라는 의미는 역방향으로 돌리는 것이 안 되기 때문입니다. 가격은 400원 정도 합니다. (참고 : 동신전자 - ULN2004A ) 모터는 KR-300를 사용 했습니다. (참고 : 디바이스 마트 - 서보형 DC모터 (KR-300)) 이 모터가 사용하는 전류가 '160[mA] +/- 40[mA]'이기 때문에 아두이노가 공급하는 '40mA'보다 많기 때문에 아두이노보드가 죽는 현상이 있습니다 ㅡ,.ㅡ;;; (잘못하면 아두이노가 망가집니다..
유니티에서 'DataTable'을 사용하려고 'System.Data'를 추가했습니다. 이렇게 모노디벨로퍼에서 'System.Data'를 추가했습니다. 그런데... 1. 해결 방법 이 문제를 해결하려면 유니티에서 일반적인 DLL을 추가할 때 처럼 에셋(Assets)폴더에 DLL을 추가해주면 됩니다. 문제는 '.NET'용 'System.Data.dll'은 유니티에서 사용할 수 없다는 것이죠. ('.NET'용 'System.Data.dll'는 보통 'C:\Windows\Microsoft.NET\Framework'에 있습니다. ) 먼저 모노용 'System.Data.dll'을 구해야 합니다. 1-1. 모노용 'System.Data.dll' 구하기 모노용 'System.Data.dll'을 구하기 위해서는 모노 홈..
* 2023-10-05 : 현재 이 스크립트는 유지보수가 되지 않고 있는 것으로 보입니다.* 대안에 대한 내용은 마지막에 넣어놨습니다. 이전 글에서 유니티 에디터에서 '파일 다얄로그'를 열어 파일을 선택하는 것을 했습니다. 문제는 유니티 에디터에서만 쓸 수 있다는 것이죠 ㅡ,.ㅡ;;; 그래서 검색해 보니 스크립트로 구현하는 방법이 있네요. 'ImprovedFileBrowser'라는 스크립트입니다. (참고 : unify community - ImprovedFileBrowser ) 1. 스크립트 생성하기 설명이 워낙 잘되어 있어서 전체 코드를 넣겠습니다. 이것은 픽스된 코드가 적용된 코드입니다. using UnityEngine; using System; using System.IO; using System...
유니티의 에디터에서 파일을 선택해서 테스트 할때는 'Open File Panel'를 이용하면 됩니다.(참고 : unity Documentation - EditorUtility.OpenFilePanel)이 포스팅은 'Open File Panel'을 사용하는 하는 방법을 설명합니다.(런타임에서는 사용할 수 없음.) 1. 사용방법 'using UnityEditor;'를 추가한 후 'EditorUtility.OpenFilePanel'를 호출 하면 됩니다. EditorUtility.OpenFilePanel([다얄로그에 표시할 제목], [처음 표시될 디렉터리], [허용할 확장자]); 2. 테스트 해보기 이제 직접 사용해 봅시다. using UnityEngine; using System.Collections; usi..
슈퍼소켓(SuperSocket)을 테스트 하다보니 예상하지 못한 문제가 몇 가지 있네요 ㅎㅎㅎㅎ 여러 문제 중 클라이언트에서는 데이터를 전송했는데 서버에서 반응이 없는 경우를 알아봅시다. 0. 문제의 확인 클라이언트에서 데이터를 보내 봅시다. 서버에서 접속되었다는 메시지가 잘 출력되는 것으로 보아 서버에 접속은 됐습니다. 그런데 메시지를 보내면(스크린 샷에서 '보내기'로 표시된 부분이 메시지를 보내는 부분입니다.) 서버에서 응답이 없습니다 ㅡ.ㅡ (정상적인 동작이라면 서버로 보낸 메시지가 그대로 돌아와야 합니다.) 그래서 기존에 만들었던 서버로 테스트해보니 클라이언트에서 데이터는 잘 넘어오고 있습니다. 1. 문제의 이유 이런 문제가 발생하는 것은 슈퍼소켓의 기본리시브필터가 아스키(ASCII)로 된 텔넷 ..
저도 .NET을 초기 버전부터 사용하던 사람이라 초기에 만든 'Client/Server'프로그램을 계속 고쳐서 사용했습니다. 그런데 이번에 슈퍼소켓을 사용하여 서버를 다시 만들려고 자료를 찾다 보니 '.NET 3.5' 부터는 'SocketAsyncEventArgs'를 사용하라고 권장하는군요. 그래서 샘플을 찾는데..... 원하는 셈플이 없어서 하나 만들었습니다. (참고 : 'SocketAsyncEventArgs'를 이용한 채팅(Chatting) Client/Server 예제 0.7) 샘플을 만들면서 느낀 점을 간단히 적어 보겠습니다. 1. 무한 루프여 안녕~ 이전에는 1) 서버에 리스너를 동작시킨 후 2) 무한 루프를 만들고 3) 'TcpListener.AcceptSocket()'로 무한 루프를 대기 시..
이전 글에서 'Row_Number'를 이용하여 검색된 결과에 순서대로 번호를 부여한 후 이 번호를 기반으로 'bettwen'으로 필요한 범위를 잘라내는 방법을 설명하였습니다. 동적 코드 없이도 코드가 깔끔하지만 속도가 너무 안 났고 그 원인을 분석해보니 셀랙트 부분에 있는 'Case'문이 문제였습니다. (참고 : [MSSQL] MSSQL의 페이징 쿼리 고찰 - 1. Row_Number + bettwen) 이 문제를 해결할 수 있도록 튜닝해 봅시다. *글을 읽기전에 이전글( [MSSQL] MSSQL의 페이징 쿼리 고찰 - 0. 테스트 환경 만들기(클릭) )을 보고 오시는 것이 좋습니다.* 연관글 영역 1. 사용 방법 사용 방법은 다음과 같습니다. Select Row_Number() Over ( Order ..