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)