final Update for today
This commit is contained in:
parent
b1915f6420
commit
3fb3aa0cdf
26
README.md
26
README.md
@ -32,10 +32,17 @@ TODO
|
|||||||
Should i add this?
|
Should i add this?
|
||||||
-[ ] RC Servo Support
|
-[ ] RC Servo Support
|
||||||
|
|
||||||
# compatiblity
|
# Compatiblity
|
||||||
This software works with LinuxCNC 2.8, 2.9 and 2.10.
|
This software works with LinuxCNC 2.8, 2.9 and 2.10.
|
||||||
For 2.8 however you have to change #!/usr/bin/python3.9 in the first line of arduino.py to #!/usr/bin/python2.7.
|
For 2.8 however you have to change #!/usr/bin/python3.9 in the first line of arduino.py to #!/usr/bin/python2.7.
|
||||||
|
|
||||||
|
# Configuration
|
||||||
|
To Install LinuxCNC_ArduinoConnector.ino on your Arduino first work through the settings in the beginning of the file.
|
||||||
|
The Settings are commented in the file.
|
||||||
|
|
||||||
|
To test you Arduino you can connect to it after flashing with the Arduino IDE. Set your Baudrate to 115200.
|
||||||
|
In the Beginning the ARduino will Spam ```E0:0``` to the console. This is used to establish connection.
|
||||||
|
Just return ```E0:0``` to it. You can now communicate with the Arduino. Further info is in the Chapter [Serial Communication](#serial-communication-over-usb)
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
1. configure the Firmware file to your demands and flash it to your arduino
|
1. configure the Firmware file to your demands and flash it to your arduino
|
||||||
@ -67,16 +74,16 @@ You can now use arduino pins in your hal file.
|
|||||||
Pin Names are named arduino.[Pin Type]-[Pin Number]. Example:
|
Pin Names are named arduino.[Pin Type]-[Pin Number]. Example:
|
||||||
arduino.digital-in-32 for Pin 32 on an Arduino Mega2560
|
arduino.digital-in-32 for Pin 32 on an Arduino Mega2560
|
||||||
|
|
||||||
# analog Inputs
|
# Analog Inputs
|
||||||
These are used for example to connect Potentiometers. You can add as many as your Arduino has Analog Pins.
|
These are used for example to connect Potentiometers. You can add as many as your Arduino has Analog Pins.
|
||||||
The Software has a smoothing parameter, which will remove jitter.
|
The Software has a smoothing parameter, which will remove jitter.
|
||||||
|
|
||||||
# digital Inputs
|
# Digital Inputs
|
||||||
Digital Inputs use internal Pullup Resistors. So to trigger them you just short the Pin to Ground. There are two Digital Input Types implemented.
|
Digital Inputs use internal Pullup Resistors. So to trigger them you just short the Pin to Ground. There are two Digital Input Types implemented.
|
||||||
Don't use them for Timing or Safety relevant Stuff like Endstops or Emergency Switches.
|
Don't use them for Timing or Safety relevant Stuff like Endstops or Emergency Switches.
|
||||||
1. INPUTS uses the spezified Pins as Inputs. The Value is parsed to LinuxCNC dirketly. There is also a inverted Parameter per Pin.
|
1. INPUTS uses the spezified Pins as Inputs. The Value is parsed to LinuxCNC dirketly. There is also a inverted Parameter per Pin.
|
||||||
2. Trigger INPUTS (SINPUTS) are handled like INPUTS, but simulate Latching Buttons. So when you press once, the Pin goes HIGH and stays HIGH, until you press the Button again.
|
2. Trigger INPUTS (SINPUTS) are handled like INPUTS, but simulate Latching Buttons. So when you press once, the Pin goes HIGH and stays HIGH, until you press the Button again.
|
||||||
# digital Outputs
|
# Digital Outputs
|
||||||
Digital Outputs drive the spezified Arduinos IO's as Output Pins. You can use it however you want, but don't use it for Timing or Safety relevant Stuff like Stepper Motors.
|
Digital Outputs drive the spezified Arduinos IO's as Output Pins. You can use it however you want, but don't use it for Timing or Safety relevant Stuff like Stepper Motors.
|
||||||
# support of Digital RGB LEDs like WS2812 or PL9823
|
# support of Digital RGB LEDs like WS2812 or PL9823
|
||||||
Digital LED's do skale very easily, you only need one Pin to drive an infinite amount of them.
|
Digital LED's do skale very easily, you only need one Pin to drive an infinite amount of them.
|
||||||
@ -97,7 +104,7 @@ The Setting in Arduino is:
|
|||||||
|
|
||||||
```int DledOffColors[DLEDcount][3] = {{255,0,0}};```
|
```int DledOffColors[DLEDcount][3] = {{255,0,0}};```
|
||||||
Easy right?
|
Easy right?
|
||||||
# latching Potentiometers
|
# Latching Potentiometers / Selector Switches
|
||||||
This is a special Feature for rotary Selector Switches. Instead of loosing one Pin per Selection you can turn your Switch in a Potentiometer by soldering 10K resistors between the Pins and connecting the Selector Pin to an Analog Input.
|
This is a special Feature for rotary Selector Switches. Instead of loosing one Pin per Selection you can turn your Switch in a Potentiometer by soldering 10K resistors between the Pins and connecting the Selector Pin to an Analog Input.
|
||||||
The Software will divide the Measured Value and create Hal Pins from it. This way you can have Selector Switches with many positions while only needing one Pin for it.
|
The Software will divide the Measured Value and create Hal Pins from it. This way you can have Selector Switches with many positions while only needing one Pin for it.
|
||||||
|
|
||||||
@ -115,8 +122,12 @@ This can be either an LED connected to an Output Pin or you can select one LED i
|
|||||||
|
|
||||||
# Serial communication over USB
|
# Serial communication over USB
|
||||||
The Send and receive Protocol is <Signal><PinNumber>:<Pin State>
|
The Send and receive Protocol is <Signal><PinNumber>:<Pin State>
|
||||||
To begin Transmitting Ready is send out and expects to receive E: to establish connection. Afterwards Data is exchanged.
|
After Bootup the Arduino will continuously print E0:0 to Serial. Once the Host Python skript runs and connects, it will answer and hence the Arduino knows, the connection is established.
|
||||||
Data is only send everythime it changes once.
|
|
||||||
|
For testing you can still connect to it with your Serial terminal. Send ```E0:0```, afterwards it will listen to your commands and post Input Changes.
|
||||||
|
|
||||||
|
Data is always only send once, everytime it changes.
|
||||||
|
|
||||||
| Signal | Header |direction |Values |
|
| Signal | Header |direction |Values |
|
||||||
| ------------- | ------------- |------------- |------------- |
|
| ------------- | ------------- |------------- |------------- |
|
||||||
| Inputs & Toggle Inputs | I | write only |0,1 |
|
| Inputs & Toggle Inputs | I | write only |0,1 |
|
||||||
@ -126,7 +137,6 @@ Data is only send everythime it changes once.
|
|||||||
| Analog Inputs | A | write only |0-1024 |
|
| Analog Inputs | A | write only |0-1024 |
|
||||||
| Latching Potentiometers | L | write only |0-max Position|
|
| Latching Potentiometers | L | write only |0-max Position|
|
||||||
| Absolute Encoder input | K | write only |0-32 |
|
| Absolute Encoder input | K | write only |0-32 |
|
||||||
| ------------- | ------------- |------------- |------------- |
|
|
||||||
| Connection established | E | read/ write |0:0 |
|
| Connection established | E | read/ write |0:0 |
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user