Skip to content

[로보메이션] 브라우저 연결 기능 - 햄스터S 블록을 설치형(하드웨어 연결하기)과 같게 수정 - #3108

Open
RobomationRnD wants to merge 1 commit into
entrylabs:develop-hwfrom
RobomationRnD:submit/hamster-s-lite-blocks
Open

RobomationRnD wants to merge 1 commit into
entrylabs:develop-hwfrom
RobomationRnD:submit/hamster-s-lite-blocks

Conversation

@RobomationRnD

@RobomationRnD RobomationRnD commented Sep 30, 2026 •

Copy link
Copy Markdown

어떤 하드웨어 인가요?

햄스터S / (주)로보메이션. 브라우저 연결(하드웨어Lite), Web Serial + 전용 동글

변경 사항

  • 브라우저 연결 햄스터S 항목의 블록을 설치형(하드웨어 연결하기) 햄스터S와 같은 블록으로 바꿨습니다. 지금은 구형 햄스터의 32블록을 쓰고 있어, 설치형에 있는 RGB LED, 사운드, 단위 이동(cm, 도, 초, 펄스), 펜/반지름 돌기, 두드림, 자유낙하 블록을 쓸 수 없었습니다.
    • 설치형과 같은 42블록을 같은 순서와 같은 문구(ko/en/jp/vn)로 넣었습니다. 시리얼 쓰기, 읽기, 통신 속도 블록과 값 블록의 시리얼 입력 항목도 포함합니다.
    • 블록 타입은 hamsterslite_*입니다. 설치형과 같은 이름을 쓰면 한 번들 안에서 설치형 정의를 덮어쓰기 때문입니다(삐오, 라쿤 lite와 같은 방식).
  • 블록이 쓰는 로봇 동작을 설치형(block_robomation.js의 HamsterSRobot, entry-hw hamster_s.js)과 같게 구현했습니다. 로봇으로 나가는 패킷과 블록이 돌려주는 값을 설치형과 대조해 맞췄습니다.
  • 대조 중 구형 햄스터에도 해당하는 기존 결함을 함께 고쳤습니다. 아래 "구형 햄스터 동작 변화"에 따로 적었습니다.

block_hamster_lite.js 파일 하나만 바뀌고 공용 파일은 건드리지 않았습니다.

구형 햄스터 동작 변화

두 항목이 송수신 코드를 같이 쓰므로, 아래 수정은 ”햄스터" (구형 로봇, 그리고 이 항목으로 연결한 햄스터S)에도 적용됩니다. 모두 설치형과 같아지는 방향입니다.

  • 범위 밖 값을 자릅니다. entry-hw는 받은 값을 범위로 자르는데(바퀴 ±100 등) 브라우저 연결에는 그 단계가 없었습니다. 그래서 바퀴 속도 150이 0x96(-106)으로 나가 로봇이 뒤로 달렸습니다. 출력, 버저 등도 같습니다.
  • 선 따라가기 명령이 로봇에 새 명령으로 표시됩니다. 선 따라가기 플래그(구형 0x80 토글, 햄스터S 4비트 id)가 한 번도 바뀌지 않고 있었습니다.
  • 삐 소리가 설치형처럼 440Hz 100ms 켜고 100ms 끕니다. 기존에는 이미 켜진 버저 음으로 200ms 울렸습니다.
  • 정지해도 로봇에 새 명령을 알리는 카운터와 두드림 기준 등 수신 상태를 지우지 않습니다. 설치형 정지와 같은 패킷이 나갑니다.
  • 다시 연결하면 블록 쪽 값을 기본값으로 되돌립니다. 실행 중 연결이 끊겨 멈추면 값이 남아, 다시 연결해 실행할 때 끊기기 전 바퀴, LED, 버저 값이 먼저 나갔습니다. 설치형은 정지할 때마다 되돌립니다.

기존 작품

  • 햄스터S 항목 팔레트에서는 구형 블록이 빠지고 새 42블록만 보입니다.
  • 구형 블록 정의는 그대로 등록돼 있어, 구형 블록으로 저장된 기존 햄스터S 작품도 열리고 실행됩니다.
  • 햄스터 항목의 팔레트와 블록은 바뀌지 않습니다.

참고사항

설치형과 동작이 다른 곳은 네 가지입니다.

설치형의 버그를 따라 하지 않은 것 (3가지)

아래 경우에 설치형은 블록이 멈추거나 로봇에 잘못된 명령이 갑니다. 브라우저 연결은 이 버그를 수정하였습니다. (추후 설치형에도 수정할 예정입니다.)

  • 기다리는 블록이 끝나기 전에 같은 종류의 명령이 올 때 (예: 집게를 닫는 중에 집게 놓기): 설치형은 앞 블록이 끝나지 않고 멈춥니다. 브라우저 연결은 앞 블록을 끝내고 다음으로 넘어갑니다. 로봇이 받는 명령은 같습니다. #3096에서 머지된 방식과 같습니다.
  • 시리얼 블록이 기다리는 중에 정지할 때: 설치형은 그 블록이 끝나지 않고, 정지 뒤 다시 쓰면 글자가 나가지 않습니다. 브라우저 연결은 블록을 끝내고, 다시 쓰면 글자를 보냅니다.
  • 약 474cm가 넘는 이동 명령: 설치형은 로봇에 가는 메시지가 깨집니다. 브라우저 연결은 이 명령을 실행하지 않고 바로 넘어갑니다.

맞추지 못한 것 (1가지)

  • 두드림 감지: 설치형은 한 번 두드리면 한 번만 참이 됩니다. 브라우저 연결은 드물게 두 번 연속 참이 될 수 있습니다(설치형은 엔진이 화면을 갱신할 때마다 두드림 값을 지우지만, 브라우저 연결은 엔진이 불러 주지 않아 다음 로봇 신호가 올 때 지웁니다. 그 사이 화면이 두 번 갱신되면 두 번 참으로 보입니다). 맞추려면 모든 하드웨어가 같이 쓰는 엔진 코드(engine.js)를 고쳐야 해서 맞추지 못했습니다.

@RobomationRnD RobomationRnD changed the title [로보메이션] 브라우저 연결 기능 - 햄스터S 블록을 설치형(하드웨어 연결하기)과 같게 [로보메이션] 브라우저 연결 기능 - 햄스터S 블록을 설치형(하드웨어 연결하기)과 같게 수정 Sep 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants