-
Week of May 29th
06/05/2023 at 21:51 • 0 commentsWe did not have school on Monday.
-On Tuesday, our team gathered together to kickstart the brainstorming session for our trifold project. We aimed to generate creative ideas and concepts that would effectively convey our message and captivate our target audience. Kasen and Rishi worked on planning out the different elements that went into our board. That exact day Kasen printed out all of the pictures and decorations while Rishi worked on writing out the components and other text. While they were doing this Arnav made the script that would help us remember everything that we needed to talk about.
-On Wednesday, using a tin snip we cut out the steel for our buttons and taped it onto the back of the board. We also made a script for our presentation that would convey our message to our audience so that we would have a script that told us all of the information we needed to cover in our presentation. While Rishi and Kasen were measuring out the boxes on the piece of tin and cutting them out individually. Arnav was finalizing the code and there seem to have appeared an error with the curly braces and Arnav fixed it. Kasen also worked on sanding the edges for the squares.
That evening we presented our presentation to the judges.
OUR PROJECT WAS FINISHED!!!
-On Thursday and Friday we were finished with our presentation and didn't work on it those two days.
-
Week of May 22nd
06/05/2023 at 18:46 • 1 commentJapan Surge: Week of 5/22 Hackaday Log By: Rishi, Arnav, and Kasen
Monday:
Arnav:
Worked on the code to make buttons work on the 4x4 matrix. Arnav was able to figure out the code and the problem seemed to be that the buffers were not in tune with the ports and this meant that the files from the sd card were not properly pairing with the arduino uno thus causing a blockage between the arduino uno and the sd card. Once the buffers were in tune with the ports on the arduino uno, audio was successfully playing out of the speakers. We had to watch multiple different youtube videos to come to our solution on how to link up the buffers with the speaker outputs.
Kasen:
Our project was due the very next week so Kasen checked Basecamp, Hackaday, code, and project resources for any missed information. He went through the rubric multiple times to make sure that all components of our project were functional and wouldn’t have any last second errors that we had to stress about. Kasen noticed that our basecamp entries for our project were a bit unorganized so he spent the rest of the class period organizing our basecamp entries into their respective sections so we were ready to present it.
(Have finished all the logs thanks to Kasen:)
Rishi:
On Monday Rishi got to school a bit early so that he could work on tracing our board in silhouette studio. This took multiple attempts because the braille wouldn’t trace correctly as it was a small dot but the problem was that Rishi was tracing in a relatively small font which would cross over with the other components of the board. Rishi increased the size of the braille which gave him a bigger field of view and allowed him to be more precise with the dots that he was making. The braille translator that we used was often giving us the wrong braille translations however the website was sometimes giving us the wrong output so we used a different braille translator which gave us the correct output. We linked the correct braille translator in our hackaday components. He then continued working on the easel inventables. Rishi had shown Mr. Woodbridge but the teacher had given him very helpful feedback that made the board turn out really well.
Link for amazing braille translator:translator:https://wecapable.com/braille-translator/english-to-braille-converter/
Tuesday:
Arnav: Arnav had done the step by step design process. In this he had outlined what websites he used to start the code. He also described the code in great detail by showing where the 4x4 matrix occurred in the code and teaching how the code works. He is working on the code and got one button to properly function. Arnav finished up the build design process and updated our May 8th log so that it correlated with everything we did that week including finalizing the CAD as well as fixing up getting our project ready for presentation day.
Kasen: Kasen had done the pictures on basecamp and hackaday. He had taken pictures of the machinery and the code. He also had finished organizing basecamp. He put in all the hackaday links for the project. He also put pictures of onshape, which is where we mapped out our idea of how the board will look like. Kasen also put the pictures for the updated draft dimensions for the playground communication board. However, as always there seems to be a problem showing up every day. Our wires had gotten unplugged in the box! Kasen carefully looked at our code and our pictures to rewire everything.
Rishi: Rishi had done the step by step tutorial on how to construct a playground communication board on hackaday. He put detailed information and pictures on how to accomplish it. Rishi had also put the final touches on the mission statement and our purpose for this project. He also had finished the easel inventables and had corrected the feedback given by his teacher, Mr.Woodbridge.
Wednesday:
Arnav: On Wednesday, Arnav and Rishi learned from our teacher on how to correctly clamp down our board for the CNC milling. However, before this step we had to clean up the CNC milling so we used a vacuum to clean up the CNC miller. There was also another issue on this day where our code where we didn’t save our audio files! This was really frustrating however Arnav realized that he had backups for the audio files and they were saved in the file section and they were saved on the drive.
Rishi: We clamped the board down. This took a lot of time because we are not used to the CNC mill clamps. After the clamps were put on the board, it started to CNC mill. I, then, worked on brainstorming ideas for what the trifold should look like. I did that by putting all my information and pictures in one doc. I then put the information and pictures in canva for the correct font. I later printed everything out so we could glue.
Kasen: Kasen worked on the basecamp. He put in all the updated code we have done so far. He also added more pictures for the step-by-step design tutorial we had in basecamp. He also added information of what we have done for the week of the 15th , by adding information and pictures. Kasen, then, made a detailed description of what the board will look like in basecamp under the doc called, “Communication Board Basecamp”
Thursday:
Kasen:
On Thursday Kasen worked on measuring and cutting the rest of the steel for the board. He used a ruler to see the exact dimensions of the length and width of the square hole. He then drew on the steel the size of the square hole but added 1 cm to the length and height of the hole drawn on the steel. He tried to cut the steel using the tin-snips but was not able to, so he left it to Rishi and Arnav. He later taped up the buttons on the board using gaff tape.
Rishi: Rishi started the day by putting all the information and pictures onto one word document for our trifold for our presentation, which is on May 31st. On the board Rishi will talk about: Our purpose, components, what our project is, and who the project is for. He also started measuring the length and width of the square so we can cut out metal (steel) pieces custom-made for the hole using tin-snips.
Arnav: Arnav scraped off the shredded bits of filament from the CNC mill, stuck between the words, braille. This process was very time consuming and took about 30 min. Then Arnav started cutting out the steel squares that had been measured. Arnav got 3 cuts due to it being a very physically challenging task.
Friday:
Arnav:
On Friday Arnav worked on smoothing out the edges using a faux bone to smooth out all of the edges so that the touch actuators would fit inside of the square with ease. Smoothing out the edges was realized through a mistake where we tried to wedge the actuator through the sharp CNC milled squares and it scraped the edges of our board and left a very bad texture on the sides of our board. Arnav spent the rest of class individually smoothing out all of the edges for our board.
Kasen: Kasen also started drawing on the steel to create button outlines for the button touch adapter. This involved measuring the length and width of the board holes with a ruler and using a Sharpie to cut out even squares for our touch adapters. Then proceed to complete half of the measurement process.
Rishi: I started printing and gluing the pieces onto the board. I have gotten the title, what a communication board is, who the communication is for, the components, and the purpose. We also added a QR code for our hackaday which provides great detail on all the steps to do the project by yourself.
-
May 15th Log
05/19/2023 at 19:18 • 0 commentsArnav: This week we worked on the code a bit more and the audio now successfully works. We made sure to list all of the commands so that now the project can function on the stroke of a few keys on the serial monitor. I also put all the links for the Hackaday in Basecamp
Rishi: I put all the build procedures and code procedures into Basecamp and Hackaday. I added step-by-step detailed instructions on how to do all of the projects by yourself. I also started on easel inventable which is a software where you make your board that you later cut out using a CNC mill.
Kasen: I took pictures of all the machinery. I also took screenshots of the CAD we did so we can so pictures in our step-by-step processes. I gave Rishi all the pictures so he can put them into the step-by-step procedures so people can follow along on the process
-
Final Code
05/19/2023 at 04:55 • 1 comment#include <SoftwareSerial.h>
#define ARDUINO_RX 5//should connect to TX of the Serial MP3 Player module
#define ARDUINO_TX 6//connect to RX of the module
SoftwareSerial mySerial(ARDUINO_RX, ARDUINO_TX);
static int8_t Send_buf[8] = {0} ;#define CMD_SEL_DEV 0X09
#define DEV_TF 0X02
#define CMD_PLAY_W_VOL 0X22
#define CMD_PLAY 0X0D
#define CMD_PAUSE 0X0E
#define CMD_PREVIOUS 0X02
#define CMD_NEXT 0X01
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);
delay(500);//Wait chip initialization is complete
sendCommand(CMD_SEL_DEV, DEV_TF);//select the TF card
delay(200);//wait for 200ms
sendCommand(CMD_PLAY_W_VOL, 0X1E01);//play the first song with volume 30 class
}
String str;
void loop() {
if(Serial.available())
{
str = Serial.readStringUntil('\n');
if(str == "2")
{
sendCommand(CMD_PLAY_W_VOL, 0X1E02);//play the second track with volume 30 class
Serial.println("Second sound track.");
}
if(str == "3")
{
sendCommand(CMD_PLAY_W_VOL, 0X1E03);//play the third track with volume 30 class
Serial.println("Third sound track.");
}
if(str == "4")
{
sendCommand(CMD_PLAY_W_VOL, 0X1E04);//play the forth track with volume 30 class
Serial.println("Forth sound track.");
}
if(str == "ps")
{
sendCommand(CMD_PAUSE, 0X0E);//pause the playing track
Serial.println("Pause");
}
if(str == "pl")
{
sendCommand(CMD_PLAY, 0X0D);//play it again
Serial.println("Play");
}
if(str == "pr")
{
sendCommand(CMD_PREVIOUS, 0X02);//play previous track
Serial.println("Playing previous track.");
}
if(str == "nx")
{
sendCommand(CMD_NEXT, 0X01);//play next track
Serial.println("Playing next track.");
}
}
}
void sendCommand(int8_t command, int16_t dat)
{
delay(20);
Send_buf[0] = 0x7e; //starting byte
Send_buf[1] = 0xff; //version
Send_buf[2] = 0x06; //the number of bytes of the command without starting byte and ending byte
Send_buf[3] = command; //
Send_buf[4] = 0x00;//0x00 = no feedback, 0x01 = feedback
Send_buf[5] = (int8_t)(dat >> 8);//datah
Send_buf[6] = (int8_t)(dat); //datal
Send_buf[7] = 0xef; //ending byte
for(uint8_t i=0; i<8; i++)//
{
mySerial.write(Send_buf[i]) ;
}
}__________________________________________________________________________
Description of our code:
*no specific libraries need to be downloaded for this code
The first part of our code is just defining everything such as our commands and getting the code ready for execution. Then we get into the void setup which is setting the data rate of our serial monitor as well as initializing the external parts of the Arduino such as the chip. Then we get into the commands themselves. All of these commands are put into a loop so that the user can click and listen to the audio cue as many times as needed. Those strings are then used to play the audio once they are typed. Finally, the last part of our project is the buffers. Buffers are what you save your arrays of data on. These are basically acting as cabinets that are holding all of our two-dimensional data that the code is working based on. It takes the data on our Micro SD card and arranges it.
Mistakes to watch out for:
A mistake that we realized that caused the speakers to not play the command was the Arduino RX and TX pins. Whilst connecting these please be careful that the RX on the serial mp3 player is connected to the TX on the Arduino Uno(whatever button you set it to for us the RX was hole 5 and the TX was hole 6 ).
-
Step by Step Process of Communication Board Project
05/18/2023 at 18:12 • 0 commentsWe first got the idea to make a communication board by inspiring people our teacher set up with this. First, we brainstormed how we could make the communication board. We first thought of an idea of two posts that are 3' x 1.5' x 1.5', a board that is 3' x 2' x 0.5' (we did 4' depth so we can do lining easier), and a base plate that is 9.247'' x 8.018'' x 0.4''. We started by mapping out what we had on our paper. We drew the designs shown below.
We put each box and braile to the top left side of board because it will look neat and professional. (We made the thickenss 4'' in this picture below because it was easier for us to do the lining.)
After we had a solid idea of what we were doing we started coding. We coded arduino code. When you press a metal square, (that will be shown on the final project), the code will trigger that sound and it will play on the board through the speakers. We used machinery to do this code.
These are the machinery we used :
Then we used software called Sillohete Studios, (https://www.silhouetteamerica.com/software), which allowed us to correctly trace our images, words, and braille to be able to put onto our Easel Inventables board We needed to trace because we cannot import pictures like that onto our board. We then sent our tracings to our teacher and he gave us back a sns file which allows us to import them onto board.
We then started making our finalized board that will be printed using CNC milling.
We started by gathering the correct pictures, words, and braille. We used the correct braille measurements set by the government so people with blindness can read it correctly. We placed each picture, word, and braille for 12 phrases on the board. We carved the braille using the square feature to push down the board around the braille. The finalized board is this:
As shown above, we cut squares for the metal to go in. The metal is attached to a wire and when touched it will trigger the could and say the word that is shown to the left of the button. We then put words on top of the box to signify which box represents which word/picture.
This is our project and we are very thankful for our teacher helping us throughout the journey of this project of making a playground communication board.
-
Week of May 8th
05/16/2023 at 18:09 • 0 commentsMonday through Wednesday we are working on the code. We improved our button matrix and code.
We got the CAD finished and ready to check. Our teacher made improvements and told us to do it on Easel Inventables and trace everything using Silhouette Studio. So on Thursday and Friday, we redid our board because our size was incorrect. The measurements now are 3' x 2' x 0.5'.
Finished Product:
-
Week of May 1st
05/02/2023 at 18:56 • 0 commentsMay 1st/2nd - Rishi started tracing all the pictures words and braille onto Shillouete studio. I downloaded all the tracing links and sent it to our teacher who sent us back the written format of the pictures, words, and braille that we started putting onto the easel inventable.
Arnav: We have got a code outline of the code and we got one sound function to work. With the help of our amazing teacher, we wired up and tested the 4x4 matrix code and it worked very well. But some wires are not responding and we think it is due to our not fully understanding how to code the numbers with columns and rows.
Kasen: CAD is basically done just some minor tweaks. Now we need to design how we will attach each piece to another or put all the parts into one piece. Also, we implemented braille onto our communication board so blind people can feel what's being said on the board and click it.
-
Week of April 24th
04/17/2023 at 18:34 • 0 commentsRishi: We started working on the base plates We are making base plates so the posts can stand upright without falling. The width of the base plate is 9.247" and the length is 8.018" and the height is 0.4" I also started learning how to use silhouette studio to trace our pictures, braille, and words onto our board. I also finished the missions statement and added all the cards to the card table so we have a good idea of what we need to get done to finish this project.
This is the website to download and use silhouette studio: https://www.silhouetteamerica.com/software
Kasen: I started learning braille. I watched tutorials and spent most of this week mastering the art of braille. I started on the base camp by adding pictures of our machinery and adding pictures of the dimensions of our board.
Arnav: I started on the code. I used various websites to get the base code in. I am trying to code a 4x4 matrix so that when you click on a button it will trigger the code to make audio release from the speakers that are connected.
This is the website I used: https://www.circuitbasics.com/how-to-set-up-a-keypad-on-an-arduino/
-
Week of April 17th
04/17/2023 at 18:18 • 0 commentsKasen Rishi:
We started mapping out everything we will do for the CAD (Only mapped out 2 this week): We planned the CAD by drawing out the sign on a piece of paper and we implemented that drawing into the CAD. We decided that the length of the board should be 1.5' and the width of the board should be 3". The height of the board should be 1'. The individual blocks should have a length of 2.25', a width of 3', and a depth of 1.5'.
We started making posts and the board that will be connected towards the top of it. The length of the posts will be 3' length, the width of the post is 1.5' and the depth is 1.5'.
Arnav: I started working on the code. I learned what code we need to use and started looking at tutorials. I learned a lot about Arduino code and how it works. I also connected all the machinery and discussed how everything worked.
This is the base video arnav used this week to understand the concept of Arduino:
-
CAD Design: Board
04/17/2023 at 18:07 • 0 commentsWe planned the CAD by drawing out the sign on a piece of paper and we implemented that drawing into the CAD.
The length of the board should be 1.5' and the width of the board should be 3". The height of the board should be 1'.
The individual blocks have a length of 2.25', width of 3' and a depth of 1.5'.