ESP32 개발시 FW를 한개의 파일로 만들기 위해 esptool.py를 사용하기 위해 해당 component를 설치해야 사용할 수 있다.
설치방법은 cmd를 실행하고 esp idf가 설치된 디렉토리에서 components\esptool_py\esptool 로 이동하여 아래와 같이 설치한다.
수행하면 이후 VSCode상에서도 esptool.py를 사용할 수 있다.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
Go to Blogger edit html and find these sentences.Now replace these sentences with your own descriptions.
ESP32 개발시 FW를 한개의 파일로 만들기 위해 esptool.py를 사용하기 위해 해당 component를 설치해야 사용할 수 있다.
설치방법은 cmd를 실행하고 esp idf가 설치된 디렉토리에서 components\esptool_py\esptool 로 이동하여 아래와 같이 설치한다.
수행하면 이후 VSCode상에서도 esptool.py를 사용할 수 있다.
시간 단위
Python에서 bytes, bytearray 를 다룰 때 참고
Windows PC에서 endian을 지정하지 않고 했을 경우 => 네이티브로 판단하여 intel계열의 little-endian 으로 출력
Little-endian vs Big-endian
3D 프린터에서 사용되는 G-코드는 RepRap 펌웨어 기준으로 문자 G로 시작하는 CNC프로그램에서 사용하는 것과 유사하다. 일반적으로 아래와 같은 작업 유형에 사용.
A부터 Z까지 밀링이나 선반에서 사용되는 기능들이 정의 되어 있으나 아래에서는 3D프린터에서 주로 사용되는 코드들만 정리
문자 | 설 명 | 추가 정보 |
---|---|---|
F | 움직임 비율(feed rate) | |
G | 준비 명령을 위한 코드 | G 명령은 원하는 동작의 종류(예: 빠른 위치 지정, 선형 피드, 원형 피드, 고정 주기) 또는 사용할 오프셋 값을 제어 장치에 알려주는 경우가 많다. |
M | 기타 기능 | 동작코드, 보조 명령 등 |
N | 프로그램의 라인 번호 | |
X | X축의 기준으로 한 절대 위치 혹은 증가된 위치 값 | |
Y | Y축의 기준으로 한 절대 위치 혹은 증가된 위치 값 | |
Z | Z축의 기준으로 한 절대 위치 혹은 증가된 위치 값 |
G-Code
Xnnn : X축으로 nnn만큼 위치 이동
Ynnn : Y축으로 nnn만큼 위치 이동
Znnn : Z축으로 nnn만큼 위치 이동
Ennn : 시작점과 끝점 사이에 nnn만큼 사출
Fnnn : 시작점과 끝점 사이의 분당 움직임 비율 (feedrate per minute)
Hnnn (RepRapFirmware) Flag to check if an endstop was hit (H1 to check, H0 to ignore, other Hnnn see note, default is H0)1
Rnnn (RepRapFirmware) Restore point number 4
Snnn Laser cutter/engraver power. In RepRapFirmware, when not in laser mode S in interpreted the same as H.
Code | 설명 | 결과 정보 |
---|---|---|
G00 | Rapid Move | Usage G0 Xnnn Ynnn Znnn Ennn Fnnn Snnn Parameters Not all parameters need to be used, but at least one has to be used Examples G0 X12 ; move to 12mm on the X axis |
G01 | Linear Move | |
G02 | Controlled Arc Move, 시계 방향 | Usage G2 Xnnn Ynnn Znnn Ennn Fnnn Snnn |
G03 | Controlled Arc Move, 시계 반대 방향 | |
G04 | 살다 | 드웰 기간에 대한 주소를 사용합니다( X , U 또는 P 일 수 있음 ). 드웰 기간은 일반적으로 밀리초로 설정되는 제어 매개변수로 지정됩니다 . 일부 기계는 X1.0( s ) 또는 P1000( ms )을 허용할 수 있으며 , 이는 동등합니다.드웰 지속 시간 선택 : 종종 드웰은 한 번 또는 두 번의 전체 스핀들 회전만 지속하면 됩니다. 이는 일반적으로 1초 미만입니다. 긴 드웰은 사이클 시간의 낭비라는 지속 시간 값을 선택할 때 주의하십시오. 어떤 상황에서는 중요하지 않지만 대량 반복 생산(수천 사이클 이상)의 경우100ms만 필요하고 안전하기 위해 200이라고 부를 수 있지만 1000은 그냥 낭비(너무 길다). |
G05 P10000 | 고정밀 윤곽 제어(HPCC) | 윤곽 밀링 중에 더 나은 축 이동 가속 및 감속을 제공하기 위해 심층 예측 버퍼 및 시뮬레이션 처리를 사용합니다. |
G05.1 Q1. | AI 고급 미리보기 제어 | 윤곽 밀링 중에 더 나은 축 이동 가속 및 감속을 제공하기 위해 심층 예측 버퍼 및 시뮬레이션 처리를 사용합니다. |
G06.1 | NURBS( Non-Uniform Rational B-Spline ) 가공 | 복잡한 곡선 및 파형 가공을 위해 Non-Uniform Rational B Spline 활성화(이 코드는 Mazatrol 640M ISO 프로그래밍에서 확인됨) |
G07 | 허수축 지정 | |
G09 | 정확한 정지 확인, 넌모달 | 모달 버전은 G61 |
G10 | 프로그래밍 가능한 데이터 입력 | 작업 좌표 및 도구 오프셋 값 수정 |
G11 | 데이터 쓰기 취소 | |
G17 | XY 평면 선택 | |
G18 | ZX 평면 선택 | |
G19 | YZ 평면 선택 | |
G20 | 인치로 프로그래밍 | 미국과 캐나다 및 영국을 제외하고 다소 드문 경우입니다. 그러나 글로벌 시장에서 G20과 G21 모두에 대한 역량은 언제든지 필요할 가능성이 있습니다. G20의 일반적인 최소 증분은 1/10,0001인치(0.0001")이며, 이는 G21의 일반적인 최소 증분(1/1000밀리미터, .001mm, 즉, 1 마이크로미터 ) 보다 더 큰 거리 입니다. 물리적 차이는 때때로 G21 프로그래밍을 선호합니다. |
G21 | 밀리미터 (mm) 단위 프로그래밍 | 전 세계적으로 널리 퍼져 있습니다. 그러나 글로벌 시장에서 G20과 G21 모두에 대한 역량은 언제든지 필요할 가능성이 있습니다. |
G28 | 원점 복귀(기계 제로, 기계 기준점이라고도 함) | 공구 팁이 기계 0으로 돌아가는 도중 통과할 중간 지점을 정의하는 XYZ 주소를 사용합니다. 기계 제로가 아니라 부품 제로(프로그램 제로라고도 함)와 관련이 있다. |
G30 | 2차 원점 복귀(기계 제로, 기계 기준점이라고도 함) | 은 P 어드레스 지정 얻어 기계 원점 사용하는 경우, 시스템이 여러 보조 점 (P1 내지 P4)을 가진다. 도구 설명이 기계 0으로 돌아가는 길에 통과하는 중간 지점을 정의하는 XYZ 주소를 사용. 이는 기계 제로가 아닌 부품 제로(프로그램 제로라고도 함)로 표현. |
G31 | 건너뛸 때까지 피드 기능 | 프로브 및 도구 길이 측정 시스템에 사용됩니다. |
G32 | 단일 포인트 스레딩, 긴 손 스타일(싸이클을 사용하지 않는 경우, 예: G76 ) | 단일 포인트 스레딩을 위한 자동 스핀들 동기화를 제외하고 G01 선형 보간과 유사. |
G33 | 일정한 피치 스레딩 | |
G33 | 단일 포인트 스레딩, 긴 손 스타일(싸이클을 사용하지 않는 경우, 예: G76 ) | 일부 선반 컨트롤은 이 모드를 G32가 아닌 G33에 할당. |
G34 | 가변 피치 스레딩 | |
G40 | 공구 반경 보정 꺼짐 | 커터 반경 보정(CRC)을 끈다 . G41 또는 G42를 취소. |
G41 | 공구 반경 보정 왼쪽 | |
G42 | 공구 반경 보정 오른쪽 | |
G43 | 도구 높이 오프셋 보정 네거티브 | 공구 길이 오프셋 레지스터 값을 호출하기 위해 주소(일반적으로 H)를 사용. 게이지 라인 위치에 추가 되기 때문에 값은 음수 다. G43은 일반적으로 사용되는 버전(대 G44). |
G44 | 공구 높이 오프셋 보정 포지티브 | 공구 길이 오프셋 레지스터 값을 호출하기 위해 주소(일반적으로 H)를 사용. 게이지 라인 위치에서 빼기 때문에 값은 양수 다. G44는 거의 사용되지 않는 버전이다(G43 대비). |
G45 | 축 오프셋 단일 증가 | |
G46 | 축 오프셋 단일 감소 | |
G47 | 축 오프셋 두 배 증가 | |
G48 | 축 오프셋 이중 감소 | |
G49 | 공구 길이 오프셋 보정 취소 | G43 또는 G44를 취소 . |
G50 | 최대 스핀들 속도 정의 | |
G50 | 스케일링 기능 취소 | |
G50 | 위치 레지스터(부품 0에서 툴팁까지 벡터 프로그래밍) | |
G52 | 로컬 좌표계(LCS) | |
G53 | 기계 좌표계 | 프로그램 제로가 아닌 기계 제로를 기준으로 절대 좌표(X,Y,Z,A,B,C)를 취한다. 도구 변경에 도움이 될 수 있다. 비모달 및 절대 전용. 후속 블록은 명시적으로 프로그래밍되지 않은 경우에도 " G54로 돌아가기"로 해석. |
G54 ~ G59 | 작업 좌표계(WCS) | 축 오프셋의 각 튜플은 프로그램 제로를 기계 제로에 직접 연결한다. 표준은 6개 튜플(G54 ~ G59)이며 선택적으로 G54.1 P1 ~ P48을 통해 48개 튜플을 추가로 확장할 수 있다. |
G54.1 P1 ~ P48 | 확장된 작업 좌표계 | G54 ~ G59에서 표준으로 제공되는 6개 외에 최대 48개의 추가 WCS. G 코드 데이터 유형(이전의 모든 정수)의 부동 소수점 확장에 유의. |
G61 | 정확한 정지 확인, 모달 | G64 로 취소할 수 있다 . 논모달 버전은 G09 이다. |
G62 | 자동 코너 오버라이드 | |
G64 | 기본 절단 모드(정확한 정지 확인 모드 취소) | G61을 취소. |
G68 | 좌표계 회전 | |
G69 | 좌표계 회전 끄기 | G68을 취소 . |
G90 | 절대 프로그래밍 | 부품 0을 기준으로 정의된 위치 지정. 밀링: 항상 위와 같다. 터닝: 때때로 위와 같이(Fanuc 그룹 유형 B 및 유사 설계), 대부분의 선반(Fanuc 그룹 유형 A 및 유사 설계)에서 G90/G91은 절대/증분 모드에 사용되지 않는다. 대신 U 와 W 는 증분 주소이고 X 와 Z 는 절대 주소입니다. 이러한 선반에서 G90은 황삭을 위한 고정 사이클 주소다. |
G90 | 고정 싸이클, 단순 싸이클, 황삭용(Z축 강조) | 절대 프로그래밍을 제공하지 않는 경우(위) |
G90.1 | 절대 아크 프로그래밍 | I, J, K 포지셔닝은 부품 0을 참조하여 정의. |
G91 | 증분 프로그래밍 | 이전 위치를 참조하여 정의된 위치 지정. 밀링: 항상 위와 같다. 터닝: 때때로 위와 같이(Fanuc 그룹 유형 B 및 유사 설계), 대부분의 선반(Fanuc 그룹 유형 A 및 유사 설계)에서 G90/G91은 절대/증분 모드에 사용되지 않는다. 대신 U 와 W 는 증분 주소이고 X 와 Z 는 절대 주소다. |
G91.1 | 증분 아크 프로그래밍 | I, J, K 위치는 이전 위치를 참조하여 정의. |
G92 | 위치 레지스터(부품 0에서 툴팁까지 벡터 프로그래밍) | G50 위치 레지스터 에서와 동일한 결과 정보. 밀링: 항상 위와 같다. 터닝: 가끔 위와 같이(Fanuc 그룹 유형 B 및 유사 설계), 그러나 대부분의 선반(Fanuc 그룹 유형 A 및 유사 설계)에서 위치 레지스터는 G50 . |
G92 | 스레딩 사이클, 단순 사이클 | |
G94 | 분당 이송 속도 | 그룹 유형 A 선반에서 분당 이송 속도는 G98 . |
G94 | 고정 주기, 단순 주기, 황삭용( X 축 강조) | 분당 이송 속도를 제공하지 않을 때(위) |
G95 | 회전당 이송 속도 | 그룹 유형 A 선반에서 회전당 이송 속도는 G99 입니다. |
G96 | 일정한 표면 속도(CSS) | 일정한 표면 속도를 얻기 위해 스핀들 속도를 자동으로 변경합니다. 속도 및 피드를 참조 . G20 모드 에서는 sfm 으로 , G21 모드 에서는 m/min으로 해석되는 S 주소 정수를 취 한다. |
G97 | 일정한 스핀들 속도 | rev/min(rpm)으로 해석되는 S 주소 정수를 사용한다. 모드가 프로그래밍되지 않은 경우 시스템 매개변수당 기본 속도 모드다. |
G98 | 고정 사이클에서 초기 Z 레벨로 복귀 | |
G98 | 분당 이송 속도(그룹 유형 A) | 분당 이송 속도는 그룹 유형 B에서 G94 . |
G99 | 고정 사이클에서 R 레벨 로 복귀 | |
G99 | 회전당 이송 속도(그룹 유형 A) | 회전당 이송 속도는 그룹 유형 B에서 G95 . |
G100 | 공구 길이 측정 |
M-Code
참조
3D프린터에 관련된 사항들 정리
OTA 업데이트 메커니즘을 사용하면 일반 펌웨어가 실행되는 동안(예: Wi-Fi 또는 Bluetooth를 통해) 수신된 데이터를 기반으로 장치를 업데이트할 수 있다.
OTA는 최소 2개의 "OTA App slot" 파티션(즉, ota_0 및 ota_1 )과 "OTA Data 파티션"으로 장치의 파티션 테이블을 구성해야 한다.
OTA 작동 기능은 현재 부팅을 위해 선택되지 않은 OTA 앱 슬롯에 새 앱 펌웨어 이미지를 쓰고, 이미지가 확인되면 OTA 데이터 파티션을 업데이트하여 이 이미지를 다음 부팅에 사용하도록 지정한다.
OTA 데이터 파티션(type "data", subtype "ota")은 OTA 기능을 사용하는 모든 프로젝트의 파티션 테이블에 포함되어야 한다.
공장 부팅 설정의 경우 OTA 데이터 파티션에는 데이터가 없어야 한다(모든 바이트는 0xFF로 지워짐). 이 경우 esp-idf 소프트웨어 부트로더는 파티션 테이블에 있는 경우 factory app을 부팅한다. 파티션 테이블에 factory app이 포함되어 있지 않으면 사용 가능한 첫 번째 OTA 슬롯(일반적으로 ota_0)이 부팅된다.
첫 번째 OTA 업데이트 후 OTA data 파티션이 업데이트되어 다음에 부팅해야 하는 OTA 앱 슬롯 파티션을 지정합니다.
OTA data 파티션은 2개의 플래시 섹터(0x2000바이트) 크기로 기록 중 정전이 발생할 경우 문제를 방지한다. 섹터는 독립적으로 삭제되고 일치하는 데이터로 기록되며, 일치하지 않는 경우 카운터 필드를 사용하여 가장 최근에 기록된 섹터를 결정한다.
참고
Attribute(ATT, 속성) 프로토콜은 BLE 프로토콜 스택 중의 하나다. BLE 서버 데이터베이스에서 데이터를 표현하는 방법과 해당 데이터를 읽거나 쓸 수 있는 방법을 정의한다.
속성은 4개의 구성으로 정의한다.
ATT 프로토콜은 속성을 읽거나 쓸 수 있는 방법도 정의한다. 지원되는 방법은 6가지이며 결과적으로 6개의 PDU(프로토콜 데이터 단위)를 정의한다. 6가지 방법과 해당 PDU 유형은 다음과 같다.
BLE는 아래 5개의 State를 가진다.
Controller Layer
Host Layer
Application Layer
. DAC (Device Access Code)
. CAC (Channel Access Code)
. IAC (Inquiry Access Code)
. 장치 조회 주소 : 0x 9E8B00 ~ 9E8B3F (64개 주소)
. 범용 조회 주소 : 0x 9E8B33 (1개 주소)
. 특수 목적 주소 : 기타 63개 주소
. 피코넷 내에서 보안을 위해 빈번히 변할 수도 있음
ESP-IDF(Iot Development Framework)에는 Pytho, Git, Crosscompiler, Cmake, Ninja 빌드 도구가 필요하다.
https://dl.espressif.com/dl/esp-idf-tools-setup-2.2.exe을 다운받아 실행한다.
일련의 작업이 끝나면 Finish
설치가 완료되면윈도우즈 메뉴 창에 ESP-IDF Command Prompt바로 가기가 설정된다.
Visual Studio Code에 Espressif IoT Development Framework을 개발, 빌드, 롬라이팅, 모니터링, 디버그 등을 지원
Extention을 설치하기 전에 사용하고자 하는 환경에 따라 아래의 프로그램들을 설치해야 한다.
Linux | MacOS | Windows |
---|---|---|
Python 3.5+ | Python 3.5+ | Python 3.5+ |
PIP | PIP | PIP |
Git | Git | Git |
CMake | CMake | C++ Build Tool |
Ninja-build | Ninja-build | Rust |
위의 링크에서 다운받은 설치파일을 실행 시키고 첫번째 항목("C++ build tools")을 선택하고 Install 버튼을 누른다.
설치가 완료되고 나서 설치가 잘되었는지 아래와 같이 확인한다.윈도우 시작메뉴 에서 Development Command Prompt for VS를 실행시킨다.
프로젝트 생성 프로젝트를 생성하고자 하는 폴더에서 npx @react-native-community/cli init [ 프로젝트명 ] npx @react-native-community/cli init firstapp 해당 폴더에 [프로젝트명...