Shop OBEX P1 Docs P2 Docs Learn Events
Hero-1 — Parallax Forums

Hero-1

walice_drelwalice_drel Posts: 81
edited 2007-09-02 06:32 in Robotics
I happened to be lucky enough to get to Hero-1 robots with all upgrades manuals and chargers. I was wondering in anyone has any info on the speech board. I would like to use one of them on another bot but I have no info on the chips. If anyone has any info on it I would really appreciate it.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
http://www.myspace.com/droidworks

Comments

  • ZootZoot Posts: 2,227
    edited 2007-08-26 20:13
    The speech board on the Hero-1 lets you set pins and load up the buffer of the board by passing it bytes (parallel pins). Then you enable it and it dumps the buffer to the speech chip. There's a pretty good-sized audio amp on the board as well (8ohm speaker at 12v). The master wiring diagram (a big foldout) for the Hero-1 has the pin assignments for all the boards, and the Technical Manual has a discussion of how the board itself works.

    If you decide to use it elsewhere, the logic is TTL so you'll need to provide 5v power to board; the amp is 12v. You could also remove a few components from the amp side and use the pre-amplified analog signal to feed into your own amp. Again, see the schematic foldouts -- there is a good "x-ray" view of both sides of the board. The amp portion is upper/center right on the board, if it is oriented as it would be when mounted on the 'bot.

    That said, if your Hero is in working order, I'm not sure that using that board for another project is ideal -- newer "ready-to-go" speech boards usually work with a single serial line or an I2C bus, saving a LOT of pins or shift registers. Second, there is *no* text-to-speech on the Hero-1 board -- speech has to be built up one phoneme at a time (see the Speech Guide). The results can be nice, but it is *intensely* laborious, and even minor changes to a phrase can take much longer than you'd think... Third, Hero-1's are getting rare. They are beautiful 'bots -- old fashioned, but old-fashioned like a luxury Cadillac. But I'm biased, since I still use my Hero-1 built in high school smile.gif

    Robert Doerr (RobotWorkshop.com) is a member of these here forums. He has lots of great solutions for both repair of Hero-1's and for bringing them up into the modern era (e.g. serial/USB links).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST
  • walice_drelwalice_drel Posts: 81
    edited 2007-08-27 00:03
    Here is a pic of one ot the 2 I got. Im trying to figure out how much to sell the extra one for. Any ideas what they are worth?

    other013.jpg

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.myspace.com/droidworks
  • walice_drelwalice_drel Posts: 81
    edited 2007-08-27 00:16
    By the way thank you very much for the info. It is a prety cool bot.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.myspace.com/droidworks
  • ZootZoot Posts: 2,227
    edited 2007-08-27 02:43
    Robert Doerr (http://forums.parallax.com/member.php?u=47009) at The Robot Workshop (robotworkshop.com) is probably the man to ask about real value (he also makes really cool drop-in boards for converting older Stamp projects to SX and Prop projects). But whenever a complete working Hero-1 shows up on E-bay, they seem to auction for around $2000 (plus shipping!). I would guess half the buyers always wanted one, and half need the working 'bot to have spares (these were made in the early 80s, so they're around 25 years old).

    They are very cool and while some of the technology and design methods are somewhat antiquated, there's a lot of handy peripheral work built-in to the sensors, peripherals, etc. Also, the huge breadboard in the top is great for wiring in your own circuits -- I've taken a lot of what I learned working on Boe-bots and the like and made enhancements.

    In any case, I didn't mean to be discouraging -- though like a rare classic automobile, these seem to get either used or sold -- so I pulled out the docs and here's the basic breakdown on the speech board (actually, the board would be pretty easy to interface to a Stamp, SX, Prop, etc.).


    Looking at the board component side up, as it would be mounted on the frame of the 'bot, the left side pins are numbered 1-12, from the top down (P501). Right side pins are 13-16, top to bottom (P502)


    Pins 1-2 = pitch for the phoneme (0-3 binary) -- D7 and D6 of a byte, e.g. BIT7 and BIT6 of the phoneme byte. These are "real-time" pitch controls -- they work regardless of what's latched into the data buffer.

    Pin 3 = strobe in (i.e. "latch") -- pulse high to "latch" phoneme into the buffer, when taken low, the phoneme is spoken

    Pin 4 = strobe request -- output -- this pin is LOW if the board is speaking (not ready), HIGH when finished

    Pins 5-10 = phoneme selected -- a 6 bit phoneme to latch into the buffer -- P5 is the MSB (BIT5)
    Pin 11 = on/off (i.e. enable/disable -- set this pin HIGH to turn the board on; LOW to turn it off (save power)

    Pin 12 = no connection


    Pin 13 = +12v
    Pin 14 = GND
    Pin 15 = +speaker (amplified output)
    Pin 16 = no connection


    So... to use another micro to generate speech, you would hook up 8 pins (a DIR on the Stamp) with the highest pins on that port (bit/pin 7 and 6) for the pitch, and 0-5 for the phoneme.

    Then use two other pins -- one for the pulse out to the latch (strobe enable) and one to check the "busy" line. And one more to turn the card on and off. That's 11 pins. A shift register would cut it down some. And you could just tie the enable line high. But still smile.gif

    Write a byte to the pitch and data pins, with the two highest bits being the pitch, and the lowest 6 being the phoneme (see Speech Dictionary for the table).

    (e.g., binary -- %PPDDDDDD -- PP is 0-3 pitch; DDDDDD is phoneme)

    But remember you have to send EACH phoneme, then let it speak, then check the status, then send the next phoneme....

    In pseudo code it would be something like this (without including "end of data" logic):

    spkData VAR OUTL   'pins for data byte
    spkOnoff PIN 8
    strobeRequest PIN 9
    strobeIn PIN 10
    whatPhoneme VAR Byte 'count phonemes from a data block, eeprom, etc
    
    LOW spkOnoff    'reset
    LOW strobeIn   'take latch low
    INPUT strobeRequest 'input pin
    DIRL = $FF       'make all data lines outputs
    HIGH spkOnOff 'turn the card on
    
    Start:
       IF strobeRequest = 1 THEN  'P501/4 shows card not busy
            whatPhoneme = whatPhoneme + 1
            'get/set/read next phoneme data byte -- PPDDDDDD
            spkData = %010010000   'put data on data pins; pitch = 1; phoneme = 32
             PULSOUT, strobeIn, 10      'latch data in buffer of speech card
             LOW strobeIn 'not really necessary
            'remember that you need to leave the two highest bits of spkData alone -- the pitch is not latched
        ENDIF
        IF you are not finished THEN GOTO Start ' do it again, or end
    
         DO WHILE strobeRequest = 0 : LOOP  ' wait for last phoneme to finish
    
        LOW spkOnoff 'turn the card off
    
    



    The problem here is sheer maintenance -- each phoneme has to be sent as soon as the card is ready, and it takes a lot of phonemes to make a sentence. On an SX or the Prop this could be done easily, in an ISR or in a dedicated COG; on a Stamp it would depend on how much else the Stamp is doing. Most of the phonemes are in the 40ms-120ms range, so in theory you could run the card and still take care of a few servos or something.

    On the Hero-1 this is moot -- the CPU has built-in ROM interpeter that takes care of the process -- the programmer only needs to call the interpreter, send the commands and the raw phoneme string, and the rest is hard-coded background routines.

    But it's a far cry from modern cards which let you send a plain text string across one pin, and have it all play back in one shot. I use Emics in my newer 'bots partially because after years of programming phonemes in hex, typing a sentence is incredible luxury.

    One correction to my earlier post -- this board does not need 5v power -- logic power is supplied through an on-board supply circuit (which is turned on and off with the enable pin). You only need 12v. But it needs to be REGULATED 12v.

    Naturally, Speaker GND, Microcontroller GND and the Speech Board GND would all need to be tied together.

    Check the schematic for the speech board; it's one of the "large-format", folded, poster-sized documents). The description of how the board works is on page 77 and 78 of the Technical Manual (one of the blue books with orange robot graphics on them).

    Last but not least, if you want to use it, there are BASIC-like and C-like compilers you can use -- the 'bot is programmed in old 808X machine language.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    When the going gets weird, the weird turn pro. -- HST

    Post Edited (Zoot) : 8/27/2007 2:48:08 AM GMT
  • walice_drelwalice_drel Posts: 81
    edited 2007-08-27 04:55
    Thank you so much for the info especially the code and price. Wow that is allot more than I thought. Hell I would be happy to get $600 for one of them. It is a great bot. The second one is unassembled still it kit form and I'm working on putting it together. Its gonna take me a long time but I is pretty fun so far. I have an extra speech card thats why I posted this. I'm glad I will be able to use it on another bot. I don't know if I want to sell the assembled one on ebay, I want to make sure it goes to a good home. After all it is a nice little piece of robot history. I found a cool video of one in action its pretty cool. Its about half way threw the video, check it out.


    http://www.archive.org/details/Robotics1984

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.myspace.com/droidworks
  • Jeff McClureJeff McClure Posts: 75
    edited 2007-09-02 06:32
    Hi, Did you get all the information you needed? I have a copy of Heathkit "Voice Synthesis" and it includes the 30 page phoneme Dictionary for the Votrax SC-01 or Vocabulary Data you have the VM61001 ic. It also has Datasheets for both. Let me know if you need something. Jeff (jeff169493@aol.com) I always wanted a Hero bot
Sign In or Register to comment.