로직을 만들었는데 실행되지 않습니다
가장 흔한 원인은 RUN 을 클릭하지 않은 경우입니다. 로직 작성과 실행은 분리되어 있으므로 상단의 RUN 버튼을 클릭하고, 디바이스 아이콘이 연결 상태(녹색)인지 함께 확인합니다.
RUN 시 호환되지 않는 설정 오류가 발생합니다
프로젝트 생성 시 선택한 디바이스와 실제 연결된 컨트롤러의 보드가 다른 경우입니다. 프로젝트의 디바이스를 실제 보드로 변경하거나, 여러 보드에서 사용할 프로젝트라면 All Devices 로 설정합니다(3부).
같은 네트워크에서는 연결되는데 외부에서는 연결되지 않습니다
컨트롤러와 다른 네트워크(외부 인터넷, 셀룰러 등)에서 연결하면 원격 연결 트래픽을 사용합니다. 원격 연결에는 매월 무료 한도가 있으며, 한도를 모두 사용하면 다음 초기화일까지 외부 연결이 제한됩니다. 같은 네트워크에서의 연결은 한도와 무관하게 계속 사용할 수 있습니다.
설정을 변경했는데 반영되지 않습니다
실행 중에는 일부 항목이 편집 잠금 상태가 됩니다. STOP 으로 정지한 뒤 수정하고 다시 RUN 을 클릭합니다.
조건이 너무 자주 만족되거나 거의 만족되지 않습니다
센서 감지값은 짧은 시간에 참과 거짓을 반복할 수 있습니다. 너무 자주 만족된다면 참이 유지되는 시간 옵션으로 판정을 안정화합니다(4부). 반대로 거의 만족되지 않는다면 비교 연산자와 비교 대상 값이 변수 타입과 일치하는지 확인합니다.
AI 분석 결과가 변수에 기록되지 않습니다
AI 분석은 동작이므로 해당 동작을 포함한 제어의 조건이 만족되어야 실행됩니다. 상시 분석이 필요하다면 조건을 항상 만족 또는 한번만 만족으로 설정하여 분석이 계속 실행되도록 구성합니다.
카메라 영상이 표시되지 않습니다
설정 → 카메라에서 카메라가 정상적으로 등록되어 있는지, 다른 프로그램이 같은 카메라를 사용 중이지 않은지 확인합니다. USB 카메라는 케이블이나 허브 불량이 원인일 수 있으므로 다른 케이블 또는 포트에 연결하여 증상이 재현되는지 확인합니다.
대시보드 위젯에 값이 표시되지 않습니다
위젯은 컨트롤러가 연결되어 RUN 중일 때 실제 값을 표시합니다. 정지 상태의 편집 화면에서 기본값만 표시되는 것은 정상 동작입니다.
알림(푸시·텔레그램·이메일)이 도착하지 않습니다
먼저 해당 동작이 실행되었는지 확인합니다. 조건이 만족되지 않으면 동작도 실행되지 않습니다. 텔레그램과 이메일은 설정에 등록한 봇 토큰과 서버 정보가 올바른지도 확인합니다.
소리가 끊기거나 재생이 지연됩니다
오디오 서버가 PulseAudio 인 구형 운영체제에서 자주 발생합니다. 자원이 제한된 기기에서 PulseAudio 의 버퍼링과 스케줄링이 오디오 끊김을 일으키기 쉽습니다. PipeWire 를 기본 오디오 서버로 쓰는 최신 버전으로 올리는 것이 가장 확실한 해결책입니다. 데비안은 12(Bookworm) 이상, 라즈베리파이 OS 는 Bookworm 이상, 우분투는 23.10(Mantic Minotaur) 이상이며 최신 LTS 인 24.04 LTS(Noble Numbat)가 여기에 해당합니다.
이 문제가 발생할 수 있는 운영체제는 다음과 같습니다.
- 데비안 11(Bullseye) 및 이전 버전
- 라즈베리파이 OS Bullseye 및 이전 버전
- 우분투 20.04 LTS(Focal Fossa)
- 우분투 22.04 LTS(Jammy Jellyfish)(기본 오디오 서버가 PulseAudio 이며 PipeWire 는 일부 기능에만 사용)
주요 원인은 다음과 같습니다.
- 높은 자원 소모: 자원이 제한된 기기에서 오디오 처리가 밀립니다.
- 버퍼링과 스케줄링: 기본 타이머 기반 스케줄링(
tsched=1)이 오디오 버퍼 언더런이나 오버런을 일으킬 수 있습니다. - 블루투스 오디오의 불안정성
블루투스 스피커에서 소리가 나오지 않습니다
스피커가 페어링되고 연결되어 있는지, 그리고 기본 출력 장치로 지정되어 있는지
확인합니다. PipeWire 를 사용하는 라즈베리파이 OS 에서는 wpctl status 의
Sinks 목록에서 기본 장치(* 표시)가 블루투스 스피커인지 확인합니다. 연결과 출력
장치 지정 방법은 부록을 참고합니다.
「Failed to create new vlc instance.」 오류가 표시됩니다
Grablo 는 미디어 재생과 오디오 녹음에 VLC 를 사용합니다. .deb 패키지로 설치하면 VLC 가 의존성으로 함께 설치되므로 별도 작업이 필요하지 않지만, VLC 가 없는 환경에서는 이 오류가 표시됩니다. 컨트롤러 터미널에서 아래 명령으로 설치합니다.
sudo apt-get update sudo apt-get install -y vlc
설치 중 「sudoer 설정 파일에 없습니다」 오류가 발생합니다
로그인 계정에 관리자(sudo) 권한이 없어서 발생합니다. 컨트롤러에 접속한 뒤
su 로 root 계정으로 전환하고 /etc/sudoers 에 계정을
추가합니다. 접속 방법은 부록 B를
참고합니다.
su nano /etc/sudoers
su 의 암호는 운영체제를 설치할 때 입력한 root 계정의 암호입니다. 파일에 아래
형식으로 한 줄을 추가하고 저장한 뒤 다시 설치합니다. nano 에서는 Ctrl + X 를 누르고 저장
여부를 물으면 Y 를 누른 뒤 Enter 로 저장하고 종료합니다.
계정이름 ALL=(ALL:ALL) ALL
파일을 업로드할 수 없습니다
파일 업로드는 디바이스에 연결된 상태에서만 가능합니다. 연결 상태인데도 업로드할 수 없다면 무료 저장 용량(1GB)을 모두 사용했을 수 있으므로 사용하지 않는 파일을 정리합니다(3부).
웹 브라우저를 닫아도 컨트롤러는 동작합니까?
동작합니다. Grablo 는 웹 브라우저와 컨트롤러가 분리된 구조입니다. 웹 브라우저에서 작성한 로직은 RUN 을 클릭할 때 컨트롤러로 전송되며, 이후에는 웹 브라우저와 관계없이 컨트롤러에 저장된 로직에 따라 동작합니다 (2부). 컨트롤러가 재부팅되더라도 저장된 실행 상태와 로직에 따라 계속 동작합니다.
하나의 프로젝트에 몇 개의 컨트롤러를 사용할 수 있습니까?
프로젝트 하나에는 컨트롤러 하나만 연결할 수 있습니다. 같은 컨트롤러를 여러 프로젝트에 설정할 수는 있지만, 컨트롤러에서는 한 번에 하나의 프로젝트만 실행됩니다. 새 프로젝트를 실행하면 이전 설정은 모두 지워지고 새 설정으로 동작하며, 다른 프로젝트가 이미 실행 중이면 그 프로젝트를 정지한 뒤 실행합니다.
같은 프로젝트를 여러 컨트롤러에서 실행하려면 프로젝트를 복제한 뒤 각 프로젝트에 다른 컨트롤러를 연결합니다(3부).
일부 I/O 장치가 라즈베리파이 0~4 에서만 동작하는 이유는 무엇입니까?
스텝 모터, 네오픽셀, HX711 등 일부 I/O 장치는 마이크로초(1/1,000,000초) 단위의 정확한 타이밍으로 GPIO 를 제어해야 합니다. 일반 PC 의 CPU 는 멀티태스킹 운영체제에서 여러 프로그램을 번갈아 실행하므로 이런 타이밍을 보장할 수 없습니다.
라즈베리파이 0~4 의 Broadcom SoC 는 DMA 로 GPIO 를 제어할 수 있어, CPU 의 개입 없이 매우 짧은 간격의 신호를 정확하게 출력합니다. 라즈베리파이 5 는 GPIO 제어에 RP1 이라는 별도 칩을 사용하므로 현재는 이 방식으로 타이밍을 제어할 수 없습니다.
아두이노와 어떤 점이 다릅니까?
아두이노는 마이크로컨트롤러 보드 기반의 오픈 소스 하드웨어 플랫폼으로, C/C++ 로 작성한 프로그램을 PC 에서 보드에 업로드하여 실행합니다. 네트워크와 멀티미디어 기능은 기본 보드에 없으므로 별도 모듈이 필요합니다.
Grablo 는 라즈베리파이 등 싱글 보드 컴퓨터와 PC 에서 실행되는 플랫폼으로, 텍스트 코드 대신 웹 브라우저에서 블록을 배치하여 로직을 작성합니다. 센서와 모터 등의 I/O 장치, 네트워크, 오디오·비디오, 산업용 통신 기능을 제공하며, 대시보드로 장치를 제어하고 모니터링할 수 있습니다. Grablo 는 아두이노 보드에서는 실행되지 않습니다. 두 하드웨어의 차이는 부록을 참고합니다.