Python how-to: AndroiDAQ and Serial Communications

Python and AndroiDAQ

One thing that sets the AndroiDAQ module from other data acquisition products on the market is its use of the industry standard FTDI UART to USB conversion integrated circuit for USB serial communications. This allows the designer to use one easy to use USB driver for programming with the AndroiDAQ module in the various popular programming languages and on various operating system platforms, which at times can be a very taunting task with other commercially available data acquisition products. This also makes it easy to develop your application for the AndroiDAQ module in not only Android, Java, and LabVIEW, but for other popular programming languages like Python, which can also be used on multiple platforms. This article is going to present to you how to set up Python for serial communication, via the USB port, so that you can add Python to your list of tools for controlling and reading the AndroiDAQ module. 

AndroiDAQ oScope, an Oscilloscope for LabVIEW

Introducing the AndroiDAQ oScope for LabVIEW®.



The AndroiDAQ oScope for LabVIEW is a new LabVIEW application VI that is now included in Controlled Capture Systems’ AndroiDAQ DEMO for LabVIEW library project. oScope allows you to acquire a user set number of analog to digital samples at user set time-based intervals, much like a digital oscilloscope. oScope uses LabVIEW’s Waveform graph to plot the received sample data from the AndroiDAQ module to give you a visual representation of the signal on channel zero of the AndroiDAQ ADC.


The Wonders of Analog to Digital Conversion

Analog to Digital

In the digital world, information is shared through software using multiple digital patterns of ones and zeros. These digital patterns can represent alphanumeric characters, mathematical operations, memory commands, or any other representative data that when decoded by software, corresponds to understandable information based on an agreed upon model of the digital patterns and data manipulation methods. This is all well and good for applications of math calculation, word processing, database entry, and other symbol based system uses, however, one can ask: how does one get real world physical data into a format of digital patterns that can be used by computers to measure, display, calculate upon, and manipulate the data?


A New Paradigm for Data Acquisition

Like many design engineers and makers versed in open source, I wanted a development board that would allow me to eliminate the compromises in my designs due to manufacturer propriety hardware and software. I was never really happy with the number of channel offerings, firmware limitations, physical size, and costs per channel of commercially available data acquisition products currently on the market today. I was also not satisfied with other simplistic project platforms like the Ardruino and IOIO for use on projects like hexapods, quadcopters and other complex robotic systems that need parallel processes, vice linear processes. There had to be a better way and a better development board that could also be open source. So in 2013, I developed an entirely new data acquisition module and prototyping paradigm that I call AndroiDAQ.

AndroiDAQ Targeting System, Using Pan, Tilt, and OpenCV Image Processing

Okay, now that you've read the first three articles about micro-controller and AndroiDAQ interfacing with stepper motors and servo motors, and how to build a pan and tilt assembly head using these motors, you also should know how to control this pan and tilt head with the micro-controller firmware on the AndroiDAQ module. Perhaps you even went as far as coding up some Java code for Android, to give you a touchscreen interfaced joystick, via your Android phone, to wired or wirelessly control your pan and tilt head with the AndroiDAQ module. If this is true, congratulations, as your learning efforts have paid off and you have made it quite far in the understanding of data acquisition, motion control, and robotics; well done!


Pan and Tilt Control with AndroiDAQ

A pan and tilt mechanism is a positional control assembly that controls both the horizontal and vertical positions of a device, like a camera head, that is attached to the head base plate of the assembly. There are many patents, dating back from 1906, which describes pan and tilt mechanisms that were manually operated, via ropes or cords, that were used to move shrouded carbon-arc bulbs for spotlight stage lighting. A 1925 patent suggests the first use of motors to drive a pan and tilt mechanism. A 1936 patent describes a means to move a pan and tilt mechanism via a joystick, vice switches on a switchboard.  Today, pan and tilt positioners are used in hobby and industrial robotics, camera surveillance, defense and homeland security applications. This article will discuss how to construct a simple pan and tilt mechanism using a stepper motor and servo motor. It will also discuss how to control your pan and tilt assembly with a microcontroller data acquisition system such as the AndroiDAQ module.


Android Controlling DC Motors, Complete Article in .pdf

AndroiDAQ image1

Complete article of our five part series: Andriod Driving DC Motors with using the AndroiDAQ Module is

now available below in .pdf format. 

Android Controlling DC Motors using AndroiDAQ

Stepper Motor Control with AndroiDAQ

Stepper motors are common motion control actuators that are used in robotics, radio controlled devices, 3D printers, and other motion driven systems. Using stepper motors with AndroiDAQ is easy. This article contains a brief history of stepper motors, some basic operational background for stepper motors, and how to connect and use stepper motors with the AndroiDAQ data acquisition and control module.



Servo Motor Control with AndroiDAQ

Servo motors are common motion control actuators that are used in robotics, radio controlled devices, 3D printers, and other motion drive systems. Using servo motors with AndroiDAQ is easy. This article contains a brief history of the servo motor, some basic operational background for servo motors, and how to connect and use a servo motor with the AndroiDAQ data acquisition and control module.