녹칸다의 로터리엔코더를 이용한 메뉴트리만들기의 개념도임!
이건 구독자분께서 아이디어를 내어주신 부분인데 3D프린터의 메뉴를 보통 이렇게 바꿔서 사용한다고함!
(녹칸다는 사용해본적 없음)
여기서 메뉴트리란 메뉴가 트리구조라는 것인데 하나의 메뉴안에 갯수가 지정되지 않은 하위메뉴가 있는 구조이다!
갯수가 딱딱 지정되어있으면 제어하기가 매우 간단하겠지만 하위메뉴의 갯수가 고정이라는 제약조건이 있다면 만들기가 쉽지 않을 것이다!(메뉴 갯수가 최대인 녀석의 갯수에 나머지 녀석들도 맞춰야한다)
하여긴 녹칸다의 아두이노 예제에서 소프트웨어적으로는 이녀석이 제일 어렵다!
가급적이면 녹칸다는 복잡한 문법을 사용하지 않고 특히 포인터는 사용하지 않는데 이번편에서는 사용할 수 밖에 없다!
상위메뉴와 하위메뉴를 양방향 링크드리스트(linked list)로 구현을 해야하는데 상호간의 주소를 기억시켜야하기 때문에 뽀인터를 사용할 수 밖에 없다!
(그러나 녹칸다가 사용하는 포인터 수준은 아주 낮다 왜냐면 사용할일이 없었기 때문이다 ㅠㅠ)
사용상 더 적합한 문법이 있는지는 모르겠고 아무튼 잘 작동이 되는데 초점을 맞추어 본다!
메뉴를 쭉 타고내려가다가 더이상 하위노드가 없는 녀석을 리프노드라고 표현하고 메뉴에서는 그녀석이 뭔가 명령을 수행하는 역할을 하게 될 것이다!
이때 명령의 종류는 3개로 두었다!
1.아두이노 안에 전역적으로 선언된 변수의 값을 바꾸는 메뉴
2.함수를 구현하고 함수가 호출되는 메뉴
3.함수를 구현하고 함수가 반복적으로 실행되는 메뉴
이러한 개념을 모두 담아서 단계적으로 녹칸다가 유튜브 스트리밍을 통해서 아래와 같이 정리를 해두었다!
'녹칸다 > 녹칸다의 프로젝트 목록' 카테고리의 다른 글
[계획수립] UWB모듈(DWM1000)을 이용한 실내위치측위(실내GPS) (0) | 2022.01.02 |
---|---|
[계획수립] 블루투스비콘을 이용한 실내위치측위(실내GPS) (1) | 2022.01.02 |
[완료] 장거리 무선통신 로라(LoRa)모듈(SX1276)을 이용한 양방향 통신 (0) | 2022.01.02 |
[완료] ESP8266과 OTA를 이용해서 펌웨어 자동 업로드하기 (0) | 2022.01.02 |
[완료] MISOL 기상관측소 세트로 만드는 녹칸다의 IoT웨더스테이션! (0) | 2022.01.02 |