UIFlow에서 RoverC와 ToF Unit을 동시에 사용하는 방법
개요
UIFlow에서 RoverC HAT와 ToF Unit을 동시에 사용하면 불안정해지는 문제를 해결합니다.
문장은 짧지만 꽤 힘들었기 때문에 메모 쓰기입니다.
경위와 문제
M5Stack(M5SickC)의 프로그램을 Makecode풍으로 비주얼로 개발할 수 있는 UIFlow 를 시험하고 있습니다. 이것은 M5StickC의 HAT와 Grove Unit 용 라이브러리가 내장되어있어 매우 편리합니다.
미로 탐색 로봇 실험을 위해 RoverC 과 ToF 거리 센서 유닛 을 조합하여 다음과 같은 간단한 테스트 프로그램으로 시도해 보았습니다.
미리 Units에서 ToF를, Hat에서 RoverC를 추가하고 숫자를 표시하기 위해 Label을 추가하고 있습니다.
그러나 이것만의 프로그램에서도, "I2C bus error (19)"라고 나와 동시에 사용할 수 없습니다. 거리 센서의 판독과 RoverC에의 동작 명령의 사이에 50밀리초 정도의 웨이트를 넣으면 잘 되는 경우는 있습니다만, 에러가 나오는 일도 있어, 아무래도 불안정합니다.
해결 방법
조사해도, 꽤 비슷한 문제에 맞고 있는 사람이 없는 것 같습니다. 소스 코드와 같은 것 를 발견해 보면, ToF 유니트와의 통신이, 70 밀리 세컨드마다의 타이머 인터럽트로 값의 취득을 하고 있는 것 같습니다. 아무래도 이 타이머 인터럽트가 이상하다고 생각하고, tof1.deinit()로 타이머를 멈추고, tof1._update()를 하고 나서 값을 취득하도록(듯이) 하면. . . 빙고! . 오류가 발생하지 않고 센서의 값 업데이트도 빨라졌습니다.
결국이 _tof.py를 참조하면서 타이머 인터럽트를 사용하지 않는 Custom Block을 만들었습니다.
Reference
이 문제에 관하여(UIFlow에서 RoverC와 ToF Unit을 동시에 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TakekazuKATO/items/59dc7e3d0ebf652a36b7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
M5Stack(M5SickC)의 프로그램을 Makecode풍으로 비주얼로 개발할 수 있는 UIFlow 를 시험하고 있습니다. 이것은 M5StickC의 HAT와 Grove Unit 용 라이브러리가 내장되어있어 매우 편리합니다.
미로 탐색 로봇 실험을 위해 RoverC 과 ToF 거리 센서 유닛 을 조합하여 다음과 같은 간단한 테스트 프로그램으로 시도해 보았습니다.
미리 Units에서 ToF를, Hat에서 RoverC를 추가하고 숫자를 표시하기 위해 Label을 추가하고 있습니다.
그러나 이것만의 프로그램에서도, "I2C bus error (19)"라고 나와 동시에 사용할 수 없습니다. 거리 센서의 판독과 RoverC에의 동작 명령의 사이에 50밀리초 정도의 웨이트를 넣으면 잘 되는 경우는 있습니다만, 에러가 나오는 일도 있어, 아무래도 불안정합니다.
해결 방법
조사해도, 꽤 비슷한 문제에 맞고 있는 사람이 없는 것 같습니다. 소스 코드와 같은 것 를 발견해 보면, ToF 유니트와의 통신이, 70 밀리 세컨드마다의 타이머 인터럽트로 값의 취득을 하고 있는 것 같습니다. 아무래도 이 타이머 인터럽트가 이상하다고 생각하고, tof1.deinit()로 타이머를 멈추고, tof1._update()를 하고 나서 값을 취득하도록(듯이) 하면. . . 빙고! . 오류가 발생하지 않고 센서의 값 업데이트도 빨라졌습니다.
결국이 _tof.py를 참조하면서 타이머 인터럽트를 사용하지 않는 Custom Block을 만들었습니다.
Reference
이 문제에 관하여(UIFlow에서 RoverC와 ToF Unit을 동시에 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TakekazuKATO/items/59dc7e3d0ebf652a36b7
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(UIFlow에서 RoverC와 ToF Unit을 동시에 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TakekazuKATO/items/59dc7e3d0ebf652a36b7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)