0
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心
发布
  • 发文章

  • 发资料

  • 发帖

  • 提问

  • 发视频

创作活动
28830

28830

  • 厂商:

    PARALLAXINC.

  • 封装:

    -

  • 描述:

    PROPELLER SERVO CONTROLLER USB

  • 数据手册
  • 价格&库存
28830 数据手册
Web Site: www.parallax.com Forums: forums.parallax.com Sales: sales@parallax.com Technical: support@parallax.com Office: (916) 624-8333 Fax: (916) 624-8003 Sales: (888) 512-1024 Tech Support: (888) 997-8267 Propeller Servo Controller USB (#28830) The Propeller Servo Controller USB allows you to control up to 16 servos by sending serial commands from a microcontroller or PC via serial or USB connection. 32 servos can be controlled when using two Propeller Servo Controllers with a microcontroller. Since the Propeller Servo Controller USB is powered by a Propeller chip and the firmware is open-source, the Propeller Servo Controller USB is also a development platform which can be customized for specific applications. This could include systems that require servos, DC motors, stepper motors and lighting control. Features        Propeller P8X32A based hardware Compatible with previous Parallax servo controllers Separate screw-terminal power supply and power switch for servos Open-source firmware Program via USB interface with PC or serial interface to microcontroller Servo Ramping Network Ready – two units may be linked to control 32 servos (via microcontroller only) Application Ideas    Fun-house prop control Animated art control Robotics Key Specifications     Power requirements: 5 VDC @ ~60 mA for logic, 4.8 – 7.5 VDC for servos (do not exceed your servos’ input voltage rating) Communication: Asynchronous Serial @ 2400 bps or 38.4 kbps (TTL or USB) Operating temperature: 32 to 158 °F (0 to 70 °C) Dimensions: 2.26 x 1.80 x 0.65 in (57.3 x 45.7 x 16.5 mm) Before Connecting Your Propeller Servo Controller USB   Programming the Propeller Servo Controller USB (PSCU) requires regulated 5 VDC. This can come from the USB port when used; (USB A to Mini B cable (#805-00006) required, sold separately). Or, supply 5 VDC to the center terminal on the Serial In header. Servos require a separate power supply connected to the screw terminal. Typically this needs to be from 4.8 – 7.5 VDC, and capable of supplying adequate current for the servos you are connecting. Consult your servos’ documentation for voltage limits and current requirements. Do not exceed 7.5 VDC input. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 1 of 12 Connecting and Testing To get started using your new PSCU follow the directions on the following pages. Choose the type of connection you will be using: USB or TTL Serial via the “Serial In” connection, and then refer to those instructions below. USB Connection If you wish to control your PSCU from a PC using the USB port, then you will first need to install the FTDI VCP drivers. You may obtain the latest drivers for Windows by pointing your web browser to http://www.parallax.com/usbdrivers. You may also obtain drivers for Windows and other operating systems from from the FTDI website at http://www.ftdichip.com/Drivers/VCP.htm. Note: you may already have the USB Windows drivers installed if you have installed the BASIC Stamp Editor or Propeller Tool software or use any Parallax USB development boards. Once the USB driver has been installed, you may connect your USB cable between the PC and the PSCU. You may also connect your servo power supply and servos as shown in the diagram below. The PSCU is now ready to receive serial commands from the host PC. Moving the power switch to the ON position will provide power to the servos. Note that it is not necessary to power on the servos for the PSCU to be ready for serial communication. As long as the USB port is providing power, the PSCU is powered on. You can test your PSCU using the beta PSCI software listed on the PSCU product page on our website. This software will allow you to control servos by moving graphical sliders up and down, and serves as a quick way to verify operation. This software can also store positions for all sixteen channels and play back various position settings in real time as a sequence. The PSCU is shown here connected to a USB cable, two servos, one connected to channel 0 and the other connected to channel 14 and a 7.2V R/C battery back. The 7.2V R/C battery pack provides power for the servos. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 2 of 12 TTL Serial Connection If you wish to control your PSCU from a microcontroller then you will need to obtain a regulated 5 V from the host microcontroller, development board, or you may use a separate regulated 5 V power supply with a common ground. You also need to provide a TTL compatible serial signal to the PSCU. Ground, power and serial signal connections are made to the “Serial In” header as shown below. This 6-pin (2 x 3) header is actually two serial ports, one for incoming data and the other for outgoing data to another PSCU for networking. Notice that the connected cable is attached to the upper three pins with the black (ground) lead toward the outside. This upper port is the incoming serial connection. The lower three pins are used to connect to an additional PSCU for more channels. You can test your PSCU using a BASIC Stamp 2, Board of Education and the code examples provided in the Command Set section of this documentation. Example programs for the BASIC Stamp demonstrate the use of each the commands and display responses for those commands which generate a reply. The PSCU is shown here connected to a Board of Education, two servos, one connected to channel 0 and the other connected to channel 14 and a 7.2 V R/C battery back. The 7.2 V R/C battery pack provides power for the servos. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 3 of 12 Communication Protocol The PSCU supports several commands that are sent to it via serial protocol. These commands can come from the TTL serial interface or the USB port. Both serial inputs run at 2400 bps by default at startup and can be switched to 38.4 kbps by sending a command to the PSCU. The PSCU does not support autobaud with the default firmware installed. The data must be sent non-inverted (true) using 8 data bits, no parity and 1 or 2 stop bits. Command Set Each command is preceded with an exclamation point (!) and the letters, “SC”, so every command will appear as, “!SCxxxx” $0D, where, “!SC” is the preamble, “xxxx” are the command/parameter bytes and $0D is a trailing carriage return. Every command message contains exactly eight (8) bytes including the carriage return. All pulse width values are specified in 2 µs increments, so to send a 1 ms pulse to a channel you would use a pulse width value of 500 (500 x 2 µs = 1000 µs = 1 ms). Position Command – Set Position of a Servo Channel Syntax: “!SC” Reply: None To move a servo to a location you must write a position command to the PSCU. Each position command is comprised of the preamble, the channel, the ramp speed, lowbyte/highbyte of the pulse width in 2 µs increments and a carriage return ($0D). The preamble is “!SC”. The channel is a byte value from 0 – 15 (16 – 31 if this is the second unit in a network). The ramp speed is a byte value from 0 – 63 that controls the speed the servo moves to its new position. ' {$STAMP BS2} ' {$PBASIC 2.5} ch VAR Byte pw VAR Word ra VAR Byte Sdat CON 15 baud CON 396 ra = 7 ch = 11 DO pw = 1100 SEROUT Sdat, Baud+$8000,["!SC", ch, ra, pw.LOWBYTE, pw.HIGHBYTE, CR] PAUSE 1000 pw = 300 SEROUT Sdat, Baud+$8000,["!SC", ch, ra, pw.LOWBYTE, pw.HIGHBYTE, CR] PAUSE 1000 LOOP Note: Not all servos have the same range limits. If your servos appear to strain when the pulse width is set to 250 you should increase this value up to 260 or higher as needed to prevent the servo from straining. Similarly, if your servo strains when the pulse width is set to 1250 you should reduce this value as needed to prevent the servo from straining. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 4 of 12 VER? – Identify Firmware Version Number Syntax: “!SCVER?” Reply: “x.x” The VER? Command causes the PSC to reply with its firmware version number. A carriage return ($0D) must follow the command. The version number returned is the version number of the firmware installed on the PSCU. The following code can be used to find and identify your PSCU using a BASIC Stamp 2. ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat PIN 15 Baud CON 396 buff VAR Byte(3) ' Serial Data I/O pin ' Constant for 2400 baud ' temporary variable FindPSC: ' Find and get the version DEBUG "Finding PSC", CR ' number of the PSC. SEROUT Sdat, Baud+$8000, ["!SCVER?",CR] SERIN Sdat, Baud, 500, FindPSC, [STR buff\3] DEBUG "PSC ver: ", buff(0), buff(1), buff(2), CR Within the Debug Terminal you will see the message, “Finding PSC”, followed by, “PSC ver:” and the firmware version (for example 1.0). If the message “Finding PSC” appears more than 3 or 4 times without a reply you should check to make sure all connections are correct and verify your power source. If the PSCU still fails to respond you may press the reset button momentarily. If the PSCU still fails to respond you may contact our Technical Support Department. Contact information is listed toward the end of this documentation. SBR – Set the Baud Rate (to either 2400 or 38.4k Baud) Syntax: “!SCSBR” Reply: “BR” After establishing communication with the PSCU you may wish to increase the baud rate to 38.4 kbps. The command for achieving this is shown above. You must first send “!SCSBR” followed by a byte value for the mode where 0 is for 2400 bps and 1 is for 38.4 kbps. Finally a carriage return ($0D) completes the command. The following code can be used to set the baud rate to 38.4 kbps using a BASIC Stamp 2. ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat PIN 15 Baud CON 396 buff VAR Byte(3) ' Serial Data I/O pin ' Constant for 2400 baud ' temporary variable SetBaud: DEBUG "Setting Baudrate", CR SEROUT Sdat, Baud+$8000, ["!SCSBR",1,CR] SERIN Sdat, 6,500, SetBaud, [STR buff\3] DEBUG "Baud reply: ", buff(0), buff(1), DEC1 buff(2), CR STOP Note that the SERIN command has a value of 6 for 38.4 kbps on the BASIC Stamp 2. This is because the PSCU will reply at the new baud rate to confirm that the command has been executed. If you would like to set the baud rate back to 2400 bps you must send a new SBR command at 38.4 kbps. This time the reply will be at 2400 bps so the SERIN will need to change as well. You can also reset the baud rate back to 2400 bps by pressing the reset button on the PSCU. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 5 of 12 If either the BASIC Stamp or the PSC was reset without the other resetting they could be left in the state of different baud rates. When checking the firmware version using the VER? command, the BASIC Stamp 2 should employ its timeout feature. At the timeout label you can then attempt to VER? the PSCU at the other baud rate. Once identified the baud rate could then be set properly and the program can resume. RSP – Report Servo Position Syntax: “!SCRSP” Reply: The RSP command returns the pulse width value last set for the specified channel. When the RSP command is sent to the PSCU it replies with three bytes. The first byte is the channel, the second and third bytes are the highbyte and lowbyte of the pulse width, respectively. ' {$STAMP BS2} ' {$PBASIC 2.5} ch VAR Byte pw VAR Word ra VAR Byte x VAR Byte Buff VAR Byte(3) Sdat CON 15 baud CON 396 Init: ra = 15: ch = 0 DO pw = 1100: GOSUB WRservo pw = 300: GOSUB WRservo LOOP WRservo: SEROUT Sdat, Baud+$8000,["!SC", ch, ra, pw.LOWBYTE, pw.HIGHBYTE, CR] FOR x = 0 TO 4 PAUSE 1000 SEROUT Sdat, Baud+$8000, ["!SCRSP", ch, CR] SERIN Sdat, Baud, 1000, Init,[STR Buff\3] DEBUG "Servo ", DEC buff(0), " ", HEX2 buff(1), " :", HEX2 buff(2), CR NEXT RETURN Within the DO…LOOP, this program sets the pulse width (pw) to one extreme or the other and writes this value to the PSCU. The ramp value (ra) was set to give the program time to poll the servo position several times. Within the WRservo subroutine the new pw is sent and the position is polled five times, once per second. A DEBUG command is used to format the reply and print it to a window for you to view. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 6 of 12 PSS – Set Software Port (to range 0 – 15 or 16 – 31) Syntax: “!SCPSS” Reply: “PM” The PSS command assigns the PSCU to act on commands sent to channels 0 – 15 or channels 16 – 31 depending on the mode selected. This is useful when networking two PSCU modules together for 32 channels using a microcontroller. The command format is “!SCPSS” followed by a byte value of 0 for Port 0 (channels 0 – 15) or 1 for Port 1 (channels 16 – 31) and a carriage return ($0D). ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat Baud buff PIN CON VAR 15 396 Byte(3) ' Serial Data I/O Pin ' Constant For 2400 Baud ' Temporary Variable (Array) SetPort: DEBUG "Setting Port Mode...", CR SEROUT Sdat, Baud+$8000, ["!SCPSS", 1, CR] ' Set To 16-31 SERIN Sdat, Baud,500, SetPort, [STR buff\3] DEBUG "Baud Reply: ", buff(0), buff(1), DEC1 buff(2), CR DEBUG "Please reset PSCU or cycle power now." STOP Note: you should be sure only the PSCU that you want to change port modes on is connected. Networking the PSCU modules while using this command will cause all connected units to be set. The PSCU must be reset after this command is sent or power must be cycled to activate the change. PSD – Servo Disable Syntax: “!SCPSD” Reply: None This command allows you to disable a servo channel. The command format is, “!SCPDS” followed by a byte value of 0 – 31 for the channel and a carriage return ($0D). Disabling a channel will cause the PSCU to stop sending pulses to that channel. This will cause any connected servo to become lax and not try to hold its position. A disabled servo channel can be enabled again using the Servo Enable command listed below. The following code for the BASIC Stamp 2 disables the servo on channel 0. ' {$STAMP BS2} ' {$PBASIC 2.5} ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat Baud PIN CON 15 396 ' Serial Data I/O Pin ' Constant For 2400 Baud Disable: DEBUG "Disabling Channel 0", CR SEROUT Sdat, Baud+$8000, ["!SCPSD", 0, CR] STOP Note: This command causes this to be the default state of this channel. Until the channel is enabled using the Servo Enable command (below) this channel will no longer refresh even if the PSCU is reset or power is cycled. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 7 of 12 PSE – Servo Enable Syntax: “!SCPSE” Reply: None This command allows you to enable a servo channel that has been previously disabled. The command format is, “!SCPSE” followed by a byte value of 0 – 31 for the channel and a carriage return ($0D). Enabling a channel will cause it to move to the last position it was commanded to, or the startup default if no other position commands have been sent since power up/reset. The following code (re)enables channel 0. ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat Baud PIN CON 15 396 ' Serial Data I/O Pin ' Constant For 2400 Baud Enable: DEBUG "Enabling Channel 0", CR SEROUT Sdat, Baud+$8000, ["!SCPSE", 0, CR] STOP EDD – Startup Servo Mode Syntax: “!SCEDD” Reply: “DL” This command sets whether the PSCU centers all servo channels on startup (mode 0) or uses custom startup positions stored in EEPROM (mode 1). In mode 1 you can set a custom startup position for each servo channel using the default position command below. To set the Startup Servo Mode, the following must be sent to the PSCU: “!SCEDD” followed by a byte value of 0 for default (center) or 1 for custom and finally a carriage return ($0D). The following code can be used to set the startup servo mode to 1 using a BASIC Stamp 2. ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat Baud buff PIN CON VAR 15 396 Byte(3) ' Serial Data I/O Pin ' Constant For 2400 Baud ' Temporary Variable (Array) SetPort: DEBUG "Setting Startup Servo Mode...", CR SEROUT Sdat, Baud+$8000, ["!SCPSS", 1, CR] SERIN Sdat, Baud,500, SetPort, [STR buff\3] DEBUG "Startup Mode: ", buff(0), buff(1), DEC1 buff(2), CR DEBUG "Please reset PSCU or cycle power now." STOP Note: The PSCU must be reset after this command is sent or power must be cycled to activate the change. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 8 of 12 Default Position Command – Set Default Position of a Servo Channel Syntax: “!SCD” Reply: None By default all servos move to the center position at startup (they receive a 1.5 ms pulse). The default position of all servo channels can be customized and stored in the EEPROM to be used on startup in place of the center positions. To set a new startup position for a servo channel the following must be sent to the PSCU: “!SCD” followed by a byte value of 0 – 31 for channel, two bytes for the pulse width in 2 µs units in lowbyte/highbyte format, and finally a carriage return ($0D). Each servo channel can be set independently but for the PSCU to use these on startup you must have first sent the EDD command (listed above) to 1. The following code can be used to set the default position for channels 0 through 31 to 500 (1 ms) using a BASIC Stamp 2. If you only have one PSCU connected only channels 0 – 15 will be affected by this program. ' {$STAMP BS2} ' {$PBASIC 2.5} ch pw Sdat Baud pw = 500 VAR VAR PIN CON Byte Word 15 396 ' ' ' ' Channel Pulse Width Value Serial Data I/O Pin Constant For 2400 Baud Set_Default: DEBUG "Setting Default Position...", CR FOR ch = 0 TO 31 SEROUT Sdat, Baud+$8000, ["!SCD", ch, pw.LOWBYTE, pw.HIGHBYTE, CR] DEBUG "Channel ", DEC ch, " set to ", DEC pw, CR NEXT DEBUG "Please reset PSCU or cycle power now.", CR DEBUG "Be sure the Start Servo Mode is set to 1" STOP The PSCU must be reset after this command is sent or power must be cycled to activate the change. CLEAR – Clear Upper EEPROM Syntax: “!SCLEAR” Reply: “CLR” All of the custom settings such as Port Mode, Servo Disabled, Startup Mode and Default Positions are all stored in the upper 32K of the EEPROM. The code below can be used to clear the upper EEPROM and reset these values to their defaults. ' {$STAMP BS2} ' {$PBASIC 2.5} Sdat Baud buff PIN CON VAR 15 396 Byte(3) ' Serial Data I/O Pin ' Constant For 2400 Baud ' Temporary Variable (Array) Clear_EEPROM: DEBUG "Clearing Upper EEPROM...", CR SEROUT Sdat, Baud+$8000, ["!SCLEAR", CR] SERIN Sdat, Baud, 600, Clear_EEPROM, [STR buff\3] DEBUG "Reply: ", buff(0), buff(1), buff(2), CR STOP Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 9 of 12 Hardware Reset Button Some of the program examples above require the PSCU to be reset or power cycled before the settings will take effect. Pressing the reset button will restart the firmware, effectively resetting the PSCU. Networking Two PSCU Modules for 32 Channels (Microcontroller) The PSCU is capable of networking to a second PSCU to allow control of 32 servos from a single serial line when using a microcontroller. The second PSCU would have its Port Mode set to 1 and would respond to commands sent to servo channels 16 – 31. A typical connection for doing this using the Board of Education and two PSCU modules is shown below. Note the positions of the cables in the serial connectors on each PSCU. Both PSCU modules will get power from the Board of Education in this manner and both will share the serial I/O line as well. Both PSCU modules will still require a separate power supply for the servos. Note: Networking/Daisy-chaining of PSCU modules is not supported when using a USB connection. For USB control you will need a separate USB port for each unit and all units will be set to Port Mode 0. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 10 of 12 Programming Jumper The firmware on the PSCU can be customized by the end user. This makes it easy to tailor the use of this Servo Controller to your application’s needs. You may also write you own firmware from scratch and take advantage of additional features of the hardware that may be implemented. If you wish to develop your own firmware you may simply download the Propeller Tool software from our website at http://www.parallax.com/propeller. The programming jumper is installed by default, but can be removed to prevent accidentally overwriting the code. Removing the jumper disconnects the DTR line from the /RES line on the Propeller, thereby disabling the Propeller chip from being programmed or identified. You can still communicate serially whether the jumper is installed or not. Jumper Installed Jumper Not Installed Module Dimensions Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 11 of 12 Revision History Version 1.1: Updated photo to show Rev B of the product. Manufacturing requirements for the QFN Propeller IC necessitated moving a via (pad) on the PCB. Three traces were also moved slightly. This is a manufacturing change only and the schematic has not changed. Copyright © Parallax Inc. Propeller Servo Controller USB (#28830) v1.1 11/30/2012 Page 12 of 12
28830 价格&库存

很抱歉,暂时无法提供与“28830”相匹配的价格&库存,您可以联系我们找货

免费人工找货