rfc on my mtg card playing device
softcon
Posts: 217
Hello all, would like some feedback/suggestions on an idea I had today.
My children (son 10 and daughter 7) both love to play magic the gathering. Until we moved to our current location, I used a combination of braille labels, and either database on the computer, or braille copies of my cards in a spiral bound book to tell what the card was. Problems are 1, cards can't be brailled directly (well, they can, but then the info that fits is minimal, and I usually need to lookup the finer details anyway, so not much point to it) 2, I tried brailling material I'd stick to the card sleeves, but same problem.
2, using database, cards still need identifiers marked on them somehow, and it takes longer to lookup the info, though the info is of course more complete when it's found.
3, combining approaches could work, but still, too much manual intervention, and I'm looking for an automated approach, thus enters my current idea.
Using the propeller, the new speech chip parallax will have out soon, some rfid tags, an sd card, and a bit of fancy coding, I'm wondering how much trouble it would be for me to just attach rfid tags to the back of each card (or it's sleeve) then just wave the card in front of the reader, have the propeller look up the entry for me, and read it out using the speech (preferrably while wearing headphones to prevent eavesdropping).
I know it's doable, at least once parallax releases it's speech chip, and I know the most time consuming part will be populating the database, and assigning rfid tags to the proper entries, but once it's done, I think it would allow me to play right alongside my little ones without the need for any assistance, which usually takes the form of either one of them helping me and not playing, or the games taking a long time due to the lengthy lookup times I need to figure out what I have, and which ones to play. This way I could tag their cards too, so they wouldn't have to read everything they put into play which makes things move even slower. Despite all this, they still love to play, and they do make the sacrifices needed to allow me to play, but I'm thinking this approach would eliminate most of the repeated reading of a card, reminders of which card this is, or even the arguments over who played which card, as I could always integrate a turn counter into it too.
Obviously, I need to wait for a few pieces before I can begin building this device, but when I get them all (hopefully in July) I think it would be very useful, and loads of fun. Any gotchas, ideas for improvement, or any other points I may have missed in this?
Can anyone suggest improvements or alternatives?
Thanks in advance for any input, I sure would appreciate any experience folks have had working with pieces or similar parts of this plan.
My children (son 10 and daughter 7) both love to play magic the gathering. Until we moved to our current location, I used a combination of braille labels, and either database on the computer, or braille copies of my cards in a spiral bound book to tell what the card was. Problems are 1, cards can't be brailled directly (well, they can, but then the info that fits is minimal, and I usually need to lookup the finer details anyway, so not much point to it) 2, I tried brailling material I'd stick to the card sleeves, but same problem.
2, using database, cards still need identifiers marked on them somehow, and it takes longer to lookup the info, though the info is of course more complete when it's found.
3, combining approaches could work, but still, too much manual intervention, and I'm looking for an automated approach, thus enters my current idea.
Using the propeller, the new speech chip parallax will have out soon, some rfid tags, an sd card, and a bit of fancy coding, I'm wondering how much trouble it would be for me to just attach rfid tags to the back of each card (or it's sleeve) then just wave the card in front of the reader, have the propeller look up the entry for me, and read it out using the speech (preferrably while wearing headphones to prevent eavesdropping).
I know it's doable, at least once parallax releases it's speech chip, and I know the most time consuming part will be populating the database, and assigning rfid tags to the proper entries, but once it's done, I think it would allow me to play right alongside my little ones without the need for any assistance, which usually takes the form of either one of them helping me and not playing, or the games taking a long time due to the lengthy lookup times I need to figure out what I have, and which ones to play. This way I could tag their cards too, so they wouldn't have to read everything they put into play which makes things move even slower. Despite all this, they still love to play, and they do make the sacrifices needed to allow me to play, but I'm thinking this approach would eliminate most of the repeated reading of a card, reminders of which card this is, or even the arguments over who played which card, as I could always integrate a turn counter into it too.
Obviously, I need to wait for a few pieces before I can begin building this device, but when I get them all (hopefully in July) I think it would be very useful, and loads of fun. Any gotchas, ideas for improvement, or any other points I may have missed in this?
Can anyone suggest improvements or alternatives?
Thanks in advance for any input, I sure would appreciate any experience folks have had working with pieces or similar parts of this plan.
Comments
You're looking for a way of telling which playing card is which, correct?
What about a barcode on each card?
I use barcodes with the Propeller all the time. They're great!
I've posted a little about my barcode project here:
http://forums.parallax.com/showthread.php?137527-Serial-Barcode-Scanner
I think barcodes would be less expensive than RFID.
My current barcode reader cost $32 from ebay. I use a Brother label maker to print the barcodes. If you purchase a label maker to print barcodes, make sure it's one of the models with a USB connection so you can design labels on your PC.
You'd probably want to use the barcode reader in continuous mode so you could just pass a card by it when you wanted it read.
I'm not an expert on either rfid or barcodes, so my perceptions could be flawed here, so experienced feedback is much sought after. For minimum preconfiguration work, I'm thinking rfid would work better, but perhaps barcodes can be just as easy given proper proper circumstances too. Hadn't considered them before, will need to dig some to see which might work better for this little project.
Thanks for the suggestion.
I'll see how narrow a barcode can be and still have it scanned reliably. I'll also see how close the scanner can be to the barcode.
If you use barcodes, where on the card would you want them?
I think they should be located in the same place on each card. The card could be placed on a shelf rigidly attached to the barcode reader. The shelf would hold the card in an orientation so if could be reliably scanned by the reader.
I think the barcode should probably be either on the bottom of the cards or along the side of the card.
Would having two barcodes per card be a problem? I think it would be advantageous to be able to read the card either right side up or up side down.
What type of interface would you want? I figure you'll want a couple of buttons to request additional information about the card and control playback of the details of the card.
I've taken a barcode reader apart in the past. I added a joystick to one reader so I could use the barcode reader as a mouse. I found there were two circuit boards inside the scanner.
The PCB in the head of the scanner held the laser and detector. There was also a PCB inside the handle of the barcode reader. IIRC, the two PCBs were connected with a cable.
I think it might be easier to use a barcode scanner if the head of the scanner were close to the table. The handle of the barcode reader could be cut off (or both PCBs removed from the original enclosure) and the PCB could be laid flat below or next to the head of the scanner. I think this configuration would take up less room on the game table.
An enclosure to house both PCBs could also include the shelf to aid in aligning the cards.
A Propeller board with headphone jack could either be housed within the same enclosure or sit off to the side and be connected to the reader with a cable.
Here's my list of questions (some I've previously asked):
1) Where on the card would you like the barcode to be located?
2) What type of interface do you want? If you want buttons, how many?
3) Which Propeller board would you prefer to use?
4) Do you want the Propeller board to be a permanent part of the system or should it be easy to separate from the reader?
I have other questions about how data should be organized and how to enter the database information, but those details can wait until after we see if a barcode reader would be a good choice for reading these cards.
I'll let you know what I find out about how small I think these barcodes could be and how small the whole reader system could be made.
This would probably reduce the cost and possibly make data entry easier.
The database would be a relatively small text file, (though, with more cards, obviously it gets larger) At last count (before we moved and all cards got left behind) I had 4-500+ cards, son and daughter had nearly as many, and we probably had about 80% uniqueness between all of us, so you can see prerecording sound bytes for each card would be a rather daunting task, not to mention how much space it would take, text is smaller. I could always fit the scanner with a wireless interface of some sort, and have it talk to my main computer too, and lookup the data that way as well, but I'm really hunting for something self-contained.
What would be in the database for each card would be the following:
card number,
card name,
card type,
attack/defense,
descriptive text,
dcard set,
flavor text
Flavor text is optional, but it usually is funny, and it's usually not long enough to change the size significantly, so no reason not to include it.
You can see an almost sample of what I'd be using here
http://gatherer.wizards.com/Pages/Search/Default.aspx?output=checklist&set=[%22Magic%202012%22]&sort=cn+
That link shows the core 2012 set, and the additional details such as description and flavor text are shown when one of those cards gets clicked.
I had written some php code that automatically downloaded the cards from any given set, reorganized the data, and imported it into a local mysql database. Unfortunately, it looks like I didn't keep a copy of that code anywhere except on my server, and my local drive I was working on it at, and that drive has broken it's firewire port, so I can't access it anymore, and the server time ran out, so that version isn't available anymore either <sigh>
It won't be a major issue to rewrite it, but it would be time consuming.
But, anyhow, the database is easy enough to build, since html scraping is something php is very good at, so I'm not really concerned with that part at the moment.
The barcodes would be pasted onto the card sleeves, not printed directly on the cards themselves, (folks get very picky, and won't trade cards that have been marred in anyway), so to prevent this, I put all the cards in clear plastic sleeves, and braille text on paper with peel-off backing, which I then cut to size, and stick to the back of the card sleeve, but it's a clear acrilic type material, so it won't get in the way of folks trying to read both sides of the cards.
This method would need to be modified for barcodes, but probably not much, I'm just more concerned about how flexible the barcode readers are. There is a product that sells for $225 which scans barcodes on cans/boxes from the store, then reads out item specifics, such as what the item is, and (sometimes) nutricious information and even recipes if available. It will invert/rotate the barcode once it finds it, so I figure that's partly responsible for the 225 price tag, and obviously, that particular device wouldn't work in this case, but building something similar can't be that tough.
I chose to use rfid tags though, so I'd not have to mess with barcode locations, orientation, or even attaching the barcode at all, simply dropping one of the rfid tags into the card sleeve with the mtg card would be sufficient. Securing it would probably be necessary for long term usability, but for a quick test and proof of concept, that wouldn't be necessary.
So, there's my thinking, that's why I'm (currently) convinced rfid would be a better approach, but I'm of course always willing to listen to alternatives, especially since I'm still working this out as I go, and would like to work out as many potential faults as I can before I get started. I'm figuring if this works, I can sell the concept/device to other blind/visually impaired folks who have the same requirements, whether it's for mtg, pockeymon, ugio, only the database needs to change, and everyone would have to enter their own anyhow, since I doubt tsr would allow me to distribute the databases myself, even if the data is pulled directly from their public website.
And, of course, it can be applied to any other collecting hobby as well, including figurines, stamps, coins, and the like.
There has got to be a way to get inexpensive RFID tags, but I haven't been able to find them.
The best price I've found in my limited search are these.
http://www.digikey.com/product-detail/en/32397/32397-ND/2666924
If you buy 25 at a time they cost $0.84 each.
The barcodes I use (which are relatively expensive as far as barcode go) cost about $0.03 each.
The barcodes do need to be aligned to be read correctly by the inexpensive barcode readers. Upside down isn't a problem but the laser line needs to pass through all of the bars of the barcode at once. If the barcodes were square, then the reader would still be able to read it up to a 45 degree angle from horizontal.
I've wondered if a label (or piece of paper) with two barcodes would work. One would be printed perpendicular to the other. If both barcodes were square and had enough white space between them, then the barcode reader should be able to read them in any orientation.
Using a two square barcode could end up making the piece of paper bigger than you'd like. I think the RFID tags are an inch in diameter. I don't know if two square barcodes would be able to fit within the same area and still be readable by the scanner.
I've wondered about ways of automating some of the lab work I do. One problem I've had is barcode orientation. I think I'll try printing some double square barcodes to see if they make it easier for the scanner to read them.
The barcodes I use are usually four characters. I'd think four characters would be enough to uniquely identify all the cards of MTG. I figure four characters should be able to produce over a million and a half unique combinations of characters.
BTW, I tried using the scanner at various ranges. It has trouble with ranges of less than an inch. The only problem from thin barcodes is alignment. If a barcode is properly aligned it could be as thin as 1/16 of an inch.
I try printing some of those double square barcodes and let you know how they work. If you can find inexpensive RFID tags, I'd like to know about it.
The store page for these little guys is at:
http://www.parallax.com/Store/Accessories/CommunicationRF/tabid/161/CategoryID/36/List/0/SortField/0/Level/a/ProductID/116/Default.aspx
Still a far cry from 3 cents apiece, but I think I could spread out the cost enough over a few months I could label all my cards, and be all set to play no matter which cards were in my deck.
I only need 60 to start, since that's the size of a normal deck, so that helps some.
However, if you do manage to get a cheap barcode reader to do the job with two barcodes, please let me know, and I'll experiment with that too, considering the cost, it might be a good alternative until I get enough rfid tags to handle the job.
Thanks for the assist on that, this will be a lot fun to build, and even more fun to use when it's complete.
Those 50mm tags are a pretty good deal but they seem kind of big. Their 25mm tags are the same price as the 50mm tags. There's a price break at 100 with the 25mm tags so 100 would cost $69. Not too bad IMO.
Not sure how much information needs to be stored for each playing card but an SD card or micro SD card can hold several hours of high quality audio and several times that if the quality is reduced. Even reduced quality audio would be better than that produced from any text to speech chip I have heard. As for having to record each card in advance, would you not have to enter text in advance for the text to speech module? Would that be any less work than reading the card contents?
The propeller can play digital audio files with minimal additional hardware so there is no reason it cannot do the same for recorded digital audio. For recording audio there are several free software packages available that can record in numerous formats and at various sample rates.
I'll get some of both, and see which ones work best. Could be the 25MM ones work just fine, and that would be ok too.
In any case, the entire project will be a learning experience, but I still say it'll be a whole lot of fun.
Thanks for the heads up.
kwinn,
I think you missed the part about getting the information off the internet. It wouldn't need to be manually typed in.
If the audio recording route were taken, I think it should be possible to do it all on the Prop. Several Propeller boards have built in mics. I think the PropBOE could do this without addrional hardware.
I haven't tried recording and playing back audio with the Prop myself, but I recall one of Kye's SD demos having the ability to both record and playback sound.
As for recording the information from the cards, I'm betting his kids would be delighted to do the reading. I'm not trying to twist any arms to do it this way, so if softcon decides to stick with the text to speech approach that's fine. I understand the urge to play with specific hardware.
I can take a computerized voice, and put it at the same 500+ wpm word rate, and it takes very little effort for me to understand it, and it even leaves me time to think about what's being said, there's no need for me to devote 100% of my attention to what's being said, I have the time (between words so to speak) to contemplate what's being talked about, and consider some of the alternate angles. Rediculously fast human speech doesn't give me that free time, because I have to devote too much time to interpreting what's actually being said.
I've always run my speech rates fairly high, but I only began maxing them out (and wishing for more) in the last 15 years or so, so perhaps it's just the familiarity of the generated speech that has given me this effect, but whatever the reason, I actually prefer synthetic speech when working at high speeds, while human sounding voices are fine for reading books and magazines, I tend to get slowed down by human sounding voices when working on the computer, which is largely why I use fred on the mac, because the other voices (especially alex) drive me nuts (aside from the fact that they eat memory like a sponge) I can't run them at high speeds without them breaking up and becoming unintellegible. This seems to be a common failing with human sounding voices. I don't know if it's due to their inherent design, or simply the amount of data pumped through in the same amount of time that makes them hard to understand, but for me, synthesized voices are just smoother and much easier to understand when you hit 350 wpm or so which is where I do most of my work.
So, in this case, I have no problem with synthesized speech, and besides, it eliminates the need for me to get a person to read each and every card I want to add to my collection. With synthesized speech, I can add every card in existence, then just tie the ones I have to rfid tags, and when it passes the reader, it can grab it and begin reading. No need to record new stuff when I buy a new pack of cards. It saves considerably on the setup time.