Shop OBEX P1 Docs P2 Docs Learn Events
BASIC Stamp Supercomputer - Page 2 — Parallax Forums

BASIC Stamp Supercomputer

245678

Comments

  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-26 09:13
    Keep in mind we can use a serial LCD, therefore stamp pins are not necessary. The LCD just connects to the TxRx wire to get its serial data. Ok, so that brings it up to 162 available ports after the ESCCBP expansion.
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-26 09:37
    LR, this is an update - thank you for your patience. The code is being cleaned up for publication. Keep in mind it's not one program but there's 13 programs involved with the extra two that operate the EMIC TTS board and uOLED color monitor. So after I made 17 changes on one program, I need to make a total of 222 changes across the software package. Of course, comments will be added for every line, the prog will be simplified and then all the programs will be loaded simultaneously and tested by running in parallel on the 11-computer cluster. (The two extra programs will be tested as the op code for computers 9 and 10) The latter two are large code that will be simplified. The code to speak English and Chinese is slated to be released under a separate more detailed speech article in Penguin Tech. This will also include the new EMIC wiring which has an interface using one less port. As you know, the way this project started out, I had the stamp boards and was building circuits with sensors on each board. After I got most of them completed, it was a matter of connecting each to the collective. I then began developing software code for each sensor that would run on the supercomputer. This is an ongoing project that is now reshaped to some specific apps to demonstrate the power of the BSS. The two outstanding projects include Penguin Robot with 12 brains, and a very powerful eye for robots and the blind.

    humanoido
  • NeoAikonNeoAikon Posts: 3
    edited 2008-11-26 14:49
    I actually joined these forums simply to post here. I think this project is amazing, although I think this qualifies more as a mainframe than a supercomputer eyes.gif because of the impressive parallel IO capacity (http://en.wikipedia.org/wiki/Mainframe_computer#Mainframes_vs._supercomputers). That being said, the processing power could easily be increased if you used BS2px-IC with its 19000 instructions/second speed, nearly 5 times that of the BS2.

    If you really wanted some processing power you could do a similar thing with some Mega32's, its 14,745,000 instructions/second, or 3,686 times that of a BS2. I think at those higher speeds though the one wire interface would start to become a bottle neck. One thing I do like about one wire is the expandability, I think that's one real strength of this machine.

    In any case, this is a great proof of concept that supercomputers can be build by a hobbyist, I'm sure this will inspire many similar projects.
  • mmmm Posts: 56
    edited 2008-11-26 17:02
    Nice project.

    You people who don't have day jobs are so lucky, I can't wait till I retire and get more time to play around with my radios, stamps and pics again.
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-27 02:32
    There's a comment about replacing the BS2 with the faster BS2px.
    I did an experiment to see how these faster computers would
    interface with the BS2 stamps. Computer number 11 was added
    as a BS2px and the interface is working fine. It communicates
    with the other stamps just like the BS2's. Knowing this, computer
    number 12 was added (a robotics experiment) which is another
    BS2px. It too, works excellent.

    While this advantageously increases the speed and memory
    substantially, and it raises the program code count into the
    thousands of statements, it does not raise the port count over
    the BS2. It also raises the current draw from 3 to 55 ma per chip.
    Of course the overall boards draw more current than this and there's
    some overhead with two LEDs per board, piezo speakers, sensors, etc.

    So while remaining portable, an all BS2px Supercomputer would have
    considerably less operating time on batteries.
    This is another reason the BS2 is perfect for this project. As a
    rule, the faster the chip, the greater the power consumption. That's
    why the fastest supercomputers in the world are massive power
    hogs.

    humanoido

    Post Edited (humanoido) : 11/27/2008 2:52:48 AM GMT
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-27 02:49
    I can also address the questions about the power supply.
    The supercomputer is switchable from battery operation to
    power supply operation. The individual computers are wired
    with 9-volt battery clips leading to the power supply source.
    To switch to all-battery operation, the clips are removed and
    a battery is inserted. As usual with homework boards, the
    battery can be placed in the side upright position to act as
    the on/off switch. This is different from the power supply
    function which has a power toggle switch for each of the first
    10 computers.

    The power supply plugs into the power bus using two banana
    jacks. The source delivers up to 2 amps but is never reached
    as, at this stage, the entire assembly draws a max of 360ma
    when speaking and the color monitor is on. In actual field op,
    the BSS would utilize the LCD in lieu of the color monitor. It's
    a very fundamental layout and considerable effort went into
    keeping it as simple as possible. There are more complex
    working designs that were built and discarded so as to maintain
    the one-wire interface and minimum power draw.

    humanoido
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-27 02:59
    Youtube has apparently increased the "view in normal quality" bandwidth of the Basic Stamp Supercomputer movie at
    it.youtube.com/watch?v=huukEEwy-3E
    so now you can actually see the individual wires, LCD messages are more clear, and overall you can see the functions much better. So you may want to catch the vid again, even if you saw it before, especially if you're building or consider to build your own supercomputer! [noparse]:)[/noparse]
  • MikerocontrollerMikerocontroller Posts: 310
    edited 2008-11-27 04:09
    You're right humanoido, wider is better. Even YouTube understands the benefits of parallel expansion! I look forward to seeing PT#4 and the Supercomputer write-up.
  • Ross SniderRoss Snider Posts: 2
    edited 2008-11-27 04:39
    I did not realize how slow this thing would compute (20MHz chips each at ~5 cycles an instruction). I understand now why my previous post seemed so ignorant and optimistic.
  • SRLMSRLM Posts: 5,045
    edited 2008-11-27 06:14
    Like I said, the power of the computer lies in the I/O pins, not in the microprocessor. The stamps are nice, but not exactly the sort of things that you find alien life with. Protecting your electronics lair is a different matter...
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-27 08:57
    SRLM, you're exactly right. There's also considerable power being able to parallel those I/O pins in clusters, as well as run the software in parallel. It was never intended to do SETI as it's not that kind of supercomputer.
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-27 11:56
    well if we're comparing apples to oranges for 12 chips
    (if you fill up the rack and then expand, the IPS will easily
    do increasing MIPS, but remember, this is purely not designed to
    be the fastest, as this was first mentioned in the articles.)
    with a few BS2px its about a quarter of a million instructions
    per second which is extremely fast given the one wire
    interface and overall simplicity of the design, i.e. you can
    be a hobbyist and afford it, build it over some weekends and
    evenings - no you don't need to wait for retirement to complete
    the project - its assembly goes rather quickly, it's very enjoyable,
    educational, schools will love the concept, and when
    completed you can expand it according to your
    pocket book or utilize old boards already existing in your junk box,
    and also program it quickly in a familiar yet very matured and advanced
    language /PBASIC, yet utilize the multiple hardware/software clustering
    and simultaneous running of sensors/software, and effectively be up
    and running in a flash. Plus it's designed to be within the range of the
    hobbyist, and the Parallax stamp was chosen because there's
    a ton of support not only with written documents, free books,
    free online courses and tutorials and many web sites,
    but its one of the longest lived and most
    stable stamp processors - very mature and the most bug free,
    with a plethora of working peripherals and sensors that have
    well defined libraries of code, extensive support and working
    examples, plus there's one of the largest and most well supported
    and superbly maintained and moderated Forums that exists anywhere in
    the world, which holds the magic of thousands of fantastic guru people who
    are extremely understanding, knowledgeable and decisively supportive.
    You're simply not going to find this level of advanced support,
    design, reliability, and company integrity anywhere else. Therefore,
    it's absolutely the best choice for a hobby Basic Stamp Supercomputer.

    humanoido
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-27 12:26
    Actually there's more ports than what was mentioned because of two extra that are dedicated serial on each chip. These can be reused. This brings the proto to 198, full first Tier to 396 and the 2nd Tier to 792 ports. Mainframe computers simply do not have this kind of power. There's a small mod with a chip to expand these ports. For example, and extra 8 inputs with 4 I/O lines, extra 16 with 5, and 32 with 6. Outputs can use a 74HC138 for 24 lines using only 5 I/Os or 32 with 7 I/O. Anyone care to do the math on that for the total number on a two Tier expanded supercomputer?

    Post Edited (humanoido) : 11/27/2008 2:53:11 PM GMT
  • NeoAikonNeoAikon Posts: 3
    edited 2008-11-28 05:31
    Hmmm, thats a lot of inputs. Your project deserves something akin to the title of Super Mainframe since its I/O capacity is stupendous. You could use this device (http://www.aagelectronica.com/aag/index.html?target=p_40.html&lang=en-us) and a 1-wire interface to communicate with a central computer to control it and monitor everything. This also allows you to use things like networkable security camera's. Honestly I don't think you'll find a use for all those input/outputs, I read on your page you hooked up to a penguin, you need to post videos of that.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    (0_^)
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-28 08:02
    Basic Stamp Supercomputer Applications

    Basic Stamp Supercomputer Super Mainframe
    Thank you sincerely, NeoAikon, this is a really good find,

    www.aagelectronica.com/aag/index.html?target=p_40.html

    and thanks for sharing your intelligent impressions and thoughts. You've raised a number of valuable points for consideration. For example, it's impressive to know that the BSS Basic Stamp Supercomputer can be expanded to include mainframe computers across the one wire interface. But then we may need to change the name to super-basic-stamp-supercomputer-with-super-mainframed-complimenting-nodes. SBSSWSMCN.

    Modeling the Human Brain
    About finding a use for all those I/Os, of course there's a use, you were looking at it directly when viewing the page about the Penguin brain. An expansive brain needs the plethora of inputs and outputs.

    http://forums.parallax.com/showthread.php?p=765509

    I've been looking at modeling the human brain, in that it may be used capaciously for android-humanoid-biped-robotic-human applications. Here's what I found so far. The brain is divided up into parts. Cerebrum, Cerebellum, Limbic System, Brain Stem - my interest is in the the cerebrum or cortex which is the largest part of the human brain connected with higher brain function such as thought and action. The cerebral cortex is divided into four sections, called lobes, frontal lobe, parietal lobe, occipital lobe, and temporal lobe.

    Creating Brain Functions
    Each has specific duties that can be programmed with a Basic Stamp Supercomputer. For example, breaking down the sections into functions, we find: Frontal Lobe- associated with reasoning, planning, parts of speech, movement, emotions, and problem solving, Parietal Lobe- associated with movement, orientation, recognition, perception of stimuli, Occipital Lobe- associated with visual processing, and Temporal Lobe- associated with perception and recognition of auditory stimuli, memory, and speech.

    Brain I/O Usage & Addtl. Apps
    I don't need to point out that this will use up all of the inputs and outputs on the expanded BSS platform. Immediately we can see it will be a boon for the robotics industry to have new intelligent Artificial Intelligence brains of this magnitude. Secondary, there are applications for humans that go untapped today. For example, the individual with Autism, and any number of specific brain disorders, may be able to have special "carry around" brains to supplement the judgments of their behavior patterns, thinking, and actions. In due respect, this may add "corrective" behaviors, or at the other end of the spectrum, it may enhance what we already have. This could lead to higher intelligence using supplemental devices.

    Creating an Intelligent Eye
    The next area of interest and highly suited for applicable answers to "What will you use it for?" is that of creating an intelligent eye for the blind. Currently we have CCDs with thousands of photon capturing photometric points that can rate light level intensities from low to high, thus producing tonal maps with the end result that creates images when used with lenses. What I'm working on with the Basic Stamp Supercomputer is an intelligent eye. It does more than just capture the image and tonal range.

    Eye-Brain Processing
    It will have a sort of eye-brain processing link that will do many things such as spacial interpretations, 3D analysis, and many functions in which the depth of this small post cannot effectively delve into. For example, while scientists and Optometry specialists focus on particular image forming constructs, we will go behind that, dividing the attention to sensitivities and algorithms that may work better in humans or robots.

    Tapping the Untapped Future
    Clearly, it may be possible to tap into a different brain regio or use stem cells to grow an artificial eye interface. Other area to be explored, for example, eye transplantation may be more effective when additional wavelength spectral ranges are included and processed.

    Electronic Eye Lensing
    Also lenses can be a problem. They become dirty, scratched, diseased, clouded, and injured. The BSS eye lens will be electronic, with electronic spanned focus rings, and not have those problems that conventional glass, plastic, polymer substrate lenses have. The BSS can do this processing and control the additives. But you get the idea. The result is, of course, extremely high powered robots with a new level of powerful vision and processing, leading to intelligent seeing-eyes for the blind.

    humanoido

    Post Edited (humanoido) : 11/28/2008 8:07:31 AM GMT
  • smitty760123smitty760123 Posts: 5
    edited 2008-11-28 19:55
    How fast can it run? You should try to·run the following benchmarks:

    16 bit integer arithmetic

    pseudocode:

    · while(i < 16) begin
    ··· Result = Result - i
    ··· i = i + 1
    ··· Result = Result * i
    ··· i = i + 1
    ··· Result = Result + i
    ··· i = i + 1
    ··· Result = Result / i
    ··· i = i + 1
    · end

    32 bit integer erithmetic

    pseudocode:

    · while(i < 16) begin
    ··· Result = Result - i
    ··· i = i + 1
    ··· Result = Result * i
    ··· i = i + 1
    ··· Result = Result + i
    ··· i = i + 1
    ··· Result = Result / i
    ··· i = i + 1
    · end

    trigonometric functions

    pseudocode:

    · while(i < 16) begin
    ··· sine = sine + sin(i)
    ··· i = i + 1
    ··· cosine = cosine + cos(i)
    ··· i = i + 1
    ··· tangent = tangent + tan(i)
    ··· i = i + 1
    ··· squareroot = squareroot + sqrt(i)
    ··· i = i + 1
    · end

    I/O

    pseudocode:

    · while(i < 16) begin
    ··· SEROUT(18 byte string at 2.5 Mbits/second)
    ··· SERIN(18 byte string at 2.5 Mbits/second)
    ··· i = i + 1
    · end

    array

    pseudocode:

    · while(i < 16) begin
    ··· x[noparse][[/noparse]i] = i
    ··· y[noparse][[/noparse]i] = 0
    ··· i = i + 1
    ··end
    · while(k < 16) begin
    ··· j = 0
    ··· while(j < 16) begin
    ····· y[noparse][[/noparse]j] = y[noparse][[/noparse]j] + x[noparse][[/noparse]j]
    ····· j = j + 1
    ····end
    ··· k = k + 1
    · end

    interrupts

    pseudocode:

    · while(i < 16) begin
    ··· if(i & 0x0001) begin
    ····· InterruptHandlerHigh
    ····end
    ··· else begin
    ····· InterruptHandlerLow
    ····end
    ··· i = i + 1
    · end

    sort

    pseudocode

    · while(i < 16) begin
    ··· array[noparse][[/noparse]i] = random number
    ··· i = i + 1
    ··end

    · sort(array)

    8 x 8 floating point matrix multiplication

    pseudocode:

    · while(i < 16) begin
    ··· for(ii=0, ii<8, ii=ii+1) begin
    ····· for(jj=0, jj<8, jj=jj+1) begin
    ······· matrix1[noparse][[/noparse]ii][noparse][[/noparse]jj] = jj + ROWS * ii
    ······end
    ····end

    ··· for(ii=0, ii<8, ii=ii+1) begin
    ····· for(jj=0, jj<8, jj=jj+1) begin
    ······· matrix2[noparse][[/noparse]ii][noparse][[/noparse]jj] = jj + ROWS * ii
    ······end
    ····end

    ··· for(ii=0, ii<8, ii=ii+1) begin
    ····· for(jj=0, jj<8, jj=jj+1) begin
    ······· matrix3[noparse][[/noparse]ii][noparse][[/noparse]jj] = 0
    ······· for(kk=0, kk<8, kk=kk+1) begin
    ········· matrix3[noparse][[/noparse]ii][noparse][[/noparse]jj] = matrix3[noparse][[/noparse]ii][noparse][[/noparse]jj] +
    ··························· matrix1[noparse][[/noparse]ii][noparse][[/noparse]kk] * matrix2[noparse][[/noparse]kk][noparse][[/noparse]jj]
    ········end
    ······end
    ····end

    ··· i = i + 1
    · end

    deeply nested loops with 32 bit integer addition

    pseudocode:

    · for(a=0, a<16, a=a+1) begin
    ··· for(b=0, b<16, b=b+1) begin
    ····· for(c=0, c<16, c=c+1) begin
    ······· for(d=0, d<16, d=d+1) begin
    ········· for(e=0, e<16, e=e+1) begin
    ··········· for(f=0, f<16, f=f+1) begin
    ············· x = x + a + b + c + d + e + f
    ············end
    ··········end
    ········end
    ······end
    ····end
    · end

    string concatenation

    pseudocode:

    · while(i < 16) begin
    ··· big_string_buffer =··big_string_buffer + string1
    ··· big_string_buffer =··big_string_buffer + string2
    ··· big_string_buffer =··big_string_buffer + string3
    ··· big_string_buffer =··big_string_buffer + string4
    ··· i = i + 1
    · end

    subroutine calls

    pseudocode:

    · while(i < 16) begin
    ··· some_function(i, i, i, i, i, i)
    ··· some_function(i, i, i, i, i, i)
    ··· some_function(i, i, i, i, i, i)
    ··· some_function(i, i, i, i, i, i)
    ··· i = i + 1
    · end

    You should be able to publish speed results like the graph attached (with logarithmic scale on the y axis).

    Once you publish you results, I will reveal which processor yielded the results in the graph.

    Cheers.



    Post Edited (smitty760123) : 11/28/2008 8:00:57 PM GMT
    1124 x 756 - 62K
  • HumanoidoHumanoido Posts: 5,770
    edited 2008-11-29 05:35
    Very good idea to run a benchmark. Thanks for the idea. Benchmarks are nice, especially when they are written in a code and language that every processor can understand, in the same language, especially for the ones that are being compared. How can we do that? The posted code is incomplete and although it may specifically have one microprocessor in mind, it won't produce time values or the posted chart. What this code needs is a PBASIC version using v2.5 that will adhere to the rules of the language and written to specifically function to what is best suited with the stamp design. The code provided above (pseudo code) is incomplete and needs to provide the timing routine for each benchmark, otherwise how do you know the time that appears in the chart? - and there are other issues.

    Having said that, I think it's a good idea to develop some benchmark code in PBASIC that would be useful in comparing speed from one Parallax stamp version to the next, and for a compare to the speed of mod stamp circuits, and methods of stamp programming.

    This project is a supercomputer. The pseudo code posted above appears to be "simply designed" for one lonely microprocessor. Currently the BSS Basic Stamp Supercomputer is upgraded and runs a combination of 12 powerful programs and a 12 board hardware mix with the highest speed stamps in simultaneous parallel clustering. It has evolved.

    If there was time, I would write a benchmark code that includes the parallel cluster processing of two hundred sixteen I/Os, one hundred and ninety two peripherals and sensors, with the multiple simultaneous processing of information such as infrared signatures, ultrasonic vision capture routines, piezoelectric controls, multiple speech languages being spoken, compass readings, output drivers for multiple displays such as segment displays, LCD, uOLED, vibra tab mass outputs, PIR data, ASCII and rnd generators, Optoelectronic Interface (OI), Massive Memory Expansion Board (MMEB) drivers, light communicators, real time accelerometer readings, thermometer values, digital pot readings, date, time, touch sensor data, object detection processing, weight processing, servo loops, PWM codes, 3Dmouse, Datalogger, light level processing, encoders and decoders, etc. etc.

    humanoido

    Post Edited (humanoido) : 11/29/2008 5:45:42 AM GMT
  • Ethan123Ethan123 Posts: 10
    edited 2008-11-29 18:14
    Smitty brings up a good point about benchmarks.

    Although, it seems that you are unfamiliar with the definition of pseudocode. Pseudocode is an informal description of a computer programming language. It is meant for human reading rather than machine reading. For someone claiming to have made a "supercomputer" I would think that this definition would have come across as obvious or at the very least google worthy. Becuase pseudocode is meant for human reading, it is meant to be incomplete. Psuedocode is just a way to see the basic functionality of the code.

    You also say that it will not produce a chart. This too is another thing that is obvious, the program itself would not produce a chart.

    If your project really is a supercomputer it should have no problem passing those benchmarks with flying colors.

    Other than that your BSS really is an interesting piece of wires and disorganization.

    If you do perform the benchmarks. I would be interested in the results. Because frankly, I dont see how the BSS is a supercomputer. I think that if you dropped the last S you would be more accurate.

    -Ethan
  • smitty760123smitty760123 Posts: 5
    edited 2008-11-29 18:46
    You can set a pin high at the beginning of the benchmark. then take it low at the end, and measure the time of the pulse. This will give you the time the benchmark takes to run. It can be measured with an oscilloscope or an event counter, or another basic stamp.
    I don't have to write the code for you. I merely suggested some common benchmarks that are used to measure and compare processor execution speed.·You are the one claiming you have a super computer. It is up to you to understand the definition of a supercomputer, and publish results that back your claim and convince authorities in the field. As of now,·I·remain unconvinced.
    The key to supercomputing is to map software to solve a large and difficult problem to parallel hardware. How are you doing that? How do the stamps get organized and work in unison to solve a problem? What is the inter stamp communication protocol? You are responsible to for answering all these questions to back your claim.
    What you have a is several basic stamps doing different things at once (because you have several of them), but these things are not speed demanding. They just need additional pins. A supercomputer is able to tackle a single large and difficult problem and take advantage of the hardware level parallelism to reduce execution time. If you cannot measure execution time reduction, then nothing is gained. You have no meaningful coherent problem that is being solved. All the stamps appear to be doing their own thing without a common purpose. Thats like me saying that I have a parallel processor, because I am posting in this forum in one PC and I am listening to MP3 on another. No execution time is being reduced due to hardware parallelism. The very definition of a supercomputer is one that reduces execution time of a large/difficult problem by taking advantage of hardware parallelism and/or high computational throughput. How many I/Os it has or how many things it connects to at once is not the measure.
    ·
  • P!-RoP!-Ro Posts: 1,189
    edited 2008-11-29 22:07
    Personally, I don't think it is right to attack him on the speed of his supercomputer the way you are. It is obviously not the main purpose. The main purpose is to combine many processors together to make them faster and more capable than the one before it, as well as being easy for a hobbyist to use. If he wanted to make it fast enough to complete this math quickly, he would have maybe used 12 SX's, with much faster processing speed, or 12 Propellers which would allow for 96 different cogs to run simultaneously, providing an exceptional amount of speed. Obviously, though, he didn't choose to do this. Instead he chose the slow Basic Stamp because it suited his needs for processing and he obviously likes its ease of use. This isn't about the project being like a real life supercomputer with capabilities of solving·millions of problems a second; it's about having·a string of easy-to-use processors available to get tasks any hobbyist might wish to complete done easily. Try writing a list of code for a REAL supercomputer, pretty hard, don't you think? Now how about writing code for this small, portable computer for the hobbyist? With thousands of documented articles for it, it shouldn't take long for even a beginner to complete it! Now that is the REAL purpose of this project! The purpose is to make a processor easy to use for any hobbyist in thier own projects, not to just run a string of calculations to make a couple people happy.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pi Guy
  • Ethan123Ethan123 Posts: 10
    edited 2008-11-29 23:14
    Personally, I wasn't attacking him. I don't think smitty was either. I was just pointing out that it wasn't a supercomputer. He said that it beat the worlds fastest supercomputer in ten categories. The following are the ten categories:

    * Smaller
    * Lighter
    * Portable
    * Field Operable
    * Runs on Batteries
    * Has the Greatest Number of (I/O)
    * Has the greatest Number of Sensors/Variety
    * Lowest Power Consumption
    * Lowest Unit Cost
    * Easiest to Program

    None of these things make a supercomputer what it is. If that is the case then I can call my Asus Eee PC a supercomputer becuase it is small, light, portable, field operable (which if you think about it, is actually the same thing as portable but w/e), runs on batteries, has a low power consumption, and a low unit cost.

    As for the number of I/O Sensors and Variety, that is just a result on what you connect to said "supercomputer".

    Easiest to program is also a matter of opinion because to someone who has programmed in a real language such as C or C++, they might abhor using a language without pedagogical value such as PBASIC. All of these things are simply not a supercomputer. Also he himself said that all 12 boards are running twelve different programs. Since this is the case it means that the main purpose is not as you said yourself, "to combine many processors together to make them faster and more capable than the one before it"

    This project is just different things doing just that, different things. I might as well duct tape my toaster to my refrigerator and call it a SuperAppliance.

    I guess the main point of this seminar is that that is NOT a supercomputer and that that ease of use is subjective.
  • MikerocontrollerMikerocontroller Posts: 310
    edited 2008-11-30 03:47
    · PBASIC has no pedagogical value?nono.gif
  • P!-RoP!-Ro Posts: 1,189
    edited 2008-11-30 04:17
    Could you please explain what you are talking about, Mike?

    As for what Ethan said, yes, I see your point. What do you expect, though? Every hobbyist has a tendency to brag a little, even if it isn't quite true. It's just their nature. If you don't believe me, check google and the number of projects with "great names." After googling "hercules robot" I got over 4 million results. Does this mean every one of the robots can lift objects weighing many tons? No, but that doesn't stop them from using the title Hercules.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PG
  • MikerocontrollerMikerocontroller Posts: 310
    edited 2008-11-30 04:40
    PBASIC is a real language as much as C or C++. I'm sure someone adept at machine language could say that C or C++ has no "pedagogical value". Sorry we're going off-topic, humanoido.
  • Ethan123Ethan123 Posts: 10
    edited 2008-11-30 04:44
    Since there was a question mark at the end of that sentence, I am going to answer that question.

    PBASIC is a language with virtually no pedagogical value. I suppose some things are taught such as disorganization and frustration.

    But as far as real pedagogical value is concerned, the Basic Stamp has none whatsoever.

    Off the top of my head here are some but I'm sure not ALL of PBASIC's flaws and reasons why it lacks pedagogical value:

    It is not structured.
    It is not strongly typed. (This means that there is no promotion or coercion.)
    It relies heavily on the GOTO statement.) (This makes for very disorganized code.)
    It has many mystic , unnecessary, and restrictive instructions.
    It has limited nesting.
    There is NO recursion.

    -- -- -- -- -- -- -- -- -- -- --

    Perhaps one of its BIGGEST flaws is that it does not follow the fundamental rules of math (Order of Operations)

    In Order of Operations the way that a math problem is supposed to be solved is like so, Parenthesis, Exponents,
    Multiplication, Division, Addition, Subtraction.

    In following these rules, the following expression would evaluate in the way described below.

    Here 4 is divided by 2. Then, 2 + 2 is left. When this is solved, the answer is 4.

    2 + 4 / 2 = 4

    In PBASIC however, 2 is added to 4 which leaves 6 / 2. When this is solved the answer is 3.

    2 + 4 / 2 = 3 (???)

    -- -- -- -- -- -- -- -- -- -- --



    This is the very reason why languages such as C++ are taught during the first year of college and even at some high schools. This is also the very same reason why the industry does NOT use PBASIC. Any self-respecting engineer would not be caught dead using PBASIC.

    I'm sure I could come up with several other reasons on why PBASIC is useless as a programming language but, it is getting very late and I am quite tired.

    I hope that the information provided in this post answers your question on why PBASIC has no pedagogical value.

    I suppose you could say that PBASIC is about as useful as a screen door on a submarine. That is to say, there is no use.


    -Ethan
  • P!-RoP!-Ro Posts: 1,189
    edited 2008-11-30 04:51
    It's not useless, just a springboard for starting in programming. After people learn it, they have a tendency to go off into other realms of Parallax microcontrollers.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    PG
  • Ethan123Ethan123 Posts: 10
    edited 2008-11-30 04:57
    Mikerocontroller said...
    PBASIC is a real language as much as C or C++. I'm sure someone adept at machine language could say that C or C++ has no "pedagogical value". Sorry we're going off-topic, humanoido.
    Actually, machine language would not have any pedagogical value due to the fact that machine language is made up of 1s and 0s.
  • MikerocontrollerMikerocontroller Posts: 310
    edited 2008-11-30 05:13
    Help us Mike Green!
  • Ethan123Ethan123 Posts: 10
    edited 2008-11-30 05:18
    Mikerocontroller said...
    Help us Mike Green!
    What exactly is this supposed to mean? I am unsure.
  • SRLMSRLM Posts: 5,045
    edited 2008-11-30 06:14
    Mikerocontroller is summoning the experts... Although far from it, I'll throw in my two bits.

    There are flaws in PBASIC, to be sure, but what about those languages that you list that are good to teach (like C++)? Well, off the top of my head, I can think of some flaws (I'll limit it to C++)

    It is very difficult to get started without somebody's help (which compiler do I use? How do I setup the darn thing? Linking, what's that?)
    It is strongly typed (Wait, I have to punctuate my code now?)
    There is no central authority (At least, one that a beginner can ask...)
    Rewards are limited for the beginner(Look ma, I made a program that prints out the biggest number that you put in! Boring...)
    It has many mystic , unnecessary, and restrictive instructions (Why can't I define new operators? Deleting a pointer makes it go away, right? Pure virtual is defined as "=0"???)
    It is much less practical at the beginner to intermediate lever (Build a C++ program that keeps track of your DVD library, or a PBASIC program that physically sorts it?)


    PBASIC is meant to be a simple language that doesn't overly complicate matters, and to allow beginners to easily take up computer programming and become excited with what they can do. And that is key: beginners. The language is aimed at the hobbyist, not the professional. With enough skill, you can make a good product out of it (see the Parallax main website for some posted examples), but if you are professional, chances are that you will want to use a cheaper chip to do production. Self-respecting engineers don't use PBASIC because they can't justify spending $50 on their microcontroller, not because of the language.

    Post Edited (SRLM) : 11/30/2008 6:19:39 AM GMT
Sign In or Register to comment.