
2편은 라즈베리파이 쪽이다. OS를 굽고 런타임을 설치한 뒤 Pi-SD16R 보드를 에디터에 등록한다.
준비물
| 구분 | 내용 |
|---|---|
| 보드 | Raspberry Pi 5, Pi-SD16R 캐리어 보드 |
| 저장 장치 | microSD 카드(16GB 이상)와 카드 리더 |
| 전원 | DC 12~24V 어댑터 |
| PC | 1편에서 에디터를 설치한 Windows PC. 파이와 같은 네트워크 |
| 소프트웨어 | Raspberry Pi Imager, PuTTY |
Pi-SD16R 보드
라즈베리파이 40핀 헤더에 얹는 캐리어 보드. 파이에 전원을 주고 절연 입력 4점, 릴레이 출력 4점, RS-485 1채널을 제공한다.

| 항목 | 사양 |
|---|---|
| 전원 입력 | POWER +/-, DC 12~24V. 내부 5V 레귤레이터로 파이에 급전 |
| 디지털 입력 | 4점(IN1IN4, 공통 IN_COM). 포토커플러 절연(2,500Vrms), 무극성, DC 12 |
| 릴레이 출력 | 4점(OUT1~OUT4, 공통 OUT_COM). a접점, 5A 250VAC / 5A 30VDC |
| RS-485 | 1채널 반이중, 자동 방향 제어, 최대 500kbps. 단자 485+, 485-, GND |
| 표시 | POWER, 입력 4, 출력 4, RS-485 TX/RX LED |
| 기타 | VDD 단자로 입력 전원 출력(센서 전원용). POWER_SW로 파이 급전 on/off |
GPIO 핀맵

| 슬롯 | GPIO(BCM) | 헤더 핀 | 슬롯 | GPIO(BCM) | 헤더 핀 | |
|---|---|---|---|---|---|---|
| IN1 | GPIO20 | 38 | OUT1 | GPIO5 | 29 | |
| IN2 | GPIO21 | 40 | OUT2 | GPIO6 | 31 | |
| IN3 | GPIO22 | 15 | OUT3 | GPIO12 | 32 | |
| IN4 | GPIO23 | 16 | OUT4 | GPIO13 | 33 |
RS-485는 UART0(GPIO14/15). 입력·출력 모두 정논리라 XML에 invert는 필요 없다.
1. Raspberry Pi OS 굽기
Raspberry Pi Imager에서 장치 Raspberry Pi 5, 운영 체제 Raspberry Pi OS Lite (64-bit), 저장소는 microSD 카드.

사용자 지정 입력 항목:
| 항목 | 입력 |
|---|---|
| 호스트 이름 | senbrix |
| 사용자 | pi / raspberry. 실제 설비에서는 다른 비밀번호 |
| Wi-Fi | SSID와 비밀번호. 유선이면 건너뛴다 |
| 원격 접근 | SSH 사용 켜기, 비밀번호 인증 |
쓰기가 끝나면 완료 화면에서 적용된 설정을 확인한다.

2. 부팅과 SSH 접속
microSD를 꽂고 Pi-SD16R을 40핀 헤더에 얹은 뒤 POWER 단자에 전원을 넣는다. 첫 부팅은 2~3분 걸린다.
PuTTY로 senbrix.local에 접속한다. 안 잡히면 공유기에서 IP를 확인한다.
ping senbrix.local
로그인 pi, 비밀번호는 Imager에서 정한 값.
3. 런타임 설치
curl -sSL https://raw.githubusercontent.com/going-kr/Release.Senbrix/master/install-runtime.sh | sudo bash

CAN 확장 보드 질문에는 그냥 엔터. 마지막에 Active: active (running)이 찍히면 끝이다. 부팅 시 자동으로 올라온다.
systemctl status senbrix-runtime
journalctl -u senbrix-runtime -f
- 업데이트: 같은 명령을 다시 실행
- 방화벽:
5557/tcp,5555/tcp,5353/udp열기
4. 새 프로젝트와 장치 확인
에디터 시작 화면에서 새 프로젝트를 누른다. 이름 Test, 저장 경로는 기본값, 프로젝트 유형은 Ladder Diagram + C#. 생성을 누르면 프로젝트 화면이 열린다. 3편까지 이 프로젝트를 쓴다.

에디터 하단 연결 아이콘을 누르면 장치 목록에 senbrix가 뜬다. 안 뜨면 IP를 직접 입력한다.

연결을 누르면 상태 표시줄에 IP와 상태가 표시된다.

5. Pi-SD16R 메인 보드 XML 등록
메인 보드 정의 폴더를 연다.
explorer %LocalAppData%\Going\Senbrix\MainBoards
Pi-SD16R.xml을 만든다.
<MainBoard name="Pi-SD16R" version="1">
<Pin gpio="20" slot="IN1" direction="In"/>
<Pin gpio="21" slot="IN2" direction="In"/>
<Pin gpio="22" slot="IN3" direction="In"/>
<Pin gpio="23" slot="IN4" direction="In"/>
<Pin gpio="5" slot="OUT1" direction="Out"/>
<Pin gpio="6" slot="OUT2" direction="Out"/>
<Pin gpio="12" slot="OUT3" direction="Out"/>
<Pin gpio="13" slot="OUT4" direction="Out"/>
</MainBoard>
| 속성 | 의미 |
|---|---|
gpio | BCM 번호. 중복 불가 |
slot | IN<n> / OUT<n> |
direction | In / Out |
pull, invert | 입력 풀업/풀다운, 액티브 로우 반전. Pi-SD16R은 생략 |
프로젝트 화면 오른쪽 보드 → 메인 보드 지정에서 Pi-SD16R을 고른다. 폴더에 넣지 않고 찾아보기로 XML 파일을 직접 골라도 된다.
확인을 누르면 보드 패널에 메인 보드 · Pi-SD16R이 표시되고 입력은 P1P4, 출력은 P5P8에 바인딩된다. 바꾸려면 I/O 매핑.

다음 편
3편에서 AI로 간단한 제어를 만들고 파이에 배포해 릴레이를 움직인다.
댓글
닉네임만 입력하면 바로 댓글을 남길 수 있어요. Google/GitHub 로그인도 가능합니다.