Main Page: Difference between revisions
Jump to navigation
Jump to search
| (72 intermediate revisions by the same user not shown) | |||
| Line 10: | Line 10: | ||
== PymateIO EcoSystem == | == PymateIO EcoSystem == | ||
PymateIO is expandable by design starting with few board, new arrivals should come with time. | |||
=== Key products === | === Key products === | ||
| Line 15: | Line 18: | ||
{{asm-row|img=pymate-core-angle-small.png}} | {{asm-row|img=pymate-core-angle-small.png}} | ||
{{asm-text}} ''' | {{asm-text}} '''PymateIO Core Core8ADI8DOSC''' | ||
* DIN rail mounting | * DIN rail mounting | ||
* Spring cage connector | * Spring cage connector | ||
| Line 29: | Line 32: | ||
* MicroPython support with libraries | * MicroPython support with libraries | ||
* Developper friendly | * Developper friendly | ||
* [[Pymate-Core-Tour|Core8ADI8DOSC product tour]] | |||
[https://www.pymate.io TODO:Link to shop] | |||
{{asm-row|img=pymate-16adi16do-angle-small.png}} | {{asm-row|img=pymate-16adi16do-angle-small.png}} | ||
{{asm-text}} | {{asm-text}} '''PymateIO 16ADI16DO''' expansion | ||
* DIN rail mounting | |||
* Plug-and-play (ready to use) | |||
* Daisy chain by design (up to 120 boards) | |||
* Spring cage connector | |||
* 8-28V power supply | |||
* '''16 digital inputs''' 12/24V tolerant | |||
* '''up 16 configurable analog inputs''' (10V max) | |||
* '''16 digital outputs''' (PNP, 250mA, High Side control) | |||
* 1 user button, 2 user LEDs | |||
* [[Pymate-16ADI16DO-Tour|16ADI16DO expansion tour]] | |||
[https://www.pymate.io TODO:Link to shop] | |||
{{asm-row|img=pymate-hmi-angle-small.png}} | |||
{{asm-text}} '''CommandHMI''' [COMING SOON] | |||
* 8-28V power supply | |||
* 16:9 TFT 4.3" (96x53mm) | |||
* 480 x 272px | |||
* Serial: RS232 + RS485 | |||
* Protocols: Modbus, ASCII, ... | |||
* USB-A: Master modbus, data export (to USB key) | |||
* USB-C: programming port | |||
* Variant: 7.0", 10.2", 15.6", 4.3" Ethernet | |||
* [https://www.pymate.io/commandhmifrom-4-3-to-15-6/ Read more] | |||
[https://www.pymate.io TODO:Link to shop] | |||
{{asm-end}} | {{asm-end}} | ||
=== Product Nomenclature === | === Product Nomenclature === | ||
{| class="wikitable" | |||
|+ | |||
!Letter | |||
!Feature | |||
|- | |||
|DI | |||
|Digital Input. It is prefixed with the number of input (ex : '''8DI''' or '''8'''A'''DI'''). | |||
May be in combination with A. | |||
|- | |||
|A | |||
|Analog Input. It is prefixed with the number of analog input (ex : '''8A''' or '''8A'''DI). | |||
May be in combination with DI. | |||
|- | |||
|DO | |||
|Digital Output. It is prefixed with the number of analog output. | |||
|- | |||
|S | |||
|Serial (RS485, MODBUS RTU) | |||
|- | |||
|C | |||
|CAN bus | |||
|- | |||
|P | |||
|SPI bus | |||
|- | |||
|I | |||
|I2C bus | |||
|- | |||
|U | |||
|UART | |||
|- | |||
|T | |||
|Modbus TCP | |||
|} | |||
=== Products tour === | === Products tour === | ||
| Line 58: | Line 125: | ||
== Programming HowTo == | == Programming HowTo == | ||
{{ | {{ttuto-begin}} | ||
{{ttuto | |||
|label=MicroPython | |||
|descr=What is MicroPython? | |||
|img=tlogo-about-MicroPython.jpg | |||
|link=About-Micropython | |||
}} | |||
{{ttuto | |||
|label=Thonny IDE | |||
|descr=Prepare your MicroPython IDE environment. | |||
|img=tlogo-thonny.jpg | |||
|link=Micropython-IDE-and-Tools | |||
}} | |||
{{ttuto | |||
|label=Connect Pymate | |||
|descr=Connecting the board | |||
|img=tlogo-connect.jpg | |||
|link=Micropython-IDE-and-Tools#Connect_your_PymateIO | |||
}} | |||
{{ttuto | |||
|label=REPL | |||
|descr=The MicroPython command line | |||
|img=tlogo-repl.jpg | |||
|link=micropython-repl | |||
}} | |||
{{ttuto | |||
|label=Startup scripts | |||
|descr=What are main.py and boot.py | |||
|img=tlogo-micropython-main.jpg | |||
|link=micropython-main-boot | |||
}} | |||
{{ttuto-end}} | |||
== Programming First-step == | == Programming First-step == | ||
{{ | {{ttuto-begin}} | ||
{{ttuto | |||
|label=PymateIO | |||
|descr=Access Input and outputs with PymateIO | |||
|img=tlogo-pymateio.jpg | |||
|link=PymateIO | |||
}} | |||
{{ttuto | |||
|label=Input/Output | |||
|descr=Wiring and using DI and DO | |||
|img=tlogo-input-output.jpg | |||
|link=Pymate-Input-Output | |||
}} | |||
{{ttuto | |||
|label=Analog | |||
|descr=Wiring and using Analog Input | |||
|img=tlogo-analog.jpg | |||
|link=Pymate-Analog | |||
}} | |||
{{ttuto | |||
|label=User button | |||
|descr=Managing user button in code | |||
|img=tlogo-user-button.png | |||
|link=Pymate-User-Button | |||
}} | |||
{{ttuto | |||
|label=User LEDs | |||
|descr=Managing user LEDs with code | |||
|img=tlogo-user-leds.png | |||
|link=Pymate-User-LEDs | |||
}} | |||
{{ttuto | |||
|label=RealTime Clock | |||
|descr=Geting an accurate date and time | |||
|img=tlogo-rtc.png | |||
|link=Pymate-RealTime-Clock | |||
}} | |||
{{ttuto | |||
|label=Cycle timing | |||
|descr=Measuring mainloop execution time | |||
|img=tlogo-cycle-timing.png | |||
|link=Pymate-cycle-timing | |||
}} | |||
{{ttuto | |||
|label=16ADI16DO Tour | |||
|descr=Tour of the PymateIO 16 Analog-DataIn and 16 DataOut board. | |||
|img=tlogo-16adi16do.jpg | |||
|link=Pymate-16ADI16DO-Tour | |||
}} | |||
{{ttuto | |||
|label=16ADI16DO Usage | |||
|descr=Using the 16ADI16DO expansion with PymateIO | |||
|img=tlogo-16adi16do.jpg | |||
|link=Pymate-16ADI16DO-introduction | |||
}} | |||
{{ttuto | |||
|label=RS485 Basics | |||
|descr=Accessing directly the RS485 bus to read/write sensors | |||
|img=tlogo-RS485.png | |||
|link=Pymate-RS485-basic | |||
}} | |||
{{ttuto | |||
|label=Modbus | |||
|descr=Using Modbus RTU over RS485. Use PymateIO as Modbus Master. Example with Wind Dir., Power Meter, Temp/Humidity/Lux meter. | |||
|img=tlogo-modbus.png | |||
|link=Pymate-Modbus-basic | |||
}} | |||
{{ttuto-end}} | |||
== Common use-cases == | == Common use-cases == | ||
{{ | |||
{{ttuto-begin}} | |||
{{ttuto | |||
|label=Remote Control | |||
|descr=Click once to power it on. Click again to power it off. | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-remote-control | |||
}} | |||
{{ttuto | |||
|label=Time Relay | |||
|descr=Click to power/light-up for a given amount of time. | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-time-relay | |||
}} | |||
{{ttuto | |||
|label=Delaying in code | |||
|descr=Learn how to implement a '''no blocking delay''' within your loop. Using DS18B20 with '''OneWire''' protocol to demonstrate the behavior. | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-Delaying | |||
}} | |||
{{ttuto | |||
|label=Hysteresis | |||
|descr=Hysteresis management in running process. Discover the HeaterHis and CoolerHis controller class. | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-hysteresis | |||
}} | |||
{{ttuto | |||
|label=Value Mapping | |||
|descr=Great Trick to save time and coding | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-mapping | |||
}} | |||
{{ttuto | |||
|label=PID Regulation | |||
|descr=Running the software PID controller included within Pymate | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-PID-controler | |||
}} | |||
{{ttuto | |||
|label=LED Tuning | |||
|descr=LED can do so much more than being on or off.<br />HeartBeat, Pulsing, ErrorCode and more can be so useful. | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-LED-Tuning | |||
|traduction=1 | |||
}} | |||
{{ttuto | |||
|label=Interrupt Request | |||
|descr=Being quickly warned of an event! | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-IRQ | |||
|traduction=1 | |||
}} | |||
{{ttuto | |||
|label=Watchdog | |||
|descr=Re-inforce Cycle Time with WatchDog | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-watchdog | |||
|traduction=1 | |||
}} | |||
{{ttuto | |||
|label=Data Logging | |||
|descr=Permanent storage of history, sensor data, etc | |||
|img=tlogo-usecases.png | |||
|link=PymateIO-data-logging | |||
|traduction=1 | |||
}} | |||
{{ttuto | |||
|label=HMI Display | |||
|descr=Setup the HMI display and create the Pymate script accordingly. | |||
|img=tlogo-hmi-display.png | |||
|link=PymateIO-HMI | |||
}} | |||
{{ttuto | |||
|label=HMI Display | |||
|descr=A second example with numeric input on the HMI display | |||
|img=tlogo-hmi-display.png | |||
|link=PymateIO-HMI-numeric-input | |||
}} | |||
{{ttuto-end}} | |||
== Mini projects == | == Mini projects == | ||
| Line 92: | Line 345: | ||
* Tank refill | * Tank refill | ||
== Expansion programming == | == Pymate Expansion programming == | ||
{{ | {{ttuto-begin}} | ||
{{ttuto | |||
|label=Board_ID | |||
|descr=Identification of expansion board | |||
|img=tlogo-board-id.png | |||
|link=PymateIO-about-board_id | |||
}} | |||
{{ttuto | |||
|label=CAN Scan | |||
|descr=Scanning the CAN bus for boards and check for CAN error. | |||
|img=tlogo-can-scan.png | |||
|link=PymateIO-CAN-Scan | |||
}} | |||
{{ttuto | |||
|label=Programming | |||
|descr=How to control your 16ADI/16DO expansion. Input/Output/Analog/etc. | |||
|img=tlogo-can-scan.png | |||
|link=PymateIO-16ADI16DO programming | |||
|traduction=1 | |||
}} | |||
{{ttuto | |||
|label=Change Board_ID | |||
|descr=How to change the 16ADI16DO board identification on the CAN bus. | |||
|img=tlogo-board-id.png | |||
|link=Pymate-16ADI16DO-Tour#Configuration_procedure | |||
}} | |||
{{ttuto-end}} | |||
== PymateIO Expansion Bus == | |||
{{ttuto-begin}} | |||
{{ttuto | |||
|label=Connector | |||
|descr=Pymate.IO Expansion connector in details | |||
|img=tlogo-pymate-expansion-connector.png | |||
|link=PymateIO-Expansion-Connector | |||
}} | |||
{{ttuto | |||
|label=I2C Bus | |||
|descr=Accessing I2C bus | |||
|img=tlogo-pymate-i2c.png | |||
|link=PymateIO-I2C-Bus | |||
}} | |||
{{ttuto | |||
|label=SPI Bus | |||
|descr=Identification of expansion board | |||
|img=tlogo-pymate-spi.png | |||
|link=PymateIO-SPI-Bus | |||
|traduction=1 | |||
}} | |||
{{ttuto | |||
|label=CAN Bus | |||
|descr=Accessing CAN | |||
|img=tlogo-pymate-can.png | |||
|link=PymateIO-CAN-bus | |||
|traduction=11 | |||
}} | |||
{{ttuto | |||
|label=OneWire | |||
|descr=Using OneWire protocol on the Pymate Expansion (part of another turotial). | |||
|img=tlogo-one-wire.png | |||
|link=PymateIO-Delaying#Wiring_DS18B20 | |||
}} | |||
{{ttuto-end}} | |||
== Advanced programming == | == Advanced programming == | ||
| Line 106: | Line 427: | ||
* Creating tasks | * Creating tasks | ||
* Scheduling tasks | * Scheduling tasks | ||
== References == | == References == | ||
Latest revision as of 00:41, 12 September 2026
About PymateIO
PymateIO EcoSystem
PymateIO is expandable by design starting with few board, new arrivals should come with time.
Key products
|
PymateIO Core Core8ADI8DOSC
|
|
PymateIO 16ADI16DO expansion
|
|
CommandHMI [COMING SOON]
|
Product Nomenclature
| Letter | Feature |
|---|---|
| DI | Digital Input. It is prefixed with the number of input (ex : 8DI or 8ADI).
May be in combination with A. |
| A | Analog Input. It is prefixed with the number of analog input (ex : 8A or 8ADI).
May be in combination with DI. |
| DO | Digital Output. It is prefixed with the number of analog output. |
| S | Serial (RS485, MODBUS RTU) |
| C | CAN bus |
| P | SPI bus |
| I | I2C bus |
| U | UART |
| T | Modbus TCP |
Products tour
Programming HowTo
Programming First-step
Using Modbus RTU over RS485. Use PymateIO as Modbus Master. Example with Wind Dir., Power Meter, Temp/Humidity/Lux meter.
Common use-cases
Learn how to implement a no blocking delay within your loop. Using DS18B20 with OneWire protocol to demonstrate the behavior.
Hysteresis management in running process. Discover the HeaterHis and CoolerHis controller class.
TRAVAUX EN COURS. LED can do so much more than being on or off.
HeartBeat, Pulsing, ErrorCode and more can be so useful.
Mini projects
- Tank refill
Pymate Expansion programming
TRAVAUX EN COURS. How to control your 16ADI/16DO expansion. Input/Output/Analog/etc.
PymateIO Expansion Bus
Advanced programming
- About asyncio
- Creating tasks
- Scheduling tasks
References
- PymateIO library
- Helper libraries

























