From 33ee1282e50d039465c84a1cf74a814bae92b999 Mon Sep 17 00:00:00 2001
From: Karol Hennessy <revkarol@gmail.com>
Date: Tue, 31 Mar 2020 01:06:29 +0200
Subject: [PATCH] adding platformio

---
 .gitignore                                    |  1 +
 ansible/playbooks/lists.yml                   |  1 +
 ansible/playbooks/platform-io.sh              |  6 ++
 arduino/Multiloop_skeleton_pio/platformio.ini | 25 ++++++
 .../src/Multiloop_skeleton.ino                | 78 +++++++++++++++++++
 arduino/breathing_loop_only/.gitignore        |  5 ++
 arduino/breathing_loop_only/platformio.ini    | 14 ++++
 arduino/breathing_loop_only/src/main.cpp      | 36 +++++++++
 8 files changed, 166 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 ansible/playbooks/platform-io.sh
 create mode 100644 arduino/Multiloop_skeleton_pio/platformio.ini
 create mode 100644 arduino/Multiloop_skeleton_pio/src/Multiloop_skeleton.ino
 create mode 100644 arduino/breathing_loop_only/.gitignore
 create mode 100644 arduino/breathing_loop_only/platformio.ini
 create mode 100644 arduino/breathing_loop_only/src/main.cpp

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..b25c15b8
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+*~
diff --git a/ansible/playbooks/lists.yml b/ansible/playbooks/lists.yml
index fa4618e0..67311538 100644
--- a/ansible/playbooks/lists.yml
+++ b/ansible/playbooks/lists.yml
@@ -3,5 +3,6 @@ rpi-swlist:
   - cowsay
   - openssh-server
   - minicom
+  - python3-serial
 
   
diff --git a/ansible/playbooks/platform-io.sh b/ansible/playbooks/platform-io.sh
new file mode 100644
index 00000000..d319f533
--- /dev/null
+++ b/ansible/playbooks/platform-io.sh
@@ -0,0 +1,6 @@
+python3 -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/develop/scripts/get-platformio.py)"
+
+# add to path /home/karol/.platformio/penv/bin
+
+pio lib install VariableTimedAction
+pio run -e uno -t upload
diff --git a/arduino/Multiloop_skeleton_pio/platformio.ini b/arduino/Multiloop_skeleton_pio/platformio.ini
new file mode 100644
index 00000000..7568b6b5
--- /dev/null
+++ b/arduino/Multiloop_skeleton_pio/platformio.ini
@@ -0,0 +1,25 @@
+
+[env:uno]
+platform = atmelavr
+framework = arduino
+board = uno
+
+[env:mkrwifi1010]
+platform = atmelsam
+framework = arduino
+board = mkrwifi1010
+
+[env:mkrvidor4000]
+platform = atmelsam
+framework = arduino
+board = mkrvidor4000
+
+[env:featheresp32]
+platform = espressif32
+framework = arduino
+board = featheresp32
+
+[env:nodemcu-32s]
+platform = espressif32
+framework = arduino
+board = nodemcu-32s
diff --git a/arduino/Multiloop_skeleton_pio/src/Multiloop_skeleton.ino b/arduino/Multiloop_skeleton_pio/src/Multiloop_skeleton.ino
new file mode 100644
index 00000000..a35505a9
--- /dev/null
+++ b/arduino/Multiloop_skeleton_pio/src/Multiloop_skeleton.ino
@@ -0,0 +1,78 @@
+// Multi-loops skeleton
+// Description: Shows 3 loops operating in "parallel" reading/writing a global variable
+// Karol Hennessy
+// 2020-03-29
+
+#include <VariableTimedAction.h>
+
+// global variables
+static int globalcnt = 0;
+
+
+
+class SafetyAlarmLoop : public VariableTimedAction
+{
+  private:
+    int cnt = 0; 
+    unsigned long run()
+    {
+      cnt++;
+      Serial.println("SA "+ String(globalcnt));
+      return 0;  
+    }
+  public:
+    int getCnt()
+    {
+      return cnt;  
+    }
+} safetyalarmloop ; 
+
+class BreathingLoop : public VariableTimedAction
+{
+  private:
+    int cnt = 0; 
+    unsigned long run()
+    {
+      cnt++;
+      Serial.println("BR "+ String(cnt));
+      return 0;  
+    }
+  public:
+    int getCnt()
+    {
+      return cnt;  
+    }
+    
+} breathingloop; 
+
+class UILoop : public VariableTimedAction
+{ 
+  private:
+    //int cnt = 0; 
+    unsigned long run()
+    {
+      globalcnt++;
+      Serial.println("UI "+ String(globalcnt));
+      return 0;  
+    }
+  public:
+   /* int getCnt()
+    {
+      return cnt;  
+    }*/
+  
+} uiloop;
+
+
+void setup() {
+  Serial.begin(9600);
+  // note - order is not guaranteed if they all run on the same "cycle"
+  safetyalarmloop.start(1000);
+  //breathingloop.start(500);
+  uiloop.start(1000);
+}
+
+void loop() {
+  // put your main code here, to run repeatedly:
+  VariableTimedAction::updateActions();
+}
diff --git a/arduino/breathing_loop_only/.gitignore b/arduino/breathing_loop_only/.gitignore
new file mode 100644
index 00000000..89cc49cb
--- /dev/null
+++ b/arduino/breathing_loop_only/.gitignore
@@ -0,0 +1,5 @@
+.pio
+.vscode/.browse.c_cpp.db*
+.vscode/c_cpp_properties.json
+.vscode/launch.json
+.vscode/ipch
diff --git a/arduino/breathing_loop_only/platformio.ini b/arduino/breathing_loop_only/platformio.ini
new file mode 100644
index 00000000..ea23b772
--- /dev/null
+++ b/arduino/breathing_loop_only/platformio.ini
@@ -0,0 +1,14 @@
+; PlatformIO Project Configuration File
+;
+;   Build options: build flags, source filter
+;   Upload options: custom upload port, speed and extra flags
+;   Library options: dependencies, extra library storages
+;   Advanced options: extra scripting
+;
+; Please visit documentation for the other options and examples
+; https://docs.platformio.org/page/projectconf.html
+
+[env:uno]
+platform = atmelavr
+board = uno
+framework = arduino
diff --git a/arduino/breathing_loop_only/src/main.cpp b/arduino/breathing_loop_only/src/main.cpp
new file mode 100644
index 00000000..2cbcf393
--- /dev/null
+++ b/arduino/breathing_loop_only/src/main.cpp
@@ -0,0 +1,36 @@
+#include <Arduino.h>
+
+// arduino uno
+    // pwm pins
+const int pin_valve_in       = 11;
+const int pin_valve_out      = 6;
+const int pin_valve_scavenge = 5;
+
+    // adcs
+const int pin_p_supply       = A0;
+const int pin_p_regulated    = A1;
+const int pin_p_buffer       = A2;
+const int pin_p_inhale       = A3;
+const int pin_p_exhale       = A4;
+
+    // leds
+const int pin_led_0          = 0;
+const int pin_led_1          = 0;
+const int pin_led_2          = 0;
+
+    // buzzer
+const int pin_buzzer         = 9;
+
+
+void setup() {
+  Serial.begin(9600);
+}
+
+void loop() {
+  // put your main code here, to run repeatedly:
+  Serial.println("Breathing Only");
+  delay(5000);
+
+  // buzzer 
+  // tone(pin, freq (Hz), duration);
+}
\ No newline at end of file
-- 
GitLab