Main Page: Difference between revisions

From pymate.io wiki
Jump to navigation Jump to search
 
(33 intermediate revisions by the same user not shown)
Line 217: Line 217:


{{ttuto
{{ttuto
   |label=16ADI16DO intro
   |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
   |descr=Using the 16ADI16DO expansion with PymateIO
   |img=tlogo-cycle-timing.jpg
   |img=tlogo-16adi16do.jpg
   |link=Pymate-16ADI16DO-introduction
   |link=Pymate-16ADI16DO-introduction
  |traduction=1
}}
}}


{{ttuto
{{ttuto
   |label=RS485 Basics
   |label=RS485 Basics
   |descr=Direct access to RS485 bus
   |descr=Accessing directly the RS485 bus to read/write sensors
   |img=tlogo-RS485.jpg
   |img=tlogo-RS485.png
   |link=Pymate-RS485-basic
   |link=Pymate-RS485-basic
   |traduction=1
}}
 
{{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
}}
}}


Line 241: Line 253:
   |label=Remote Control
   |label=Remote Control
   |descr=Click once to power it on. Click again to power it off.
   |descr=Click once to power it on. Click again to power it off.
   |img=tlogo-remote-control.png
   |img=tlogo-usecases.png
   |link=PymateIO-remote-control
   |link=PymateIO-remote-control
  |traduction=1
}}
}}


{{ttuto
{{ttuto
   |label=Time Relay
   |label=Time Relay
   |descr=Click to power/light-up for a while.
   |descr=Click to power/light-up for a given amount of time.
   |img=tlogo-time-relay.png
   |img=tlogo-usecases.png
   |link=PymateIO-time-relay
   |link=PymateIO-time-relay
   |traduction=1
}}
 
{{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
{{ttuto
   |label=Hysteresis  
   |label=Hysteresis  
   |descr=Hysteresis management in running process
   |descr=Hysteresis management in running process. Discover the HeaterHis and CoolerHis controller class.
   |img=tlogo-histeresys.png
   |img=tlogo-usecases.png
   |link=PymateIO-hysteresis
   |link=PymateIO-hysteresis
  |traduction=1
}}
}}


Line 265: Line 281:
   |label=Value Mapping
   |label=Value Mapping
   |descr=Great Trick to save time and coding
   |descr=Great Trick to save time and coding
   |img=tlogo-mapping.png
   |img=tlogo-usecases.png
   |link=PymateIO-mapping
   |link=PymateIO-mapping
   |traduction=1
   |traduction=1
Line 272: Line 288:
{{ttuto
{{ttuto
   |label=PID Regulation
   |label=PID Regulation
   |descr=Running a PID controller on Pymate
   |descr=Running the software PID controller included within Pymate
   |img=tlogo-pid.png
   |img=tlogo-usecases.png
   |link=PymateIO-PID-controler
   |link=PymateIO-PID-controler
   |traduction=1
   |traduction=1
Line 281: Line 297:
   |label=LED Tuning
   |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.
   |descr=LED can do so much more than being on or off.<br />HeartBeat, Pulsing, ErrorCode and more can be so useful.
   |img=tlogo-LED-Tuning.png
   |img=tlogo-usecases.png
   |link=PymateIO-LED-Tuning
   |link=PymateIO-LED-Tuning
   |traduction=1
   |traduction=1
Line 289: Line 305:
   |label=Interrupt Request
   |label=Interrupt Request
   |descr=Being quickly warned of an event!
   |descr=Being quickly warned of an event!
   |img=tlogo-IRQ.png
   |img=tlogo-usecases.png
   |link=PymateIO-IRQ
   |link=PymateIO-IRQ
   |traduction=1
   |traduction=1
Line 297: Line 313:
   |label=Watchdog
   |label=Watchdog
   |descr=Re-inforce Cycle Time with WatchDog
   |descr=Re-inforce Cycle Time with WatchDog
   |img=tlogo-watchdog.png
   |img=tlogo-usecases.png
   |link=PymateIO-watchdog
   |link=PymateIO-watchdog
   |traduction=1
   |traduction=1
Line 305: Line 321:
   |label=Data Logging
   |label=Data Logging
   |descr=Permanent storage of history, sensor data, etc
   |descr=Permanent storage of history, sensor data, etc
   |img=tlogo-data-logging.png
   |img=tlogo-usecases.png
   |link=PymateIO-data-logging
   |link=PymateIO-data-logging
   |traduction=1
   |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
}}
}}


Line 324: Line 355:
   |img=tlogo-board-id.png
   |img=tlogo-board-id.png
   |link=PymateIO-about-board_id
   |link=PymateIO-about-board_id
  |traduction=1
}}
}}


Line 347: Line 377:
   |img=tlogo-board-id.png
   |img=tlogo-board-id.png
   |link=Pymate-16ADI16DO-Tour#Configuration_procedure
   |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
}}
}}


Line 356: Line 429:
* Creating tasks
* Creating tasks
* Scheduling tasks
* Scheduling tasks
== PymateIO Expansion Bus ==
{{traduction}}
* The connector
* Accessing I2C bus
* Accessing SPI bus
* About CAN bus


== References ==
== References ==

Latest revision as of 00:35, 7 July 2026

About PymateIO

Pymate-powered-by-micropython.png

PymateIO is an affordable Industrial Controler (PLC) Powered with MicroPython.
PymateIO is ready for Industry, Reliable, Developer-Friendly and Easy to Install.

Micro Python is an optimized version of Python 3 dedicated to embedded systems like microcontollers.
Python scripts are stored on the device and running on z bare metal Python Virtual Machine (like computer does).

PymateIO EcoSystem

PymateIO is expandable by design starting with few board, new arrivals should come with time.


Key products

Pymate-core-angle-small.png PymateIO Core Core8ADI8DOSC
  • DIN rail mounting
  • Spring cage connector
  • 8-28V power supply
  • 8 digital inputs 12/24V tolerant
  • up 8 configurable analog inputs (10V max)
  • 8 digital outputs (PNP, 250mA, High Side control)
  • 1 user button, 2 user LEDs
  • Native Modbus via RS485
  • Dedicated status LEDs for each Inputs/Outputs
  • Expandable by design with LTE-M, WiFi, Ethernet, relays, analog I/Os, PT100, Zigbee, and more,..
  • Native USB support
  • MicroPython support with libraries
  • Developper friendly
  • Core8ADI8DOSC product tour

TODO:Link to shop

Pymate-16adi16do-angle-small.png 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
  • 16ADI16DO expansion tour

TODO:Link to shop

Pymate-hmi-angle-small.png 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
  • Read more

TODO:Link to shop

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

Core board

Tlogo-core.jpg

Tour of the PymateIO Core board.

16ADI16DO board

Tlogo-16adi16do.jpg

Tour of the PymateIO 16 Analog-DataIn and 16 DataOut board.

 

Programming HowTo

MicroPython

Tlogo-about-MicroPython.jpg

What is MicroPython?

Thonny IDE

Tlogo-thonny.jpg

Prepare your MicroPython IDE environment.

Connect Pymate

Tlogo-connect.jpg

Connecting the board

REPL

Tlogo-repl.jpg

The MicroPython command line

Startup scripts

Tlogo-micropython-main.jpg

What are main.py and boot.py

 

Programming First-step

PymateIO

Tlogo-pymateio.jpg

Access Input and outputs with PymateIO

Input/Output

Tlogo-input-output.jpg

Wiring and using DI and DO

Analog

Tlogo-analog.jpg

Wiring and using Analog Input

User button

Tlogo-user-button.png

Managing user button in code

User LEDs

Tlogo-user-leds.png

Managing user LEDs with code

RealTime Clock

Tlogo-rtc.png

Geting an accurate date and time

Cycle timing

Tlogo-cycle-timing.png

Measuring mainloop execution time

16ADI16DO Tour

Tlogo-16adi16do.jpg

Tour of the PymateIO 16 Analog-DataIn and 16 DataOut board.

16ADI16DO Usage

Tlogo-16adi16do.jpg

Using the 16ADI16DO expansion with PymateIO

RS485 Basics

Tlogo-RS485.png

Accessing directly the RS485 bus to read/write sensors

Modbus

Tlogo-modbus.png

Using Modbus RTU over RS485. Use PymateIO as Modbus Master. Example with Wind Dir., Power Meter, Temp/Humidity/Lux meter.

 

Common use-cases

Remote Control

Tlogo-usecases.png

Click once to power it on. Click again to power it off.

Time Relay

Tlogo-usecases.png

Click to power/light-up for a given amount of time.

Delaying in code

Tlogo-usecases.png

Learn how to implement a no blocking delay within your loop. Using DS18B20 with OneWire protocol to demonstrate the behavior.

Hysteresis

Tlogo-usecases.png

Hysteresis management in running process. Discover the HeaterHis and CoolerHis controller class.

Value Mapping

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Great Trick to save time and coding

PID Regulation

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Running the software PID controller included within Pymate

LED Tuning

Tlogo-under-construction.jpg

TRAVAUX EN COURS. LED can do so much more than being on or off.
HeartBeat, Pulsing, ErrorCode and more can be so useful.

Interrupt Request

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Being quickly warned of an event!

Watchdog

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Re-inforce Cycle Time with WatchDog

Data Logging

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Permanent storage of history, sensor data, etc


HMI Display

Tlogo-hmi-display.png

Setup the HMI display and create the Pymate script accordingly.

HMI Display

Tlogo-hmi-display.png

A second example with numeric input on the HMI display

 

Mini projects

Page-under-construction.pngPage(s) under construction.
  • Tank refill

Pymate Expansion programming

Board_ID

Tlogo-board-id.png

Identification of expansion board

CAN Scan

Tlogo-can-scan.png

Scanning the CAN bus for boards and check for CAN error.

Programming

Tlogo-under-construction.jpg

TRAVAUX EN COURS. How to control your 16ADI/16DO expansion. Input/Output/Analog/etc.

Change Board_ID

Tlogo-board-id.png

How to change the 16ADI16DO board identification on the CAN bus.

 

PymateIO Expansion Bus

Connector

Tlogo-pymate-expansion-connector.png

Pymate.IO Expansion connector in details

I2C Bus

Tlogo-pymate-i2c.png

Accessing I2C bus

SPI Bus

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Identification of expansion board

CAN Bus

Tlogo-under-construction.jpg

TRAVAUX EN COURS. Accessing CAN

OneWire

Tlogo-one-wire.png

Using OneWire protocol on the Pymate Expansion (part of another turotial).

 

Advanced programming

Page-under-construction.pngPage(s) under construction.
  • About asyncio
  • Creating tasks
  • Scheduling tasks

References

Page-under-construction.pngPage(s) under construction.
  • PymateIO library
  • Helper libraries