2024년 8월 16일 금요일

Blogger 페이지 꾸미기

 Blogger 페이지 꾸미는 방법을 적어봅니다.


프로그램 코드 블럭을 잘 쓰고 싶은데 마땅한 방법이 안보이네요.

2021년 10월 29일 금요일

FreeCAD (3) Mainpulator Workbench 를 설치하자

 Mainpulator Workbench를 필수로 설치해야겠다.


파트의 얼라인, 이동, 측정 등을 편하게 할 수 있는 외부 Add on 이다


설명 : https://wiki.freecadweb.org/Manipulator_Workbench

2021년 3월 20일 토요일

[C#] Serial 통신

[C#] Serial 통신 (작성 중)


목표

  • 시리얼 포트를 검색하여 콤보 박스를 만들고, 버튼으로 선택된 시리얼 포트를 열고 닫기
  • MVVM 모델로 구현

프로젝트 생성








참조


2018년 10월 27일 토요일

Python 공부 시작

https://wikidocs.net/book/1

윈도우10에서 ini 파일의 인코딩은 UTF-8을 쓰면 불편하다.

메모장으로 ini 파일을 열어서 편집후 UTF-8로 저장하면 파일 안에 BOM 코드가 추가되어 python에서 문제를 복잡하게 만든다.

좀 더 테스트하고 글을 정리해야겠다.

2017년 11월 29일 수요일

QCAD

사용기

QCAD에 대한 내용을 정리합니다.

회사 업무 때문에 Autocad를 써야 할 일이 생겼지만 자주 쓰는 일이 아니라서 구매하기는 그렇고, 대체할만한 무료 2D 프로그램을 찾다가 최종적으로 QCAD와 LibreCAD 중 선택하게 됐습니다.

LibreCAD 는 QCAD에서 파생된 프로그램인데 전에 설치해서 잠깐 써봤는데, 명령은 AutoCAD와 상당히 호환되는데 아직 불안정한 부분이 많아서 불편했습니다.

QCAD는 전에 사용해 본 바로는 AutoCAD와 명령이 다르지만 불안정하지는 않았습니다.

그래서 QCAD 를 사용하기로 결정했습니다.

설치

QCAD 홈페이지에서 다운 받아서 설치 합니다.

http://www.qcad.org

2017년 8월 8일 화요일

3D 프린터 사용기 [1] – 3D 프린터 구입, 조립

최근에 3D 프린터에 관심이 생겨서 이리저리 인터넷으로 3D 프린터에 대해 사전 조사를 한 뒤 큰맘 먹고 가장 저렴한 조립형 3D 프린터를 구입했습니다.
"Prusa i3 J버전" 을 구입했습니다.
http://neo3d.co.kr 에서 판매하는 제품이지요. 저는 좀 생소한 업체라서 약간 미심적어 디바이스마트를 통해 구입을 했습니다.

그런데 그게 저의 판단 착오였던것 같습니다. 디바이스마트에서 저의 주문 내역을 보고, neo3d 직원이 저의 주소를 잘 못 기재하여 배송에 일주일이 걸렸습니다.

지구상에서 가장 배송 서비스가 잘 되어 있는 우리나라에서 있어서는 안되는 상황이라 생각만 하고, 디바이스마트 고객센터에 전화도 하고, 뭐 이런 저런 우여곡절 끝에 어쨌든 안전하게 제품을 받았습니다.
image
생각보다 작은 사이즈가 우선 맘에 들었습니다. 내용물은 굳이 사진으로 남길 필요는 없겠다 싶었습니다. 판매 회사에서 꼼꼼하게 잘 포장해서 왔습니다.

조립형이니까 이제부터 길고 긴 조립 작업이 시작되었습니다.
실제 조립 작업보다 장난꾸러니 아들녀석 쫓아 내며, 아크릴 보호 필름 벗기는 시간이 절반 정도 걸린것 같습니다.

토요일 오후 2시 부터 자정까지 10시간 동안 작업하여 겨우 조립했습니다.
20170723_010813
집이 작아서 개인 작업실이 따로 없고, 아들에게 장난감 만드는 기계 사서 기차 만들어 줄테니 아빠에게 방을 달라고 설득해서 방 한쪽 테이블에 이렇게 제품을 설치 했습니다.

3D 프린터와의 첫 만남은 여기서 마쳐야겠네요.
차근차근 3D프린터 사용기를 정리해서 올리겠습니다.

2017년 3월 7일 화요일

C# 시계 만들기

 

C# 프로그래밍을 익히기 위해 디지털 시계를 만들어 보겠습니다.

1초 단위로 시간 표시가 바뀌는 간단한 프로그램이죠.

 

1. WPF 프로젝트를 생성하여 다음과 같이 비어있는 창을 하나 만듭니다.

image

2. Grid 와 Label 을 추가 합니다. Label 에는 다음과 같이 설정 합니다.

<Grid>
    <Label
        Content="Clock"
        FontSize="24"
        Grid.Column="0"
        Grid.Row="0"
        HorizontalContentAlignment="Center"
        VerticalContentAlignment="Center"
        x:Name="clock" />
</Grid>

그러면 다음과 같은 모양으로 창이 생성 됩니다.

image

이제 창 디자인은 완성 됐습니다. 본격적으로 C# 코딩을 해야겠네요.

우선 창의 “clock” 이라고 이름 붙인 Label 의 내용을 변경하는 코드를 넣어 보겠습니다.

그런데 WPF 에서 C#의 시작점 (Entry point)은 어디인지 모르겠네요.

이제 찾아보겠습니다.

image

요기 있네요. InitializeComponent(); 전/후 에서 초기화 과정을 추가 하면 된다고 어디선가 봤습니다.

그럼 Label 의 글자를 어디서 바꿔야 하는지 또 찾아 보겠습니다.

image

위와 같이 코드를 추가 했더니 다음과 같이 창이 생성 됐습니다.

image

이렇게 WPF 의 Entry point 를 알았네요.

 

다음 단계로 쓰레드를 생성하고, 1초 단위로 타이머 이벤트를 받아서 라벨 값만 바꿔주면 간단한 시계가 될거라 예상이 됩니다.

 

http://zheld.tistory.com/2

WPF의 타이머에 대해서는 위의 링크에서 잘 설명해 주셨네요.

제가 만들고 있는 시계 프로그램에 적용해 보겠습니다.

image

이제 완성 됐습니다. 컴파일 후 실행하면 1초 단위로 시간이 변경되는 것을 볼 수 있습니다.

 

TimeSpan.FromMilliseconds(0.01) 은 인터벌이 0.01 ms 단위로 발생하게 합니다. 예제에서 인터벌이 너무 짧게 잡혀서 Millisecond 가 아닌가 의심했었는데, 함수 이름대로 Millisecond 단위가 맞습니다.

2017년 1월 12일 목요일

창 크기를 고정하고 싶다

이전 글에서 SharpDevelop 로 첫번째 윈도우를 만들었는데, 크기가 마음대로 움직입니다. 크기를 고정하고 싶은데 이제야 알게 됐습니다.

image

디자인 탭을 선택하고, Window1.xaml 안에 있는 윈도우 객체(?)를 선택하면 오른쪽에 "속성" 이 나타납니다.

아래로 쭉 내리면 “ResizeMode” 라는 속성이 있는데 여기서  “NoResize”를 선택하면 크기가 고정되네요.

image

XAML 코드에는 아래와 같이 자동으로 추가 됩니다.


<?xml version="1.0" encoding="utf-8"?>
<Window
    x:Class="test_01.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="test_01"
Height="300"
Width="300"
ResizeMode="NoResize"
>
<Grid></Grid>
</Window>


프로그램을 실행하면 창 크기를 조절할 수 없게 됩니다.

SharpDevelop & WPF 시작하기


SharpDevelop 로 C# 의 WPF 프로그램을 처음으로 만들어 보겠습니다.
SharpDevelop 는 이미 설치가 되어 있어야 합니다. 다운로드 및 설치 과정을 여기서 설명하기에는 너무 귀찮네요.
제가 여기 블로그에 C# 관련 글을 쓰는 이유는 제 스스로 공부하고, 기억하기 위한 글입니다.

SharpDevelop 실행

image   이렇게 생긴 아이콘을 클릭하여 시작하는거죠.

파일 - 새로 만들기 – 솔루션

image

솔루션 폴더 생성

image
그러면 다음과 같은 화면이 나타납니다.

image

디자인 탭을 누르면 이런 화면도 볼 수 있습니다.
image

컴파일

빌드 아이콘을 눌러서 컴파일 합니다.
image
프로그램을 실행해 봅시다.
image
요렇게 아무것도 없는 윈도우가 딱 나타나네요.

image
이렇게 첫번째 C# 프로그램(?)이 완성 되었습니다.
앞으로 하나 하나 추가해 볼 생각입니다.

이렇게 자세히 적어가면서 해야 제가 기억에 남을것 같습니다.
시간이 되게 많이 걸리긴 하는데, 글을 작성하는 것도 익숙해지면 더 빨리 진행할 수 있겠습니다.

SharpDevelop


C# 개발 환경이 Visual Studio 가 좋겠지만, 성격이 좀 특이해서 라이선스에 자유로운 개발 환경이 없을까 찾아보니 SharpDevelop 라는 프로그램이 있네요.
한글 메뉴도 나오고 MIT License 라고 하니 우선 당장은 써볼만 하겠습니다.
요즘은 Winform 보다는 WPF 가 대세라고 하니, WPF 를 중심으로 공부를 해 나갈 계획입니다.
이제 막 시작하는 단계라 잡히는대로 실행해 보려 합니다.
Open Live Writer 가 있으니 블로그에 글을 올리는 부담이 싹 사라져서 좋군요.

Open Live Writer

 

구글 블로그는 모양도 별로고, 쓰는데 불편했는데 어제 Windows Live Writer 라는 프로그램이 있다는것을 발견 했습니다.

Windows Live Writer 소스가 공개되어 개발된 프로그램이 Open Live Writer 인것 같은데, 저는 Open Live Writer 를 설치했습니다.

Open Live Writer 로 처음으로 이 글을 써봅니다.

실제 블로그에서 편집하는것 보다는 훨씬 편하네요.

http://openlivewriter.org/ 에서 다운로드 받을 수 있습니다.

윈도우에서는 Windows Live Writer 를 쓰는게 Open Live Writer 보다 나은 선택일 것 같습니다.

2015년 12월 28일 월요일

C# 첫번째 윈도우 창 만들기

명월님의 C#강좌를 따라하며 공부를 시작 합니다.

첫번째 윈도우를 만드는데 콘솔로 하는 방법을 먼저 소개해 줘서 아주 좋습니다.


이런 코드를 컴파일 했더니 제 환경에서는 에러가 발생했습니다.


처음으로 MSDN을 검색해 보니 해결 방법이 나와 있네요.




위와 같이 참조 추가를 하고, 다시 컴파일 하니까 컴파일이 됐습니다.


이렇게 창이 하나 덩그라니 생기네요.


2015년 12월 24일 목요일

C# 으로 시리얼 포트 사용 프로그램 만들기(1)

제가 C# 을 시작하게 된 이유는 제목과 같이 시리얼 포트를 사용하는 프로그램을 만들기 위해서 입니다.

이제 배워가는 단계라서 만들어 가는 과정을 써 나갈 계획입니다.

C# 에 도움되는 링크


C# 시작하는 이야기

업무를 위해 간단한 윈도우용 프로그램 만들 일이 있어서 이리저리 둘러본 결과 C# 이 적당할 것 같아서 시작해 봅니다.

먼저 비주얼 스튜디오 커뮤니티 2015를 설치했습니다.

아무 준비도 없이 그냥 다운받아 설치 했네요.

그런데 비주얼 스튜디오 배경을 잘 못 선택해서 새까만 테마로 설정되어 있는데, 가독성이 많이 떨어지네요.

우선 비주얼 스튜디오 환경을 어떻게 변경할 수 있는지 이제부터 찾아가 보겠습니다.

요기서 발견 했습니다.




여기서 제 맘에 드는 파랑을 선택했습니다.

검색해보니 테마를 별도로 다운로드 받아서 적용하는 방법도 있던데 거기까지는 관심이 없네요.




2015년 10월 7일 수요일

STM32F & Emblocks 에서 HSI 를 사용할 때

무료 개발 툴인 EMBLOCKS 에 감사하는 마음으로 시작했는데 처음부터 난관에 봉착했다.

EmBlocks 에서 standard 로 프로젝트를 생성하고 컴파일하고, ST-link 로 디버깅까지 잘 되는데 전원만 껐다 켜면 HSI 가 동작하지 않는 문제가 있었다.

이리 저리 헤메다가 EmBlocks 에서 기본 제공하는 startup code가 좀 문제가 있어 보여서 ST 표준 라이브러리에서 제공하는 gcc_ride7 용 startup_stm32f10x_md.S를 EmBlocks 링크 메모리 맵에 맞게 약간 수정하여 실행했더니 HSI 가 잘 동작한다.

EmBlocks 의 Startup 대신 ST 라이브러리의 Startup 을 사용하는게 좋겠다.

2015년 9월 15일 화요일

Codeblocks + SDCC

In 'settings->compiler->other settings tab->advanced options->others', change 'object file extension' from 'o' to 'rel'.

Codeblocks 에서 빌드하면 .exe 파일이 생성되는데 확장자를 .hex 로 바꾸면 된다.

Blogger 페이지 꾸미기

 Blogger 페이지 꾸미는 방법을 적어봅니다. 프로그램 코드 블럭을 잘 쓰고 싶은데 마땅한 방법이 안보이네요.