|
Demand Peripherals
Robotic and Industrial Controls for Linux |
|
BaseBoard Prototyping Pin Peripherals BaseBoard IO Dual DC Motor H-Bridge Controller Dual H-Bridge Controller Bipolar Stepper Controller Unipolar Stepper Controller Quad Servo Controller Octal Servo Controller Dual Quadrature Decoder Maxbotix Range Sensor Ping))) Range Sensor IR Receiver IR Transmitter RC Receiver Quad PWM Input Quad PWM Output Octal PWM Output Quad Counter Quad Bidirectional IO Octal Bidirectional IO Watchdog Timer Tone Generator Quad Pattern Generator Octal Pattern Generator |
Since the Linux API to our peripherals are real Linux device drivers, you can write your high-level application in almost any programming language: C, C++, Java, Perl, PHP, or Python. You can even use BASH to control your hardware ...
Open source device drivers are available for all of the
peripherals listed to the left. Take your pick!
The Demand Peripherals BaseBoard4 has an FPGA at its core.
This means that we don't determine which peripherals to put
on your controller, You do!
The BaseBoard4 has ten peripheral "slots". Slot 1 is reserved for the buttons and LEDs on the BaseBoard but the other nine slots are available for your peripherals. Examine the list of peripherals in the left hand column of this web page and select the ones you want on your controller. Note that most of the peripherals use half of the 16-pin connector but some use the full 16 pins of the connector. Once you have selected your peripherals visit the Support page "Build Your FPGA Image" to generate the BaseBoard4 FPGA image for your peripherals.
Your selection of Pin Peripherals is included in the price of
the BaseBoard and as your design evolves you can request
additional FPGA images at no additional cost.
This photograph shows demonstration hardware connected in what
might be a typical system. From slot 2 in the lower left,
counter-clockwise to slot 10 at the top, the peripherals shown
are:- Dual Quadrature Decoder - Quad Event/Frequency Counter - Bipolar Stepper Motor Controller - Unipolar Stepper Motor Controller - Quad Output Pattern Generator - Quad Parallax Ping))) Interface - Dual H-Bridge Motor Controller - Quad Servo Motor Controller The BaseBoard appears as a USB serial port to the host computer. A protocol (described here) over the USB-serial link controls the FPGA-based peripherals. The low level protocol is awkward to use so most of the time you'll want to use dpdaemon, our user-space driver, to make the peripherals visible as device nodes in the /dev directory. The DPDameon Quick Start Guide (available as HTML and PDF) shows how to install the daemon. With dpdaemon running the peripherals in this example would appear to your high level applications as: /dev/dp0/s00_enumerator/README /dev/dp0/s00_enumerator/DPCore_info /dev/dp0/s01_bb4io/README /dev/dp0/s01_bb4io/buttons /dev/dp0/s01_bb4io/leds /dev/dp0/s02_quad2/README /dev/dp0/s02_quad2/step0 /dev/dp0/s02_quad2/step1 /dev/dp0/s02_quad2/update_period0 /dev/dp0/s02_quad2/update_period1 /dev/dp0/s03_count4/README /dev/dp0/s03_count4/update_period0 /dev/dp0/s03_count4/count0 /dev/dp0/s03_count4/total0 /dev/dp0/s03_count4/update_period1 /dev/dp0/s03_count4/count1 /dev/dp0/s03_count4/total1 /dev/dp0/s03_count4/update_period2 /dev/dp0/s03_count4/count2 /dev/dp0/s03_count4/total2 /dev/dp0/s03_count4/update_period3 /dev/dp0/s03_count4/count3 /dev/dp0/s03_count4/total3 /dev/dp0/s04_stepb/README /dev/dp0/s04_stepb/config /dev/dp0/s04_stepb/count /dev/dp0/s04_stepb/addcount /dev/dp0/s05_stepu/README /dev/dp0/s05_stepu/config /dev/dp0/s05_stepu/count /dev/dp0/s05_stepu/addcount /dev/dp0/s06_patgen4/README /dev/dp0/s06_patgen4/config /dev/dp0/s06_patgen4/pattern /dev/dp0/s06_simple4/status /dev/dp0/s07_ping4/README /dev/dp0/s07_ping4/distance /dev/dp0/s07_ping4/enable /dev/dp0/s08_hb2/README /dev/dp0/s08_hb2/mode0 /dev/dp0/s08_hb2/mode1 /dev/dp0/s08_hb2/speed0 /dev/dp0/s08_hb2/speed1 /dev/dp0/s08_hb2/PWMfrequency /dev/dp0/s08_hb2/shootthroughtime /dev/dp0/s08_hb2/slow_start0 /dev/dp0/s08_hb2/slow_start1 /dev/dp0/s08_hb2/slow_stop0 /dev/dp0/s08_hb2/slow_stop1 /dev/dp0/s08_hb2/watchdog /dev/dp0/s10_servo4/README /dev/dp0/s10_servo4/servo0 /dev/dp0/s10_servo4/servo1 /dev/dp0/s10_servo4/servo2 /dev/dp0/s10_servo4/servo3 /dev/dp0/s10_servo4/servogroupThe first BaseBoard connected to the host is designated as 'dp0', the second as 'dp1', and so forth. The slot number and the type of peripheral is encoded as the directories beneath the board.
The intent of this example is to give you an idea of what to
expect when using Pin Peripherals. You can find more information
about each of the peripherals in this example in the peripheral's
data sheet.
|
|