WiShield Support for Clodiuno

I have added support for multiple protocols along with an implementation for WiShield, which provides Wi-Fi connectivity to Arduino and allows you to get rid of that USB cable while using Clodiuno.

Following is a quick snippet that demonstrates both protocols in action, we read the potentiometer value over Wi-Fi from an Arduino and write it through Firmata to another Arduino,

(ns wishield-to-firmata
  (:use clodiuno.core)
  (:use clodiuno.firmata)
  (:use clodiuno.wishield))

(defmacro forever [& body] `(try (while true  ~@body) (catch Exception e#)))

(defn map-int [x in-min in-max out-min out-max]
  (+ (/ (* (- x in-min) (- out-max out-min)) (- in-max in-min)) out-min))

(def wishield (arduino :wishield "10.0.2.100" 1000))
(def firmata (arduino :firmata "/dev/tty.usbserial-A6008nhh"))

;;allow firmata to boot
(Thread/sleep 5000)

(pin-mode wishield 5 ANALOG)
(pin-mode firmata 3 PWM)

(forever
 (let [pot-val (analog-read wishield 5)
       pwm-val (int (map-int pot-val 0 1023 0 255))] 
   (println pot-val)
   (analog-write firmata 3 pwm-val)))

;;(close firmata)
;;(close wishield)