Shop OBEX P1 Docs P2 Docs Learn Events
Need some input for my book — Parallax Forums

Need some input for my book

Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
edited 2008-09-30 16:05 in Propeller 1
Guys,

As most know, (and noted in a couple earlier threads) I'm working on a beginners book
for the PPDB board. I need some input on a couple items.

First of all, I was originally shooting for a 101 book, meaning that there would be 101 projects
listed, but after much debate have decided to put more effort toward quality instead of quantity.
So I'm shooting for more like 50-75 solid projects instead of 101. I think this is a good move.

Also, and this is the part that concerns me most, I've been incorporating many Parallax
sensors into the projects in the book. I'm shooting for both the original demo, then a little
more "beginner friendly" use of the item. While you can do some really cool things by
combining sensors, etc. I'm trying to keep projects centered on on item at a time.

Parallax has some neat toys that work with the Propeller, but I'm concerned that folks will
have to make a serious investment in add-ons to do many projects in the book.
(On the flip side, this isn't a bad thing for Parallax sales. [noparse]:)[/noparse] ) Opinions here?

There's a couple of core items that I'm playing with that appear to be almost
mandatory items for any PPDB experimenter. One of which is the 4-line serial LCD
module. I'm leaning heavily on the idea of using this often in many projects.
Opinions?

As for progress, I've got most of the project plan list done, and I'm working my way
through code for each one. (about halfway through that)
Second stage will be to get them into the book, third will be re-testing each project as listed.

Sources for all outside hardware required will be limited to the following providers.

Parallax
Radio Shack
uController.com


OBC

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
New to the Propeller?

Getting started with a Propeller Protoboard?
Check out: Introduction to the Proboard & Propeller Cookbook 1.4
Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
Got an SD card connected? - PropDOS
«1

Comments

  • SeariderSearider Posts: 290
    edited 2008-09-15 23:55
    OBC,

    I would group the projects into section. The first section can be projects that do not need any additional hardware. I recomend as many projects here as possible. Then have sections for input devices (sensors) and another section for projects using other output devices such as the LCD module.·

    I am sure that what ever you choose to do will be fantastic.



    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

    Searider
  • HarleyHarley Posts: 997
    edited 2008-09-16 00:02
    Looking forward to the book, OBC.

    Busy on a project for a while, but will be useful later on.
    And something to read in the Fall, Winter evenings. Thanks...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Harley Shanko
  • Cluso99Cluso99 Posts: 18,069
    edited 2008-09-16 01:51
    You have a great idea. I wish you every success.

    As mentioned above, keep the different hardware add-ons each in a separate section. You have no doubt thought of the following, but FWIW..

    The TV and FDX can basically be interchanged (tv.out <--> fdx.tx) apart from start command.

    The SD card is a must, because of their cheap prices.

    The LCD - try to allow different configurations as there are some single line also available with the same connection pins.

    Servos

    I'd like to see accelerometers, compass, gyros (and gps because they go together) - but these may be too complex for your book.
  • Timothy D. SwieterTimothy D. Swieter Posts: 1,613
    edited 2008-09-16 01:59
    I think the book is a great idea.

    One part of the book could have stand alone projects. Each projects stands on its own. Another part of the book could have projects building on top of other projects. So in this part of the book you might use the serial LCD more. Add sensors, add outputs, etc.

    The book could also cover techniques for use with the Propeller. Like debugging technique, coding techniques, documentation techniques, etc.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Timothy D. Swieter, E.I.

    www.brilldea.com·- Prop Blade, LED Painter, RGB LEDs, uOLED-IOC, eProto fo SunSPOT, BitScope
    www.sxmicro.com - a blog·exploring the SX micro
    www.tdswieter.com
  • SapiehaSapieha Posts: 2,964
    edited 2008-09-16 02:15
    Hi Oldbitcollector

    I my opinion You title it must be.....

    """ Project for You plus many others """

    On board projects.

    First only spin programing One COG.
    Next 1-x COGs
    And Last PASM

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stuipid question there is atleast one inteligent answer
    If you dont ask you wont know

    Sapieha
  • WhitWhit Posts: 4,191
    edited 2008-09-16 02:28
    I like the multi-section book idea too. The first section is just projects that can be done with the PPDB. Section Two is incoporating other Parallax (or other)·products - servos, sensors, displays (like the input output idea). The third section could be on integrating it all as Timothy said. This would include the subject of combining individual objects into a useful new program.

    If you just wanted to play with the PPDB - You wouldn't need anything else. But, if you were having fun, you could keep going and buy something here or there and keep learning.

    The final stage would be integrating all the ideas into more complex projects. After learning all these things, someone would be ready for almost anything.

    The Propeller Professional Development Board - One Step at a Time

    or Cog by Cog, Getting the Most Out of Your Propeller Professional Development Board

    or How to Develop Your Propeller Professional Development Board

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Whit+


    "We keep moving forward, opening new doors, and doing new things, because we're curious and curiosity keeps leading us down new paths." - Walt Disney

    Post Edited (Whit) : 9/16/2008 2:52:01 AM GMT
  • potatoheadpotatohead Posts: 10,261
    edited 2008-09-16 02:29
    I would set the number of projects to be a prime number. Will catch the geek / math eye.

    As for the add-ons, I think I would put them into two groups. The cheaper group are those that can be done with common, discrete components. The second is Parallax goodies.

    Detail this on the book introduction, back cover, notes, etc... That way, people know what they are getting into.

    The nice thing about this is the max number of people can get started doing stuff right away, and do it on the cheap with a high likelihood of being able to use what they have handy. After a time, they can go back and check out other projects as they have time and budget.

    Too much of one or the other and the work won't be robust.

    Also, say it's done. Publish a bill of materials and perhaps Parallax can bundle those up and ship them out, maybe coupled with the book, priced to make some sense over just buying this and that over time.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Propeller Wiki: Share the coolness!

    Chat in real time with other Propellerheads on IRC #propeller @ freenode.net
  • Ken GraceyKen Gracey Posts: 7,387
    edited 2008-09-16 02:48
    Hey OBC,

    I am currently experimenting with some RTX-OEM12 modems from www.tigertronics.com, which I am using to network some BASIC Stamps (and then the Prop). These modems can be connected to 2-meter HTs for long-range RF communication between microcontrollers. As part of this project I sought out the sample code on their web site and all I found was some circa 90's QuickBASIC. The example was bare-bones. . . very simple. My first attempt at getting the modems working only required a very simple example of sending and receiving a byte or three, nothing too complex. There was no error CRC or checksums, parity check, etc. in the example. Had there been more "complete project" aspect to the sample code I'd probably still be stuck in the starting gate. Their simple code made it so easy I should have skipped the BASIC Stamp and gone straight to Propeller. . . but I'm still learning as you know.

    It's always best to keep it really simple. Avoid complexities. Make your code read itself for user explanation without verbose comments and give them the opportunity to customize the code towards their project rather than deal with the hassle of stripping out the unnecessary pieces they don't need. This is what our hobby readers want and it just so happens it's easy to do! Focus on consistency, quality, format, schematics and pictorials and you'll have more success IMHO.

    The total cost of all parts in the projects is only a concern if you wish to offer a kit. In that case, you're going to be using a lot of passives and the excitement may decrease. People could pick and choose sections of the book for their own use.

    Sincerely,

    Ken Gracey
    Parallax, Inc.
  • WhitWhit Posts: 4,191
    edited 2008-09-16 02:53
    Ken Gracey (Parallax) said...


    The total cost of all parts in the projects is only a concern if you wish to offer a kit. In that case, you're going to be using a lot of passives and the excitement may decrease. People could pick and choose sections of the book for their own use.

    I think Ken is right. A simple parts list with each project would let someone buy just the parts on the projects they liked. If someone wanted all the parts, there could be a package for that to (as said above).

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Whit+


    "We keep moving forward, opening new doors, and doing new things, because we're curious and curiosity keeps leading us down new paths." - Walt Disney
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-09-16 16:35
    I've always been a fan of incremental complexity, where later lessons draw upon what was learned before. I think the first projects should concentrate what is already availible on the PPDB. Then at some future point if you need more material, use various sensors and other devices not already on the PPDB but in such a way that the reader can easily skip the project concerning a sensor they feel they have no use for (or the money for). For the last few projects, it would be neat to see combining elements of prior projects into a more complex design. Combining elements seems to be a struggling point for some, they get the object for the different components they are interfacing with, but they are at a loss on how to combine them in a way to accomplish thier final goal. Just my 2 cents, organize the book however you think works best.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • ElectricAyeElectricAye Posts: 4,561
    edited 2008-09-16 17:49
    OBC,
    whatever you do, spend plenty of time explaining in detail what you're doing and why you are doing it (and maybe even why you aren't doing something else instead). In other words, for example, put comments in the code. Human beings learn by repetition, by seeing things and doing things over and over. One of my observations of and complaints about computer culture in general is that it tends to operate on a theory that "Hey, if I've said it once, that's all I need to do." ...even if the statement is little more than a grunt tucked away in some obscure little corner or the pertinent information was 600 pages ago! The problem is, the human mind, unlike computers, most effectively registers things that it experiences more than once. If you ever watch an old Alfred Hitchcock movie, you might notice that the clue to the mystery is always mentioned or displayed at least three times. Hitchcock understood the necessity of repetition when it came to understanding things and appreciating meaning.

    Oh, and did I happen to mention you might want to repeat details of why you are doing things in your lessons?
    good luck,
    Mark
  • parts-man73parts-man73 Posts: 830
    edited 2008-09-16 17:54
    OBC...

    How about IR...this is covered in part of the PE kit labs.

    This would be the general subject, and you could make several projects that you could use the same parts for.

    for example -

    project 1 - using IR sensor with remote control - flash an LED
    project 2 - display remote codes on the segmented LED display
    project 3 - add a IR LED - sensing distances
    project 4 - use the IR LED to send codes to control a TV

    I once saw a project that received TV IR codes, and sent the inverse twice, thus if you press volume up, this sent volume down twice. Annoying little thing, but building it taught a lesson about IR communications.

    you may be able to come up with a few more, if you break up each subject in this fashion, 101 projects may still be obtainable. You start with the basic, then move up to bigger projects, both codewise, and adding parts to the breadboard at the same time.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Brian

    uController.com - home of SpinStudio - the modular Development system for the Propeller

    PropNIC - Add ethernet ability to your Propeller! PropJoy - Plug in a joystick and play some games!

    SD card Adapter - mass storage for the masses Audio/Video adapter add composite video and sound to your Proto Board

    Post Edited (parts-man73) : 9/16/2008 6:16:46 PM GMT
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-09-17 02:20
    Thank you guys...

    It's always good to having a sounding board when working on a project like this one.

    The idea of splitting the book into sections is sound. I'm also pleased to see that my
    initial idea of starting simple and building up is a good one.

    Like the Expo this is a high peak to climb, but I'm enjoying the challenge.
    (Also finding some "neato" stuff you can do with the PPDB and Propeller chip.)

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with a Propeller Protoboard?
    Check out: Introduction to the Proboard & Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • edited 2008-09-17 11:08
    How about·a collection·simple music projects, a tuner and metronome for starters?
  • lfreezelfreeze Posts: 174
    edited 2008-09-17 14:49
    A very simple project book would be a great help. As a student of all this stuff, I found the

    Basic Stamp Manual version 1.9 the perfect format for beginners.· I started with it years ago

    and still refer to it today.· Kens comments are right on the mark,

    "it's always best to keep it really simple. Avoid complexities. Make your code read itself for user explanation without verbose comments and give them the opportunity to customize the code towards their project rather than deal with the hassle of stripping out the unnecessary pieces they don't need. This is what our hobby readers want"

    ·there is nothing·more frustating to a student, hobbiest, ·than having to parse out the usable elements of a verbose program to find the essential pieces.

    Larry
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-09-18 17:46
    Indentifying the audience is a great start (Beginers), but what would you like them to 'get' after reading the book? A better understanding of electronics? Analog or Digital? Programming?

    Would you just like to get them excited about the topic? Maybe give them a framework for doing their own projects (reverse engineering, planning, etc?).

    Maybe your audience is really educators looking for projects for their class? In that case, you'd want to structure the projects & project notes in that spirit.

    The marketing idiom "Lead with the Need" applies even when you aren't selling anything & it's a good question to ask.

    My only suggestions; people probably don't need a huge list of projects (ala the 101 electronics projects series of books). Keeping it cheap is important; don't include expensive components unless they'll significantly enrich the experience.

    Hopefully, you'll consider listing the projects on Gadget Gangster, too!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Concentrate on understanding the problem, not applying the tool
  • bdickensbdickens Posts: 110
    edited 2008-09-18 17:50
    I would like to see a box or callout with some basic things like 5v interfacing, building a 5v supply (Ping sensor needs). My son who is the one playing with the chip spent longer finding a good 9v to 5v converter circuit than I would have liked (and since I am awful at electronics, that didn't help). So don't let those basic things go without saying.

    From an advanced perspective, a prop to prop communications project would be nice.

    Looking forward to the book.
  • ElectricAyeElectricAye Posts: 4,561
    edited 2008-09-19 13:23
    Ken Gracey (Parallax) said...
    Hey OBC,

    Make your code read itself for user explanation without verbose comments and give them the opportunity to customize the code towards their project rather than deal with the hassle of stripping out the unnecessary pieces they don't need.

    I'm not sure what Ken is saying here. If he's saying that code examples should not include comments, then I have to disagree. For beginners, I can't see how code can simply "read itself for user explanation". To me, that would be like learning to read Chinese characters without the corresponding English translations and little context. What's more, the Propeller IDE system of comment brackets makes it possible to load the code with tons of comments and allow users, at the press of a button, to strip out what they don't want to see. I think that's a perfectly brilliant feature. allowing people to "read" a program at various levels of detail. Why not take advantage of it... unless, of course, your intended audience isn't newbies?

    happiness to all,
    Mark
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-09-19 14:16
    I'm a fan of this type of code commenting. I think it does make it easier for a beginner to translate.

    Places where the code repeats itself, I tend to drop off a bit, but otherwise...

    PUB PIR | countdown                                     ' Public Method name PIR (proximity sensor); with a local long sized variable countdown
    
      dira[noparse][[/noparse]0]~                                            ' Set PIN0 to input
      dira[noparse][[/noparse]1..2]~~                                        ' Set P1-P2 to outputs                       
      outa[noparse][[/noparse]1..2]~                                         ' Set P1-P2 to low
    
    countdown := 10                                         ' Assigned variable "countdown" a value of 10                      
    
      !outa                                             ' Toggle P2 to indicate PIR warm-up process has begun
    
      repeat until NOT countdown                            ' Repeat loop until countdown = 0
        waitcnt(clkfreq + cnt)                              ' Wait 1 second
        countdown --                                        ' subtract 1 from variable countdown
    
      !outa                                             ' Toggle P2 to indicate warm-up process finished
                          
      repeat                                                ' Repeat
       if ina[noparse][[/noparse]0] == 1                                       ' If PIN0 equals a 1 (PIR is triggered)
         !outa                                          ' Toggle P1 (LED on)
         waitcnt(clkfreq/10 + cnt)                          ' Wait a 10th of a second
         !outa                                          ' Toggle P1 (LED off)
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with a Propeller Protoboard?
    Check out: Introduction to the Proboard & Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS

    Post Edited (Oldbitcollector) : 9/19/2008 3:19:05 PM GMT
  • ElectricAyeElectricAye Posts: 4,561
    edited 2008-09-19 14:53
    Oldbitcollector said...
    I'm a fan of this type of code commenting. I think it does make it easier for a beginner to translate.

    
    countdown := 10                                         ' Assigned variable "countdown" a value of 30                      
    
    
    

    Yes, this is a good way to comment things.... But you might want to double check comments vs. code, as in the above line.

    smile.gif·Mark
  • SRLMSRLM Posts: 5,045
    edited 2008-09-19 14:54
    That code probably wouldn't work in a printed format without some reworking: too wide. But I do like the depth of comments in a beginers book.
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-09-19 15:17
    ElectricAye said...
    Yes, this is a good way to comment things.... But you might want to double check comments vs. code, as in the above line.


    smile.gif Mark

    I'm still in the code-development phase.. Issues like that will be found in the final pass. [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with a Propeller Protoboard?
    Check out: Introduction to the Proboard & Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • Mike CookMike Cook Posts: 829
    edited 2008-09-19 16:00
    Oldbitcollector said...
    I'm still in the code-development phase.. Issues like that will be found in the final pass. [noparse]:)[/noparse]
    FLW! (Famous Last Words) tongue.gif

    I occasionally go back and look at some of the documentation, I originally created for our modems, versus what the modem actually does, and it makes me want to kiss the ‘wrong end’ of a shotgun!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Mike
  • ElectricAyeElectricAye Posts: 4,561
    edited 2008-09-19 16:17
    I think comments (especially updated onestongue.gif !) are especially important in this Propeller environment.· Speaking as a newbie, I find myself getting confused by the fact that a line of code that looks like this...

    urp

    ...could mean several things.· It could be a Spin command, it might be assembly language, or it might be a method call.· Since I'm new, and I don't know all the Spin commands and I know none of the assembly language, it's easy (for me) to find myself in a sudden Mandlebrot of possibilities, a confusion that a simple·comment line might dispell at once.·

    ·
  • Brian LBrian L Posts: 60
    edited 2008-09-19 16:35
    There have been comments about keeping the projects on the low budget side so that students with little money can build them. That's understandable and to some extent I agree. But considering the number of different projects that will be included in the book, I say don't be shy about including at least a few that require spending money. Not every "student" is young and broke. And the ones who are might keep the book for several years and then build the expensive projects later. There's a lot to be learned by interfacing the prop with higher priced devices like the GPS module, and those projects shouldn't be left out. I'd make at least ten percent of the book from projects that require spending this kind of money. If you're broke, you still have the other 90 percent you can build, so what more do you want?
  • Nick McClickNick McClick Posts: 1,003
    edited 2008-09-21 21:49
    That's a good point. Too many blinky lights projects tends to make readers believe the whole thing is quite boring. It does depend on your audience. If you're writing for educators, price is a main concern. If it's individual students, not so much.

    I just suggest that if you use a ping sensor, you make it do more than show inches on a TV monitor. A $30 component should do something that's $30 worth of cool.

    It's also important to separate between industrial / commercial projects where the cost of a 10c component adds up to a few thousand dollars. Most hobbyists aren't as price sensitive.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Concentrate on understanding the problem, not applying the tool
  • mirrormirror Posts: 322
    edited 2008-09-21 22:12
    Personally I think the commenting given for the code shown earlier is very poor:
     repeat until NOT countdown                  ' Repeat loop until countdown = 0
        waitcnt(clkfreq + cnt)                   ' Wait 1 second
        countdown --                             ' subtract 1 from variable countdown
    
    

    A comment that would be MUCH better is:
     ' Pause for coundown seconds
     repeat until NOT countdown                  
        waitcnt(clkfreq + cnt)               
        countdown -- 
    

    If the newbie is told·that the·block of code is going to 'pause for coundown seconds' then they may
    begin to understand how that objective is achieved by the instructions that follow. Once they understand
    the block of code they then have more tools to write their own code.·With practice, you eventually find out
    that·code is 'almost English'·, and 'not at all Chinese'. Another example would be a comment like 'Do CRC8
    calculation on·InByte' as a opposed to:
    'Repeat 8 times
    '·· take LSB of InByte
    '·· if 1 then XOR OutByte with Magic number
    '·· Shift InByte right by 1
  • schillschill Posts: 741
    edited 2008-09-22 20:01
    It's a good idea to keep cost in mind, but the PPDB is not a cheap purchase to begin with. People who have one might be more accepting of the cost of components they need for the projects.

    I think it's definitely worthwhile to have a section (or comments within each project) describing how to do the same thing using a basic breadboard and unmounted discrete components. For example, you don't need the PPDB if the project involves push buttons and LEDs. I think a DIP plugged into a breadboard is closer to using the PPDB than using one of the other development boards (which require soldering to connect to).

    Note: these comments come from someone who didn't win a PPDB at UPENE. [noparse]:([/noparse]
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-09-22 21:35
    I'm still reading this thread with great interest.. [noparse]:)[/noparse]

    Yes, I've already considered expanding each item a little for the purpose of those who might
    buy the book and have a PEkit or Protoboard handy. Still in project stage right now...

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with a Propeller Protoboard?
    Check out: Introduction to the Proboard & Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card connected? - PropDOS
  • WhitWhit Posts: 4,191
    edited 2008-09-22 21:40
    OBC,

    I am glad you are considering uses for people with the PEKit or Proto Board too.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Whit+


    "We keep moving forward, opening new doors, and doing new things, because we're curious and curiosity keeps leading us down new paths." - Walt Disney
Sign In or Register to comment.