RFID Communication Device (Aided AAC)
by WSUAssistiveTech in Circuits > Assistive Tech
138 Views, 4 Favorites, 0 Comments
RFID Communication Device (Aided AAC)
This AAC box was designed to allow a young client who is non-verbal to communicate freely by using various cards and voice recordings paired with buttons. The project is a 3D printed box with 3 buttons and 3 card slots. The cards can be programmed via phone and computer, and customized for the needs of the client. Once inserted into the slots, the cards are read via RFID and linked to the buttons where the client can then press the button to emit the sounds that is connected to the card.
Features:
- Push button activation
- Clear sound from speakers
- Easy programming of new words/cards
- Weighted lower platform to hold in place
Cost: $275-$300
The hope is that this box can be easily recreated multiple times so that the client does not need to transport it everywhere they go. The total cost of creating a new box we estimated to be between $275-$300. Each subsequent box, however, should be cheaper than the last, as you will have extra parts that you can use (ex. the packs of screws will have enough for lots of boxes). We do believe there are cheaper options possible for the charging cables, batteries, and speakers, so if cost cutting is needed these are the three components we recommend looking into.
Inspiration:
Previous semesters: NFC Personal Communication Board : 48 Steps (with Pictures) - Instructables
There is a list of future recommendations at the bottom of the page.
Supplies
For the physical box:
- 3D printer
- PLA filament
- Black spray-paint
- Strip weights
- Rubber feet
- Velcro
- M3x8 screws
- M4x12mm
- M2X6mm
For the electronics:
- Speakers
- Buttons
- Wires
- DFPlayer Mini
- Resistor (1k ohms)
- Power bank
- Power switch
- MicroSD
- Arduino UNO
- RFID card readers
- Charging cable
- Charging block
- USB male to female cable
- Charging cable adapter
- USB pigtail cable
- PCB breadboards
- SD card reader
Additional materials:
- NFC cards
- Tweezers
Semester Plan
This project had previously been worked on by 3 other groups, so our goal was simply to improve the wiring, code, box design, and add quality of life improvements. Some of the early problems that we had encountered with the previous designs were the fact that the buttons were too small, there was a delay on the recordings, and the box was too easily pushed over. As we set out to fix these issues first, we discovered a few more, such as the wiring being old and the cards not being very programmable for the average user. After discussing with the clients speech pathologist, we laid out a plan for the semester.
We listed out the things that needed to be done on the project in terms of importance, but we eventually were able to reach every single one of our goals by the end of the semester, rendering the project as a success in our eyes. We ran into obstacles on the way that proved difficult, but we are confident that the box is much improved and hopefully fully usable by the client now.
Re-wiring
One of the things that we quickly noticed was that the wiring was old and becoming brittle, coupled with a bad DFPlayer, which resulted in the device often times not working properly. We decided to desolder everything in the box and re-solder new wires along with a new DFPlayer. The wiring design is relatively the same as the previous group's design with the caveat that we removed the regulator as it was not needed due to the natural 3.3V regulation of the Arduino UNO.
Note: 9V battery is NOT used in the box, it is just representing the power bank.
The wiring diagram is attached below.
Box CAD Improvements/STL Files
As previously stated, we used the original box CAD as a basis for our improvements. The buttons previously being under the cards were a problem as they were difficult for the client to press, so we removed those button holes and moved them below the cards so that bigger buttons could be placed there. We also fixed all of the screw holes since they were not functional beforehand and we added brackets to hold the components on the inside of the box. The last thing that was changed was the speaker holes, which were moved to the front plate of the box instead of the top, since the new button holes take that space. All these changes were made using Fusion 360.
After this, we created a hollow platform that contains strip weights and has a screwable top plate that the box can snap into to weigh it down via Velcro.
All STL files are attached below for 3D printing. If you would like to modify the CAD model, the Fusion 360 models are also listed below (fd3).
Recording New Cards
One of the most requested additions by the client was the ability to record their own cards. We accomplished this by purchasing new cards with NFC capabilities and using the NFC Tools app on any Android or IOS device. Once a card is programmed via phone, the MicroSD card can be read by a computer and mp3 files can be placed onto it with the same number as the card. All of the older cards can still be used and the mp3 files can be adjusted, but these cards do not have NFC capabilities, so they cannot be changed to a different number or read via phone.
Note: As long as the total storage on the MicroSD card is not full, the mp3 files can be any length.
The instruction manual is attached below.
Updated Original Card Player Code
The original code was updated to read the new programmable cards. The main additions were the following lines:
else{
status = mfrc522[i].MIFARE_Read(pageAddr, buffer, &size);
if (status != MFRC522::STATUS_OK) {
Serial.print(F("Reading failed: "));
Serial.println(mfrc522[i].GetStatusCodeName(status));
return;
}
//Dump a byte array to Serial
for (byte i = 0; i < 16; i++) {
if (buffer[i] == 0xFE){ // Break if end of number
break;
}
//Adds hex number converted to character to number string
else if (((char)buffer[i] != NULL ) && (char)buffer[i] != 'n'){
number_new_cards += (char)buffer[i];
}
}
number[i] = number_new_cards;
}
When a new card is placed on the scanner, the card is read to find the number saved onto the card. When the NFC Tools app writes the number onto the NFC card, the number written onto the card will be in hexadecimal with the hexadecimal number 0xFE attached to the end. The code will read the value on the card up to the 0xFE value and then convert the hexadecimal number to an integer. This integer value is then used to command the Dfplayer to play the number corresponding to the card.
For more details on how the original code works please look at the NFC Personal Communication Board Instructables Step 36.
The code also went through some general cleanup.
The updated code is listed below and will need to be uploaded to the Arduino.
Downloads
Assembly
For the first part of assembly, all of the printed models were spray painted with matte black paint, and the buttons were spray painted with matte white paint.
Once these were dry, the electronics were slotted into the bottom of the box, and the strip weights were placed into the platform.
USB wires for the battery pack were soldered to the power switch and the USB end was connected to the battery pack. The battery pack USB C was connected to a USB C to USB cable -> USB female to female adapter -> USB male to female cable. The USB male to female end was glued into the box charging port for easy charging.
Velcro was put on the back of the battery pack and placed on the inside wall of the box.
The box and platform were then screwed together, and Velcro was placed on the top of the platform and the bottom of the box.
Future Recommendations
If this project is passed on to another group, we recommend to have at least one electrical engineer and one mechanical engineer in the group.
This is a list of the recommendations we have for future adjustments:
- There is currently only one out of the two speakers plugged in due to current requirements causing noise when both are plugged in. We recommend finding a way to get enough current to both speakers and/or finding a speaker that works better so that the space inside the box is more utilized and there is not an unplugged speaker sitting there.
- The current battery solution is a power bank inside of the box due to the fact that we were having problems with charging the previous batteries, so if possible we recommend finding a better battery solution that also potentially takes up less space.
- Before producing more boxes, we recommend creating a dedicated PCB instead of just bread boarding so that the box is easily recreated without as much wiring. We would have liked to do this, but did not have time. We believe that it can probably be done on a simple single-layer PCB.
- We recommend that all cards created keep the stickers/images inside the inner part of the card slot (the part that shows when the card is inserted), so that the card slides in and out easily.
- We recommend that whoever is keeping track of the cards keeps a record of what each mp3 files says (ex. 13 - "I want to go home"), so that it is easier to keep track of which number says what.
- We have made small adjustments to the CAD model post-delivery for things that caused some sizing issues, so hopefully if the box is re-printed these issues will be fixed.