RichTextFX.CodeArea에 scroll bar를 붙이려면 다음과 같이 VirtualizedScrollPane 을 생성하여 Node에 붙여야 한다.


caREPL = new CodeArea();
caREPL.setWrapText(true);// 이렇게 하면 HScrollBar는 안 생긴다.
VirtualizedScrollPane caREPLS = new VirtualizedScrollPane<>(caREPL);
apane.getChildren().add(caREPLS); // apane은 anchorPane 객체

// 상하좌우 여백을 0으로 만들어 anchorPane에 fill 시킨다.

AnchorPane.setRightAnchor(caREPLS, .0); // (Node, Double)
AnchorPane.setLeftAnchor(caREPLS, .0);
AnchorPane.setBottomAnchor(caREPLS, .0);
AnchorPane.setTopAnchor(caREPLS, .0);

이렇게 하면 줄이 화면을 넘어갈 때 자동으로 세로 스크롤바가 생성된다.



 만약 위와 같이 test wrap 을 활성화시키면 가로 스크롤바는 생성되지 않지만 비활성화시킨다면 가로 스크롤바도 생성된다.


c{espy}n{espy003}


Posted by 살레시오
,

  RichTextFX.CodeArea에 css 를 적용하기 위해서는 다음과 같은 절차를 따른다.


먼저 프로젝트에 css파일을 생성하고 다음과 같이 작성한다.


.code-area {
   -fx-font-family: monospace;     //폰트
   -fx-font-size: 20;              // 폰트사이즈
   -fx-background-color: #272822;  //배경색
}

.code-area .text { //.code-area 와 .text 사이에 반드시 공백이 있어야 한다.
   -fx-fill: #FFFFFF;             // 문자 색상
}

.caret {
   -fx-stroke:white;              // 캐럿 색상
}

그리고 CodeArea 객체를 다음과 같이 생성하여 설정한다. 여기서 프로젝트의 이름은 Espy_Harper 라고 가정하고 css파일 이름은 caREPL.css 라고 가정한다.


caREPL = new CodeArea();
caREPL.setWrapText(true); // text-wrapping 설정
String stylesheet =
     Espy_Harper.class.getResource("caREPL.css").toExternalForm();
caREPL.getStylesheets().add(stylesheet);

주) 파란색은 프로젝트 이름, 빨간색은 css파일의 이름이다.


이렇게 하면 css에서 지정한 폰트, 배경색, 문자색, 캐럿 색상으로 설정된다.


c{espy}n{espy002}



Posted by 살레시오
,

 NetBeans에서는 Hack 폰트와 같이 한글이 포함되지 않은 폰트를 사용하면 주석을 한글로 달 수 없다. 그나마 나은 대안이 네이버에서 만든 D2Coding 이라는 코딩용 폰트를 사용하는 것이다.



다운받은 ttf 파일을 더블 클릭하여 설치한 후 NetBeans를 다시 시작하면 폰트에서 선택할 수 있다. 가독성은 Hack보다 다소 떨어지지만 이 폰트를  사용하는 것 만으로 NetBeans에서 주석을 한글로 달 수 있다.




 만약 NetBeans의 시스템 폰트를 D2Coding (또는 다른 한글 폰트)로 바꾼다 하더라도 여전히 메뉴나 다른 선택창에서의 한글은 깨져 보인다. 이것을 해결하려면 [NetBeans 설치폴더]/etc/netbeans.conf 파일에서 아래 부분을 찾아 수정한다. (빨간색 부분을 추가한다.)


netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dfile.encoding=UTF-8"

만약 Darcula 테마를 사용한다면 다음 그림과 같이 default font를 override 해야 한다. 단, Look and Feel 항목도 Darcula 로 설정되어 있어야 한다.




이렇게 설정하고 NetBeans를 재시작하면 모든 메뉴에서 한글이 깨지지 않고 보이게 된다.

c{nbs}n{002}


Posted by 살레시오
,

  RichTextFX를 javaFX에 적용하기 위해서는 다음과 같은 절차를 따른다.


 먼저 github 페이지에 가서 richtextfx-fat-0.x.jar 라이브러리를 다운받는다. ( 반드시 -fat- 버전이어야 한다. 이것이 아니면 compile할 때 오류가 발생한다.) 이 포스트를 작성할 때 최신버전이 0.7-M2 였다. 따라서 richtextfx-fat-0.7-M2.jar 파일을 다운로드 받는다.


 그 다음 netbeans를 실행하여 javaFX FXML Application 을 생성한다. 이 프로젝트는 Scene Builder를 이용하여 UI를 구성할 수 있다.


생성된 프로젝트의 Libraries를 우클릭한 후 [Add Jar/Foler...] 를 선택하여 다운로드 받은 jar 파일을 추가시킨다.



FXMLDocController.java 파일에서 다음과 같이 AnchorPane 객체를 추가한다.


SceneBuilder 의 AnchorPane 에 이 id를 지정해 준다.


그 다음 AnchorPane 객체와 CodeArea 객체를 import 한다.


import javafx.scene.layout.AnchorPane;
import org.fxmisc.richtext.CodeArea;

그리고 FXMLDocController 클래스의 initialize() 메소드에 다음과 같이 추가한다.



실행 결과는 다음과 같다.



이것으로 javaFX 의 AnchorPane 에 CodeArea를 붙이는 것을 해 보았다.


c{espy}n{jv016}


Posted by 살레시오
,

  먼저 Hack 폰트가 설치되지 않았다면 다운받아서 설치한다.


 그리고 넷빈스의 Tools>>Pugins 메뉴의 [Available Plugins]탭에서 darcula 로 검색하면 다음 그림과 같이 항목이 나타난다. 그 항목을 우클릭한 후 설치를 선택하면 된다.



넷빈스를 다시 시작하면 다크 테마가 적용이 되어있을 것이다.


 만약 이 테마의 세부 사항을 변경하고 싶다면 Tools>Options 메뉴의 [Fonts & Colors] 로 가서 Darcular 테마를 선택한 후 적당한 이름으로 복사를 한다.



이후에 폰트를 Hack으로 변경한다든지 Background 색을 Black으로 선택할 수 있다.


 만약 넷빈스의 폰트를 변경하고 싶으렴 예를 들어 키운다든가) 다음 그림과 같이 Appearance > Darcula Look and Feel 탭에서 변경가능하다.



c{nbs}n{001}


'프로그래밍언어.Lib > NetBeans(자바IDE)' 카테고리의 다른 글

넷빈즈에서 한글 사용하기  (0) 2016.09.24
Posted by 살레시오
,

2.2 GPIO핀 제어

c{mpy0202}

 MicroPython 에서는 핀번호를 ESP8266모듈의 GPIO 번호를 사용한다. 아래 그림에서 보면 0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16 번이다.



이들을 제어하기 위해서는 machine 모듈의 Pin 객체를 이용해야 한다.


from machine import Pin

p0 = Pin(0, Pin.OUT)    # GPIO0 출력핀 객체 생성
p0.high()               # set pin to high
p0.low()                # set pin to low
p0.value(1)             # set pin to high

p2 = Pin(2, Pin.IN)     # GPIO2 입력핀 생성
print(p2.value())       # get value, 0 or 1

p4 = Pin(4, Pin.IN, Pin.PULL_UP) # enable internal pull-up resistor
p5 = Pin(5, Pin.OUT, value=1) # set pin high on creation

위와 같이 Pin 객체의 생성자에 입력/출력 그리고 초기값 등등을 지정해 줄 수 있으며 멤버함수 high(), low() 로 출력값을 지정하거나 value()함수로 핀의 입력값을 받을 수 있다.


출력

입력

p = Pin(n, Pin.OUT)
p = Pin(n, Pin.IN)
p = Pin(n, Pin.IN, Pin.PULL_UP)
p.high() 혹은 p.value(1)
p.low() 혹은 p.value(0)
p.value()

여기서 n은 0,1,2,3,4,5,12,13,14,15,16 중 하나이다.


이와 같이 value() 멤버함수는 출력값을 지정해 줄 때도 쓰이고 입력인수가 없을 경우에는 핀의 입력값을 읽을 때도 사용된다.


단, 1번과 3번 핀은 시리얼 통신에 사용되며 16번 핀은 wakeup 기능(deepsleep 모드에서)에 사용되므로 가급적 사용하지 말아야 한다.



Posted by 살레시오
,

1.3 MicroPython 설치

c{mpy0103}

 nodeMcu에 microPython을 설치할 수 있다. 이런 저가의 모듈을 python으로 제어할 수 있다니 무척 놀랬다. 설치하는 과정도 무척 간단한데 윈도우 기준으로 설명한다면 다음과 같다.

1.3.1 python 2.7 과 pip 설치하기

만약 윈도우 PC에 python 2.7이 설치되어 있지 않다면 설치해야 하는데 이 과정은 무척 간단하다. 윈도우 인스톨러를 다운받은 후 설치하면 된다.기본 설정을 변경하지 않았다면 c:/python27 폴더가 생성되어 있을 것이다. 그 다음 pip 라는 파이썬 모듈을 설치해야 하는데 여기에서 get-pip.py 를 다운받아 c:/python27 폴더에 옮긴 후 다음과 같이 실행하면 설치된다.


python get-pip.py

1.3.2 nodeMCU에 펌웨어 설치

먼저 nodeMCU를 PC와 연결한 후 시리얼 포트 번호를 알아두어야 한다. 그리고 MicroPython downloads 페이지에서 ESP8266 용의 최신 펌웨어를 다운받아 c:/python27 폴더에 복사해 넣는다.


[그림] ESP8266 용의 MicroPython 펌웨어


nodeMCU에 펌웨어를 설치하기 전에 esptool 파이썬 모듈을 설치해야 한다.


python -m pip install esptool

그 다음에 설치된 esptool 을 이용하여 반드시 esp8266의 내부 플래시메모리 내용을 삭제하여야 한다.


python -m esptool --port COM4 erase_flash

위에서 COM4는 자신의 포트 번호를 사용해야 한다. 이제 펌웨어를 저장한다.


python -m esptool --port COM4 --baud 460800 write_flash --flash_size=8m 0 esp8266-2016-05-03-v1.8.bin


파일명은 자신이 다운로드받은 것으로 대체해야 한다. 만약 기록 후 원본과 대조를 하고자 하면 --verify 옵션을 추가로 붙여주면 된다.


1.3.3 PC와의 연결

putty를 이용하여 serial로 연결하면 된다. 속도(baud rate)는 115200 으로 설정한다.



이제 다음과 같이 접속되면 성공한 것이다.



NodeMCU 같은 와이파이가 포함된 저가의 프로세서를 파이썬으로 제어한다는 것은 무척 매력적이다. 파이썬을 잘 알지 못한다면 이 기회에 배워두는 것도 나쁘지 않을 것이다.



Posted by 살레시오
,

저항

교육/전기전자 2016. 9. 19. 09:31

1.1.6 저항(resistance)

 저항은 전류를 방해하고 전기에너지를 열로 소비하는 특성을 가지는 기본 소자로서 단위는 ohm(Ω:옴)이 사용된다. 일반적으로 전압 혹은 전류의 크기를 조절하는데 사용된다.


[그림 1.1.9] 다양한 소재의 고정저항


 저항은 고정저항, 가변저항, 어레이 저항으로 구분할 수 있다. 고정저항은 항상 일정한 값을 갖지만 가변저항은 일정 범위 내에서 저항값을 바꿀 수 있다. 어레이 저항은 고정저항의 일종으로 디지털 회로 등에서 동일한 크기의 저항을 대량으로 사용할 때 이용하기 용이하도록 여러 개의 저항을 하나로 묶어 놓은 형태를 갖는다. 또한 소재에 따라 탄소피막저항, 금속피막저항, 산화금속피막저항, 권선형저항, 시멘트저항, 세라믹저항 등으로 구분된다.


1) 탄소피막저항 : 양산화에 의해 가격이 싸며, 높은 저항치를 소형으로 제조 가능하기 때문에 고정밀도나 대전력이 아닌 모든 경우에 가장 많이 사용되고 있다.

  • 저항범위 : 1.0Ω ∼ 100MΩ

  • 전력범위 : 1/8W, 1/4W, 1/2W

2) 금속 피막 저항 : 정밀한 저항이 필요한 경우에 가장 많이 사용하며 특히 고주파 특성이 좋아 디지털 회로에 널리 사용되지만, 단점은 가격이 비싸다는 점이다.

  • 저항 범위:20Ω ∼ 2MΩ

  • 전력 범위:1/8W,1/4W,1/2W

3) 산화금속피막 저항 : 소형이면서도 큰 전력에 견딜 수 있으며 열에 강하기 때문에 전원회로 등에 널리 쓰인다.

  • 저항 범위:10Ω∼100kΩ

  • 전력 범위:0.5W,1W,2W,3W

4) 권선형 저항 : 금속저항선을 세라믹 로드와 같은 권심에 감아서 일정한 저항 값을 갖도록 만들어서 정밀한 저항 값을 갖으며, 고온과 습도에 우수한 특성을 갖는다. 주로 계측기에 사용하고 있으나 고저항값을 얻기 힘들다.

  • 저항 범위:0.1Ω∼200kΩ

  • 전력 범위:1/8W∼2W

5) 시멘트 저항 : 온도와 습도로부터 저항기를 보호하기 위하여 저항체를 시멘트 몰드에 넣어 만든 저항으로써 내전압 특성이 우수하며 고온에도 잘 견디므로 주로 대전력을 다루는 부분에 사용된다.


6) 가변저항 : 볼륨형 가변저항과 반고정 가변저항이 있으며, 볼륨형이라는 단어는 오디오의 볼륨 조절과 같이 기기의 외부에 손잡이를 두고 항상 조절 가능한 형태의 저항을 나타낸다. 반고정 가변저항은 볼륨형 저항과 달리 대부분 회로 기판에 직접 장착되며 회로의 동작점을 미세조정할 때 사용된다.

[그림 1.1.10] 다양한 가변저항들

7) 네트워크 저항은 부품의 집적도를 높이기 위해 여러 개의 저항을 하나의 패키지 안에 넣고 저항 네트워크를 구성한 것으로 칩 형태와 다리를 갖는 형태의 어레이 저항이 있다.

[그림 1.1.11] 네트워크 저항


 저항에 따라 전력 용량이 다르기 때문에 회로의 저항에서 소모되는 전력을 확인하고 용량에 맞는 저항을 선택하여야 한다. 실습에서의 대부분의 회로는 매우 작은 전력만을 저항에 흘리므로 1/4W나 1/8W정도의 저항이면 충분하다. 저항은 극성이 없이 사용된다.


'교육 > 전기전자' 카테고리의 다른 글

오실로스코프 개요  (0) 2017.01.09
7세그먼트  (0) 2016.10.05
도체, 부도체, 반도체  (0) 2016.09.15
직류와 교류  (0) 2016.09.15
전압과 전류  (0) 2016.09.15
Posted by 살레시오
,

1.1.5 도체, 부도체, 반도체

 전기 전도도에 따라 물질을 분류하면 크게 도체, 반도체, 부도체의 3가지로 분류된다. 도체는 전류가 흐를 수 있는 물질이다. 도체는 많은 수의 자유전자를 가지고 있으며, 대부분의 금속은 훌륭한 도체로 작용한다. 은이 전도도가 가장 좋으며, 구리가 그 다음이다. 구리는 은보다 가격이 저렴해서 가장 보편적으로 도체로 사용된다. 이 때문에 우리가 쓰는 전선 속 구리선(銅線)은 전기회로에서 도체로 가장 많이 사용된다.


[표] 대표적인 도체의 상온에서의 전기전도도

물질명

전기전도도

은 (silver)

6.17 x 107

구리 (copper)

5.80 x 107

금 (gold)

4.10 x 107

알루미늄 (aluminum)

3.82 x 107

철 (iron)

1.03 x 107


 절연 물질은 전류의 흐름이 매우 약한 물질이며 전류의 흐름이 요구되지 않는 곳에서 전류의 흐름을 막기 위해 사용된다. 도체와 비교하여 절연체는 거의 자유전자를 갖고 있지 않다.

[그림 1.1.8] 전선의 구조. 도체를 부도체가 감싸고 있다.


 반도체는 가해지는 전압의 요건에 따라 전류가 흐르거나 그렇지 않기도 하는  독특한 성질을 가진다. 몇몇의 반도체 물질들은 다이오드(diod), 트랜지스터(transister) 같은 현대 전자 소자의 기본이 된다. 실리콘과 게르마늄이 가장 보편적으로 사용되는 반도체 물질이다. 순수한 상태에서는 부도체와 비슷하지만 불순물의 첨가나 기타 조작에 의해 전기전도도가 늘어나기도 한다.


 인체도 전류를 통하는 도체이다. 5V나 12V 정도의 낮은 전압은 인체에 치명적인 해를 미치지 않는다. 그러나 220V의 전압에 감전되면 생명에 지장을 줄 수 있을 정도로 위험하므로 각별히 주의해야 한다

'교육 > 전기전자' 카테고리의 다른 글

7세그먼트  (0) 2016.10.05
저항  (0) 2016.09.19
직류와 교류  (0) 2016.09.15
전압과 전류  (0) 2016.09.15
전기 개론  (0) 2016.09.15
Posted by 살레시오
,

1.1.4 직류와 교류

 전류는 직류(direct current, DC)와 교류(alternating current, AC)가 있다. 직류는 한쪽 방향으로만 전류가 흐르며, 교류는 그 방향이 주기적으로 바뀐다.

[그림 1.1.7] 직류와 교류 전압


교류는 주로 발전소에서 가정에 전원을 공급할 때 사용된다. 우리나라에서는 1초에 전류의 방향이 주기적으로 60회 변화하는 60Hz 220V전원을 가정에 공급하고 있다. 하지만 대부분의 전자 제품은 직류를 사용한다. 그것도 220V의 고전압이 아니라 5V나 12V의 낮은 직류 전압을 사용한다. 따라서 AC전원을 DC로 바꿔주는 정류기(rectifier) 혹은 컨버터(converter)라고 불리는 변환기를 거치게 된다

'교육 > 전기전자' 카테고리의 다른 글

7세그먼트  (0) 2016.10.05
저항  (0) 2016.09.19
도체, 부도체, 반도체  (0) 2016.09.15
전압과 전류  (0) 2016.09.15
전기 개론  (0) 2016.09.15
Posted by 살레시오
,