전체 글 (87) 썸네일형 리스트형 소프트웨어 개발에 AI(인공지능)의 활용 최근들어 AI 기술이 발달함에 따라 소프트웨어 개발에도 많이들 AI를 활용하는 방안들에 대한 고민을 하고 있는 것 같다. 이런 추세에 맞춰서 나 또한 최근에 Chat-GPT 를 많이 활용하기 시작했다. 별도로 사용료를 내지 않는 무료버젼을 사용하는데 가끔 새로운 라이브러리나 알고리즘에 대해 Chat-GPT 에게 물어 보면 상당히 좋은 코드를 뽑아내 준다. 최소 몇시간에서 몇일을 자료 찾아가며 만들어야 할 코드를 질문 몇번으로 깔끔하게 만들어 주는 것을 보면 참 세상 많이 좋아졌구나 하는 생각이 든다. 예전에는 개발자 사이트에 찾아 들어가서 QnA 에 올려 놓고 한정없이 답변달리기만 기다리거나 읽기 힘든 원서로된 레퍼런스 자료들을 읽어 가며 코딩을 했었는데 이제는 한글로 질문 몇번만 하면 코드를 척척 .. Nice Cool 의 칠러 제어 (CM Series) 국내 나이스 쿨의 칠러 제어를 위한 코드 입니다. RS232통신을 통해 제어를 합니다. Modbus RTU 방식으로 처리하고 라이브러리는 NModbus4를 사용하였습니다. NModbus4 는 Nuget을 통해 설치하시면 됩니다. /**************************************************************************************************** * Device : Chiller(CM SERIES) * Manufacture : NiceCool * Devicce Interface : RS232(Modbus RTU) * Version : 1.0.0 * Program : Sihwan Kim .. 그래프 데이타상에 Y 위치에 대응하는 X 값 찾기 - C# 그래프 데이타에서 특정 Y 값에 대응하는 X 값을 찾을 경우가 있습니다. 이런경우 X 데이타 배열에서 설정된 X 과 같은값을 찾아서 대응하는 Y 값을 리턴하면 되지만 X값이 데이타 배열상의 값과 일치하지 않고 중간값에 해당하는 값일 경우가 있습니다. 이때 이 Y 값에 대응하는 X값을 찾는 알고리즘입니다. 알고리즘은 Y에 대응하는 가장 근사값을 먼저찾고 (Y1) 그 다음값(Y2)를 이용하여 X1, X2를 찾습니다. 이렇게 찾은 두점에 대한 직선의 방적식을 계산한 후 그 직선의 방정식에서 설정한 Y 값을 대입하여 X값을 찾는 방식입니다. public static double Ratio_Method_Value(in double[] xArray, in double[] yArray, double yValue){.. Nextion Editor 버튼 길게 누르기(Long Press) 기능 Nextion 디스플레이를 사용할 때 버튼을 눌러 임의의 값을 증가나 감소 시키는 수행이 필요한 경우가 있습니다. 그런데 이 값의 변화가 얼마되지 않을때는 버튼을 몇번 클릭하면 되지만 변화가 큰 경우 클릭을 한참 해야 한다는 문제가 발생 합니다. 그런데 Nextion 에디터의 버튼에는 길게 누를때(Long Press)의 이벤트를 생성할 수가 없어서 처음에는 변화되는 수만큼 버튼을 눌러서 값을 변경하였는데 이게 값이 한없이 클때는 정말 힘 들어서 방법을 찾아서 구현을 해 보았습니다. (1) 먼저 에디터에 아래와 같이 버튼 2개의 값을 표시하는 Text를 하나 올려둡니다. (2) Timer(tm0) 와 Variable(va0) 하나를 추가도 더 올립니다. (3) Timer의 속성중에 tim을 100 (ms.. PWM 신호 생성기 (XY-LPWM) - 통신 Protocol 최근에 플라즈마 방전회로 제작을 위해 PWM 제어가 필요해서 인터넷에서 찾은 모듈 입니다. 주파수는 1Hz 에서 최대 150KHz 까지 생성이 가능하며 Duty 도 1~100%까지 설정이 가능 합니다. 각각의 조작은 버튼을 눌러서 조작하도록 되어 있고 현재 설정값에 대한 Display도 있습니다.시리얼 통신을 통한 설정값 변경도 가능하네요. 모듈의 도면을 보니 N76E003AT20 이라는 칩이 있는데 찾아보니 8051을 기반으로 제작된 MPU가 내장되어 있네요..아래 회로 도면도 올려 두었습니다. 펄스 출력 전압은 전원 전압이 오픈컬렉터로 연결되어 있어서 전원전압이 그대로 출력펄스로 나가게 설계되어 있습니다. 시리얼 통신을 하기위해 상기 제품을 구매하여 테스트 하였는데 통신이 안돼고 계속 Fail 만 .. C#으로 만들어 보는 Sokoban Game(WPF) 소코반 게임을 WPF 버젼으로 수정해서 올립니다. 아직 WPF를 공부중이라 MVVM 은 사용을 하지 않고 제작을 하였습니다. 코드는 지속적으로 수정을 진행할 예정입니다. 소스 코드는 아래 Git에서 다운 받으시면 됩니다. https://github.com/Sihwan-Kim/PushPush.git 아래 파일은 맵화일과 Config파일 입니다. 실행파일이 있는 곳에 넣으시면 됩니다. Winform 버전의 알고리즘은 그대로 사용하였고 기능적인 부분이 조금 수정되었습니다. 1. 윈폼 버전에서는 맵의 크기가 10 x 10으로 고정하였지만 WPF 버전에서는 크기를 동적으로 수정할 수 있도록 하였습니다. 2. 윈도우의 크기가 변경되면 맵이 항상 중앙에 위치 하도록 하였습니다. 2차원 배열의 크기를 동적으로 변경 - C# private static Array ResizeArray(Array arr, int[] newSizes) { if(newSizes.Length != arr.Rank) { throw new ArgumentException("arr must have the same number of dimensions " + "as there are elements in newSizes", "newSizes"); } var temp = Array.CreateInstance(arr.GetType().GetElementType(), newSizes); int length = arr.Length C#으로 만들어 보는 Sokoban Game(Winform) C# 의 winform 으로 소코반(Sokoban) 게임을 만들어 보았습니다. 아마 프로그램 배우시는 분들이 가장 쉽게 만들어 볼 수 있는 게임 프로그램이 아닐까 합니다. 프로그램의 형태는 아래 그림과 같습니다. 현재 기본적인 게임 알고리즘은 구현이 되어 있고 조금씩 기능을 업데이트 하고 있는 중입니다. 소스는 Github 에 올려 두었습니다. https://github.com/Sihwan-Kim/Sokoban.git 코드는 계속 업데이트할 계획입니다. 이전 1 2 3 4 5 ··· 11 다음