Using Connected Devices

The Wolfram Language provides a streamlined framework for connecting to external devices. Many classes of devices listed in the (WebLink[Wolfram Connected Devices Project, http://devices.wolfram.com]) are immediately supported within the Wolfram Language.

Setting Up Devices & Connections

(RefLink[DeviceOpen, paclet:ref/DeviceOpen]) — open a connection to a device

(RefLink[DeviceObject, paclet:ref/DeviceObject]) — representation of a connected device

(RefLink[FindDevices, paclet:ref/FindDevices]) — attempt to find devices available on a particular machine

(RefLink[device[param], paclet:ref/DeviceObject]) — the value of a parameter for a device, often settable with == ((RefLink[Set, paclet:ref/Set]))

Device Types

(StringTypeLink["Serial", paclet:ref/device/Serial]) — generic RS-232/RS-422 serial protocol

(StringTypeLink["GPIO", paclet:ref/device/GPIO]) — general-purpose digital I/O directly from pins

(StringTypeLink["Vernier", paclet:ref/device/Vernier]) — general interface to Vernier Go!Link compatible sensors

(StringTypeLink["Arduino", paclet:ref/device/Arduino]) — Arduino analog and digital I/O and autonomous code execution

(StringTypeLink["Camera", paclet:ref/device/Camera]), (StringTypeLink["RaspiCam", paclet:ref/device/RaspiCam]), ... — cameras for capturing images

(StringTypeLink["OpenAIGym", paclet:ref/device/OpenAIGym]), ... — reinforcement learning environment (video games, etc.)

Reading Unbuffered Data

(RefLink[DeviceRead, paclet:ref/DeviceRead]) — ask to read one item of data from a device, waiting until it is done

(RefLink[DeviceReadList, paclet:ref/DeviceReadList]) — repeatedly read items of data a specified number of times

(RefLink[DeviceReadTimeSeries, paclet:ref/DeviceReadTimeSeries]) — read data at specified times, and construct a time series

Reading Buffered Data

(RefLink[DeviceReadLatest, paclet:ref/DeviceReadLatest]) — read the most recently buffered piece of data from the device

(RefLink[DeviceReadBuffer, paclet:ref/DeviceReadBuffer]) — read the entire contents of the buffer on the device

Writing Unbuffered & Buffered Data

(RefLink[DeviceWrite, paclet:ref/DeviceWrite]) — write a value or list of values to a device

(RefLink[DeviceWriteBuffer, paclet:ref/DeviceWriteBuffer]) — write data to fill the buffer on a device

Executing Commands

(RefLink[DeviceExecute, paclet:ref/DeviceExecute]) — execute a command on a device

(RefLink[DeviceExecuteAsynchronous, paclet:ref/DeviceExecuteAsynchronous]) — initiate an asynchronous command

Stream Interfaces for Devices

(RefLink[DeviceStreams, paclet:ref/DeviceStreams]) — get streams associated with a device

(OrangeLink[Asynchronous & Scheduled Operations », paclet:guide/BackgroundAndScheduledTasks])

(RefLink[ScheduledTask, paclet:ref/ScheduledTask]) — represent a task scheduled to run at particular times

(RefLink[DeviceExecuteAsynchronous, paclet:ref/DeviceExecuteAsynchronous]) — initiate an asynchronous command

Images & Audio

File & API Connections

(OrangeLink[Publish/Subscribe Channel Communications », paclet:guide/Channel-BasedCommunication])

(OrangeLink[Low-Level Network Connections », paclet:guide/NetworkProgramming])

(OrangeLink[Wolfram Data Drop, paclet:guide/UsingTheWolframDataDrop])