Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lupin3000/micropython-i2c-df2301q
MicroPython I2C library and example for Gravity: Offline Language Learning Voice Recognition Sensor
https://github.com/lupin3000/micropython-i2c-df2301q
ai dfrobot esp32 gravity i2c micropython offline sensor voice-recognition
Last synced: 27 days ago
JSON representation
MicroPython I2C library and example for Gravity: Offline Language Learning Voice Recognition Sensor
- Host: GitHub
- URL: https://github.com/lupin3000/micropython-i2c-df2301q
- Owner: Lupin3000
- Created: 2024-01-07T13:18:12.000Z (12 months ago)
- Default Branch: master
- Last Pushed: 2024-03-01T09:12:38.000Z (10 months ago)
- Last Synced: 2024-03-01T10:28:49.872Z (10 months ago)
- Topics: ai, dfrobot, esp32, gravity, i2c, micropython, offline, sensor, voice-recognition
- Language: Python
- Homepage: https://softwaretester.info
- Size: 101 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MicroPython I2C library and example for Gravity: Offline Language Learning Voice Recognition Sensor
This repository contains the MicroPython I2C library for the Gravity: Offline Language Learning Voice Recognition Sensor from DFRobot, as well as a very simple example of how to use it. The original repository from DFRobot is located [here](https://github.com/DFRobot/DFRobot_DF2301Q) (_for Arduino and Raspberry Pi_).
## Why this repository?
The original version of DFRobot uses Python serial (_UART_) and Python SMBus (_I2C_), which are not compatible with MicroPython. Also, I was not so happy with the Python code style/quality. That's why I created this version.
## Prerequisite
- [Gravity: Offline Language Learning Voice Recognition Sensor](https://www.dfrobot.com/product-2665.html?tracking=Mszf2HlGMStAAKkFfhNgg3QhFFchlilhR47u9vXX9o9Ko6giJYRJQdmwZjbDIvMV)
- ESP32 (_MicroPython compatible device_)
- MicroPython firmware installed (_min. 1.20.0.*_)
- USB cable (_for connection between ESP32 and sensor_)
- latest [VCP](https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads) driver installed![DF2301Q.jpg](img/DF2301Q.jpg)
## Installation
Clone this repository to your local computer.
```shell
# clone repository
$ git clone https://github.com/Lupin3000/Micropython-I2C-DF2301Q.git# change into local repository folder
$ cd Micropython-I2C-DF2301Q/
```You can optionally install other helpful Python packages.
- esptool (_to flash the MicroPython firmware to the ESP32_)
- rshell (_to establish a serial connection between the local computer and the ESP32 and to transfer data_)
- micropython-esp32-stubs (_to facilitate local development, for example: code completion_)```shell
# install python packages (optional)
$ pip install -r requirements.txt
```Connect the sensor to the ESP32. Make sure that you have set the communication mode on the sensor to `I2C` and use the correct connections (_ESP GPIO's/Sensor interface_)! Only then connect the ESP32 to your local computer via USB.
> In the example `main.py`, the GPIOs pins 21 (_SDA_) and 22 (_SCL_) are used. However, you can adapt these to your needs at any time.
Then start the serial connection and load the example and the library onto the ESP32 device.
```shell
# start rshell connection
$ rshell -p /dev/cu.usbserial-0001# upload files and folder
/YOUR/LOCAL/PATH> cp main.py /pyboard/
/YOUR/LOCAL/PATH> cp -r lib/ /pyboard/
```> The example device/path `/dev/cu.usbserial-0001` could be different for you! Please adapt before your execute the commands!
## Usage
```shell
# start the Python REPL
/YOUR/LOCAL/PATH> repl
```Now press the keys `CTRL` + `d` on your local device, to trigger the soft-reset of the ESP32. If there are no errors, you should see the string "Speak your commands:" in the terminal after a very short time.
```python
Entering REPL. Use Control-X to exit.
>
MicroPython v1.20.0 on 2023-04-26; ESP32 module with ESP32
Type "help()" for more information.
>>>
>>>
MPY: soft reboot
Speak your commands:
```Now speak the wake-up word and few commands. Here few examples:
```python
COMMAND ID: 2
COMMAND ID: 49
COMMAND ID: 84
```Additional information:
- [DFRobot: Product Wiki](https://wiki.dfrobot.com/SKU_SEN0539-EN_Gravity_Voice_Recognition_Module_I2C_UART)