Metadata-Version: 2.4
Name: smartfactory
Version: 0.1.0
Summary: MicroPython libraries for Maker ESP32 PRO smart factory education
Keywords: micropython,esp32,smartfactory,robotics,education
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: Implementation :: MicroPython
Classifier: Topic :: Education
Classifier: Topic :: System :: Hardware
Description-Content-Type: text/markdown
License-File: THIRD_PARTY_NOTICES.md
License-File: LICENSES/MicroPython-MIT.txt
License-File: LICENSES/MicroPython-lib-MIT.txt
Dynamic: license-file

# smartfactory

Maker ESP32 PRO / ESP32-WROOM용 MicroPython 실습 라이브러리 묶음입니다.
일반 PC Python에서 하드웨어를 제어하는 패키지가 아닙니다.

## 포함 모듈

| 파일 | 기능 |
| --- | --- |
| motor.py | 4채널 DC 모터 및 메카넘 제어 |
| servo.py | MG995 / MG90S 서보 제어 |
| line.py | 5채널 디지털 라인 센서 |
| VL53L0X.py | 거리 센서, distance()는 cm 반환 |
| ssd1306.py | SSD1306 OLED |
| ble_library.py | BLE UART 통신 |

기존 파일 이름과 import 방식을 유지합니다. `import smartfactory`로 사용하는 구조가 아닙니다.

## Thonny 설치

PyPI에서 smartfactory를 설치합니다.

1. ESP32를 USB로 연결합니다.
2. Thonny 인터프리터를 MicroPython (ESP32)로 선택하고 해당 포트를 연결합니다.
3. 도구 → 패키지 관리에서 `smartfactory`를 정확히 입력해 검색합니다.
4. 패키지를 설치한 뒤 보드를 소프트 재부팅합니다.

Thonny 버전에 따라 메뉴 표현과 검색 목록 갱신 시간이 다를 수 있습니다.
PC용 Python 인터프리터에서 설치하면 ESP32에 설치되지 않습니다.
기존에 보드 최상위 폴더에 수동 복사한 동명 파일이 있으면 /lib의 설치본보다 먼저
불러올 수 있습니다. 기존 파일을 백업한 뒤 중복 경로를 정리하세요.

## 사용 예

각 예제는 따로 실행합니다.

```python
from servo import Servo

servo = Servo(26, "MG90S")
servo.write(90)
```

```python
from line import LineSensor

sensor = LineSensor()
values = sensor.read()  # 왼쪽부터 OUT5, OUT4, OUT3, OUT2, OUT1
print(values)          # 검은색=1, 그 외=0
```

```python
from machine import Pin, I2C
from VL53L0X import VL53L0X

i2c = I2C(0, sda=Pin(21), scl=Pin(22), freq=100000)
sensor = VL53L0X(i2c)
distance = sensor.distance()
print(distance, "cm")
```

## 현재 설정

- 모터 출력은 사용자 속도 100에서 PWM 최대값의 70%로 제한합니다.
- M2 모터 방향은 기본 반전되어 있습니다.
- 서보는 50Hz이며 MG995는 500~2500us, MG90S는 500~2100us입니다.
- MG90S 최소값은 사용자 확인값이며 최대값 2100us는 기존 설정을 유지한 값입니다.
- VL53L0X는 기존 30mm 보정을 유지합니다.

라이브러리 6개는 사용자 폴더에서 그대로 복사했습니다. 패키징 확인과 실물 동작 확인은
별개이며, 이번 패키징 작업에서 새로 하드웨어 동작을 검증하지 않았습니다.

## 출처

VL53L0X 원본: https://github.com/uceeatz/VL53L0X
SSD1306 및 BLE 관련 원본 고지는 THIRD_PARTY_NOTICES.md와 포함된 LICENSES를 참고하세요.
