Subject:
|
RE: Polaroid 6500 Sonar Problem
|
Newsgroups:
|
lugnet.robotics.handyboard
|
Date:
|
Tue, 9 Mar 1999 05:40:34 GMT
|
Original-From:
|
Edgar Leatherman <[eleather@]AntiSpam[imagixx.net]>
|
Viewed:
|
900 times
|
| |
| |
Hi,
On this page
(http://lcs.www.media.mit.edu/groups/el/projects/handy-board/software/sonar.
html)
it says to install a .1uF capacitor at C7 on the sonar board. My team
basically did everything you are talking about, plus install the cap, and
everything seems to work fine for us... hope this helps, I'm not sure what
the capacitor does though.
E Leatherman
> -----Original Message-----
> From: rmtmd [mailto:rmt@lvcm.com]
> Sent: Monday, March 08, 1999 10:40 PM
> To: handyboard@media.mit.edu
> Subject: Polaroid 6500 Sonar Problem
>
>
> I'm having difficulty getting my sonar rangefinder to work properly.
>
> I've got a fully operational Handy Board with a fully operational
> Expansion Board plugged into it (both purchased assembled from Gleason
> and used extensively already without difficulty). I've soldered the nine
> pin flex cable adapter into the appropriate place on the top of the
> expansion board, and I've got the flex cable plugged into it and into the
> adapter on the sonar driver board I purchased assembled from Wirz. I've
> soldered a solid core wire to pad J12 on the expansion board and plugged
> the other end into the digital input numbered "7" on the Handy Board
> itself (first hole on right in the single row header next to the power
> expansion header).
>
> Running Interactive C 3.1 (commercial version from Newton Labs), I loaded
> "sonar.c" (Fred Martins' driver code) to test everything. When I invoked
> the "sonar_display();" function, I heard the transducer clicking rapidly.
> The LCD display updated in sync with the clicks. So far so good.
>
> The display, however, did not change significantly, when, holding the
> transducer by it's wires, not by its body, I pointed it at flat surfaces
> at varying distances from it ranging from a few feet to five or ten feet
> away. I kept getting a number around 1450 to 1460 on the LCD as the
> value of "result," which holds the result of the call to the ranging
> function, "sonar_closeup();". Occasionally numbers up to 1800 or so
> flash on momentarily, but for the most part the numbers being
> continuously updated run in the 1450s to 1460s.
>
> I've tried substituting "sonar_sample();" for the call to
> "sonar_closeup();" in the "sonar_display();" function's body, to no
> avail. If the returned value on the LCD represents the number of half
> milliseconds elapsed, then, I seem to be reading a constant distance of
> about .3 feet (1450 ticks / 2000 ticks/ms = 0.725 ms; 0.725 ms / 2 = .362
> ms, or the time for sound to travel ONE way to target; .362 ms / 1.1
> ft/ms {speed of sound} = .33 ft).
>
> HELP!
>
> Ross M. Tonkens, M.D.
> Medical Director
> Primary Care of Nevada
> 100 North Green Valley Parkway
> Suite 240
> Henderson, NV 89014
>
> 702 914-7120 VOICE
> 702 914-7129 FAX
>
> I've reproduced Fred Martin's driver code below rather than referring
> everyone to the URL where I downloaded it.
>
> /*
> sonar.c
> Polaroid 6500 routines for Handy Board / Interactive C
> by Fred Martin, fredm@media.mit.edu
> Sat Nov 22 13:57:35 1997
>
> echo signal is connected to tic3/pa0;
> init signal is pd5 (SS);
> binh signal is pd4 (SCK)
> */
>
> void sonar_init() {
> bit_set(0x1009, 0x30); /* ddrd */
> bit_set(0x1021, 1); /* at tctl2, */
> bit_clear(0x1021, 2); /* set tic3 for rising edge */
> }
>
>
> int sonar_sample() {
> int start_time;
>
> poke(0x1023, 1); /* clear
> tic3 flag */
>
> start_time= peekword(0x100e); /* capture start time */
> bit_set(0x1008, 0x20); /* trigger pulse */
>
> while (!(peek(0x1000) & 0x1)) { /* wait until receive echo */
> if ((peekword(0x100e) - start_time) < 0) {
> /* if too much time has elapsed, abort */
> bit_clear(0x1008, 0x20);
> return -1;
> }
> defer(); /*
> let others run while waiting */
> }
>
> bit_clear(0x1008, 0x20); /* clear pulse trigger */
>
> return peekword(0x1014) - start_time; /* tic3 has time of echo */
> }
>
> int sonar_closeup() {
> int start_time;
>
> poke(0x1023, 1); /* clear
> tic3 flag */
> start_time= peekword(0x100e);
> poke(0x1008, 0x20);
>
> while ((peekword(0x100e) - start_time) < 1000);
>
> bit_set(0x1008, 0x30); /* turn on BINH */
>
> while (!(peek(0x1000) & 0x01)) {
> if ((peekword(0x100e) - start_time) < 0) {
> /* if too much time has elapsed, abort */
> bit_clear(0x1008, 0x30);
> return -1;
> }
> defer();
> }
>
> bit_clear(0x1008, 0x30);
>
> return peekword(0x1014) - start_time; /* 0x1014 is tic3 */
> }
>
> void sonar_display() {
>
> int result;
>
> sonar_init();
>
> while (1) {
> result= sonar_closeup();
> if (result != -1) printf("%d\n", result);
> else printf("*******\n");
> msleep(50L);
> }
> }
>
|
|
Message is in Reply To:
| | Polaroid 6500 Sonar Problem
|
| I'm having difficulty getting my sonar rangefinder to work properly. I've got a fully operational Handy Board with a fully operational Expansion Board plugged into it (both purchased assembled from Gleason and used extensively already without (...) (25 years ago, 9-Mar-99, to lugnet.robotics.handyboard)
|
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|