|
1 |
| -# JEM2 Micropython Overview |
2 |
| -- Micropython code for JEM2 core |
3 |
| -- This repo contains JEM2 specific drivers and libraries to interact with JEM2 ESP32 MCU as well as the sensors on board. |
4 |
| -- Code is written in micropython, as easy to use interpreted language |
5 |
| - |
6 |
| -## JEM2 Specs |
7 |
| -- Core Microcontroller: ESP32 WROVER E |
8 |
| -- Distance Sensor: vl53l0x |
9 |
| -- 9 DoF IMU (accel, magnetometer, gyro): bno055 |
10 |
| -- Light Sensor: temt6000 |
11 |
| -- Buzzer: smt0540s2r |
12 |
| -- Battery measurement sensor: bq27441 |
13 |
| -- Pressure / Temperature/ Humidity Sensor: bme280 |
14 |
| -- RGB LED: ws2812 |
15 |
| -- 600 mAh LiPo battery |
16 |
| -- User button: For interacting with JEM |
17 |
| -- WiFi and Bluetooth / BLE |
18 |
| - |
19 |
| -## Quickstart |
20 |
| -### Update your JEM2 with latest code over serial |
21 |
| -- In Google Chrome Browser (must be chrome) go to: https://jem.kitlab.io/ |
22 |
| -- Connect your JEM2 to your computer via micro usb |
23 |
| -- Turn on the JEM2 with the side power switch |
24 |
| -- Click on **Serial Connect** button and select the JEM port |
25 |
| - + Mac / Linux: **usbserial-DP04I8FJ (Example)** |
26 |
| - + Windows: **COM3 (Example)** |
27 |
| - |
28 |
| -- Wait about 5 seconds |
29 |
| -- Below, click the **Load All** button next to the **Official KitLab Kits** section |
30 |
| -- Select the **JEM2 Demo Kit** Sync button (may take 10 seconds to sync) |
31 |
| - |
32 |
| - |
33 |
| -- After selecting, navigate to the **Edit** tab (near lower right hand corner) |
34 |
| -- You should now see the **JEM2 Demo Kit** project in the File Explorer to your right |
35 |
| - + If it's says something else like **MicropythonBoard** just click on that and you should see the Demo Kit option |
36 |
| -- Now click the **FLASH TO JEM** button and wait for prompt to reconnect to JEM2 after upload |
37 |
| - + This can take anywhere from 15 seconds to a couple minutes depending on how big the update is |
38 |
| - |
39 |
| - |
40 |
| - |
41 |
| -### Interact with JEM via the Web IDE |
42 |
| -- Visit: https://jem.kitlab.io/ |
43 |
| - + Uses Bluetooth Low Energy (BLE) or Micro USB Connection to flash code to JEM from Web Browser |
44 |
| - + Must use Google Chrome and have a computer with Bluetooth enabled (most do) |
45 |
| -- Step 1: Open https://kitlab.io/jem/ide |
46 |
| -- Step 2: Make sure your JEM is turned on (Blue LED should be on) |
47 |
| -- Step 3: Navigate to th 'Pair' tab on the Web IDE and click 'BLE CONNECT' or 'SERIAL CONNECT' and select JEM available |
48 |
| - + If selecting 'SERIAL CONNECT' make sure JEM is connected to your computer via micro usb cable |
49 |
| -- Step 4: Navigate to the 'REPL' tab and press enter a couple times to make sure you get a prompt '>>' |
50 |
| -- Step 5: Send a command to JEM |
51 |
| - + Type: print("hello world") |
52 |
| - + Make sure JEM echos this back in the terminal |
53 |
| -- Step 6: View JEM Board Files (make sure you are connected first) |
54 |
| - + Navigate to 'Editor' tab and verify you see the 'jem' folder |
55 |
| - + Click on it to expand and see files and sub-directories |
56 |
| - + These are files loaded directly from your board |
57 |
| - + Edit main.py by adding something like print("hello world") |
58 |
| - + Then click on the 'Flash' button on the bottom |
59 |
| - + Wait for flash to finish and then reconnect when prompted |
60 |
| - |
61 |
| -### Interact with JEM via iOS App |
62 |
| -- Go to iOS app store and search for 'KitLab.io' |
63 |
| -- Download App and open |
64 |
| -- Navigate to 'Pair' tab and click 'Connect' |
65 |
| -- Connect to JEM |
66 |
| -- Navigate to 'REPL' tab |
67 |
| - + Type: print("hello world") |
68 |
| - + Make sure JEM echos this back in the terminal |
69 |
| -- You can also edit files on JEM (like the WEB IDE) by navigating to the 'Editor' tab |
70 |
| -- Android app coming soon! |
71 |
| - |
72 |
| -## General JEM ESP32 Micropython Tutorial |
73 |
| -- JEM uses the ESP32 Wrover IE with Micropython baked in |
74 |
| -- There is great documentation [here](https://docs.micropython.org/en/latest/esp32/tutorial/index.html) |
75 |
| - + Shows you how to control JEM GPIO, PWM, I2C, Flash ..etc |
76 |
| -- We highly recommend this tutorial for beginners or advanced users |
77 |
| - |
78 |
| -### Simple LED test |
79 |
| -- You can run this on the REPL tab here (https://jem.kitlab.io/) |
80 |
| - + Must connect to JEM first |
81 |
| -```python |
82 |
| -from jemled import JemLed |
83 |
| - |
84 |
| -led = JemLed() |
85 |
| -red = (0xFF, 0x00, 0x00) |
86 |
| -led.set_color(red) # set color to red |
87 |
| -led.off() # disable LED |
88 |
| -``` |
89 |
| - |
90 |
| -- For more examples see [Pycom Micropython API](https://docs.pycom.io/firmwareapi/pycom/machine/) |
91 |
| - |
92 |
| -### JEM Sensors |
93 |
| -```python |
94 |
| -from jemimu import JemIMU |
95 |
| -imu = JemIMU() |
96 |
| -imu.orientation |
97 |
| - |
98 |
| -from jembattery import JemBattery |
99 |
| -batt = JemBattery() |
100 |
| -batt.soc() # battery life remaining 0 - 100% |
101 |
| - |
102 |
| -from jemrange import JemRange |
103 |
| -range = JemRange() |
104 |
| -range.distance |
105 |
| - |
106 |
| -from jemlight import JemLight |
107 |
| -light = JemLight() |
108 |
| -light.intensity() |
109 |
| - |
110 |
| -from jembarometer import JemBarometer |
111 |
| -bar = JemBarometer() |
112 |
| -bar.read() |
113 |
| - |
114 |
| -from drivers import button |
115 |
| -btn = button.Button() |
116 |
| -btn.read() # should return 0 or 1 depending if pressed |
117 |
| - |
118 |
| -``` |
119 |
| - |
120 |
| -## Work with JEM ESP32 Bare Metial Firmware |
121 |
| -- If you want to get real fancy you can edit the ESP32 Firmware |
122 |
| -- See [here](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/index.html) |
123 |
| - |
124 |
| -## Connect over WiFi |
125 |
| -- Coming soon! |
126 |
| - |
127 |
| -## JEM Board |
128 |
| - |
| 1 | +# JEM Simple Kit |
| 2 | +- Kit showing how to use the RGB LED and Range Sensor |
129 | 3 |
|
| 4 | +## Instructions |
| 5 | +- Flash kit to JEM |
| 6 | +- Navigate to **RC** tab on Web or Mobile App and control RGB LED and test range sensor |
| 7 | +- Edit the **kits/simple/simple.vue** file to update your kit UI and then reload the **RC** tab to see changes live |
0 commit comments