Final thoughts – Izabela

Project FAT

Sadly, this is going to be my last post here. I would like to thank everyone for bringing their knowledge and talents to the project FAT. I wouldn’t have made it without these guys. They are great and I’m going to miss them. Before we say goodbyes I would like to run you down through my final thoughts on this.

This project was a really big opportunity for me to learn a lot – and I did – in ways I didn’t expect. Let me start by saying that not only this kind of teamwork was new and challenging for me, but the cultural aspect of it was very fresh for me and I had to get used to it – but that’s a great experience which really develops you in new ways.

This was one of the most intense projects ever. First few weeks were pretty normal, having fun & chilling. I think that we started to build and implement our prototypes quite late, which caused me some fears. However, as you can see, deadlines and comments from our teachers work very well for us, because we were able to motivate and finish everything.

While this project has been stressful and unexpected sometimes, I have enjoyed my tasks in the team.

The Team

All team members come from different countries, have different skills, interests, their own ideas and point of thinking, so there was a lot of talking, brainstorming and testing.

I like them, they are a bit weird (which is positive), you can talk to them about everything and keep joking. And they have a lot of knowledge on topics that I don’t know! I could learn from them. Sometimes we were too relaxed – it caused some dissipation and focusing not on the project, but anyway I prefer a more relaxed atmosphere than a more serious and tense one. What’s more – we have finished everything, even being distracted!

Teamwork also maximizes shared knowledge in the workplace and helps me learn new skills I can use for the rest of my career. And in-between all of this, you’re working on your own personal learning goals, which is great in my opinion.

I think everyone did their job well. Everyone had different skills and I’m happy with my team members.

Personal goals

I learned the things that I set as a goal. I did some things related to graphics and visualizations. But the main goal was programming. I really learned a lot in this area. I’ve learned a lot of things related to software and hardware. My task was to program and I am glad that I succeeded. And in addition, I had the opportunity to explore more Unity and Arduino. There were some difficult moments but I managed it, I’m still alive and I have a lot of new knowledge and experience.

I have learned a lot, including tons of small things such as things related to the promotion, conversations with the client/teachers, creating the profile of our project as best as possible, responsibility AND OF COURSE, communication, seriously.

Guys have pointed out that I don’t speak too much, even when you can see that I want to. Well, this is one of my terrible disadvantages and now I have had the opportunity to fix it. This project really makes me a better man.

I am so glad I participated in this, get to know great people and making awesome stuff together which I couldn’t have if I did it on my own. I also understood that not everything can be done alone and it is also worth working in a group because you can learn a lot of new things from others.

I’m really happy that I had the pleasure of going to school here for half a year and that I now have such a great team. I’m sure it will give me a lot for the future.

Overall, I think this project has been extremely satisfying and productive, even though it had its ups and downs, both regarding the team and the installation but hey – I will remember it as a very valuable experience and lesson for the future.

Izabela

@izabelatyprowicz

Software fixies

I’m fixing errors and bugs that we encountered during testing.

Below is  a list and an explanation of what I did:

  • Reset  Button

Added code in Arduino – if buttons 1 and 3 are pressed, send ‘666’ signal to Unity.
Unity: in script “player” added that if it receives 666, let it move to Scene 0.

vvv

  • Problems with the wrong set of sounds

I’ve changed the code in Arduino – now on pads, it sends signals only “0,7,14,21”.

0, 7, 14, 21 is for Scene 1
1, 8, 15, 22 is for Scene 2 and so on

Bez tytułu

And in Unity – depending on the scene, there are interpreted to individual sounds.
(z = x + SceneCounter – 2) <— play the sound from which equals the input from Arduino (eg 0) add a stage number to it minus 2 (Scene01 has SceneCounter = 2, to play the sound
0, 7, 14, 21 is -2; Scene02 has SceneCounter = 3, that’s why the game plays sounds 1, 8, 15, 22)

  • Delete sounds button (already exists) – function to delete sounds immediately so we don’t have to wait for looping to end

It is in the “player” script (Unity) in two places (or actually 14, because we have 7 scenes).

PlayRecordOne … PLayRecordSeven has added features that check whether the list of recorded sounds is empty before playing the sound.
Likewise, in ResetRecordOne … Seven, a function has been added that checks before the list is cleared or is no longer empty.
Previously, this generated errors – or after reset it tried to play an element from the list that isn’t there or tried to clear the clean list – so it couldn’t be reset

  • After 5 minutes when it is finished, you can play – error, because we shouldn’t play sounds when the final video is played

When Scene is “0” “Scene00” or “Scene08”, the pads don’t play.
This is done in this way:
In each of these scenes, there is a new object “GameObject0”, “GameObject00”, “GameObject08”, which in the “player” script I write the value of the scene to “0”.
Pads only work if SceneCounter> = 2, therefore they do not work at 0.

Exception – Scene08 Scene gives “SceneCounter” value to 69 (value selected randomly, out of already used)
This is for the 1 button not to load “Next Scene” only “Scene00” otherwise there is an error about the fact that there is no next scene

scc

@izabelatyprowicz

To go or not to go

Today was the final assessment of our installation and deciding whether we can exhibit it.
Every day we worked really hard with the whole team. Every day from 9 till 18/19pm and then at home. We were all really tired every day but finally, we are really proud of our installation.

The teachers said that we made very good progress, they also said what to improve and fix, but most important: they let us exhibit our project. This game works and we have a ‘go’ from teachers. We are really excited and had a really good time with the team. The atmosphere was most of the time nice and we worked all hard. We’ve all worked very hard the last few days and I can honestly say that I’m proud of each of us and I love my team.

66425321_499211110824738_4472633084965027840_n

@burdetiadrian8  @appleflapjc @oyvindknustadgmailcom @uselessmarkies @vasil1hristov

Software

I am about to finish improving the software soon. We ask different people to test that I know what to work on.
Below is a list of links that I used to create the software:

  1. https://www.alanzucconi.com/2015/10/07/how-to-integrate-arduino-with-unity/
  2. https://stackoverflow.com/questions/25781692/an-object-reference-is-required-for-the-non-static-field-method-or-property-co
  3. https://docs.unity3d.com/ScriptReference/Input.GetKeyDown.html
  4. https://developer.vuforia.com/forum/ground-plane/using-ground-plane-lights-and-shadows
  5. https://www.arduino.cc/en/Serial/Write
  6. https://www.arduino.cc/en/tutorial/button
  7. https://forum.arduino.cc/index.php?topic=449678.0
  8. https://www.arduino.cc/en/Tutorial/StateChangeDetection
  9. https://www.arduino.cc/reference/en/language/functions/time/delay/
  10. https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/conditional-operator
  11. https://stackoverflow.com/questions/1019793/how-can-i-convert-string-to-int
  12. https://docs.microsoft.com/pl-pl/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number
  13. http://forum.arduinopolska.pl/watek-biblioteka-timers-koniec-z-uci%C4%85%C5%BCliwym-delay
  14. https://starter-kit.nettigo.pl/2016/04/biblioteka-timers-16-4-0/
  15. https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/
  16. https://forum.arduino.cc/index.php?topic=45387.0
  17. https://www.dotnetperls.com/list-add
  18. https://www.alanzucconi.com/2017/02/15/nested-coroutines-in-unity/
  19. https://docs.microsoft.com/pl-pl/dotnet/csharp/language-reference/keywords/switch
  20. https://answers.unity.com/questions/728588/reset-the-timetime-back-to-00.html
  21. https://www.c-sharpcorner.com/UploadFile/mahesh/delete-all-items-in-a-C-Sharp-list/
  22. https://docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadScene.html
  23. https://docs.unity3d.com/ScriptReference/Time-deltaTime.html
  24. https://docs.unity3d.com/ScriptReference/Time.html
  25. https://answers.unity.com/questions/910789/play-sound-on-object-in-another-scene-with-button.html
  26. https://forum.unity.com/threads/dont-destroy-on-load.511621/
  27. https://answers.unity.com/questions/267213/there-are-2-audio-listeners-in-the-scene-please-en.html
  28. https://stackoverflow.com/questions/29924725/change-color-of-text-during-runtime-unity
  29. https://docs.unity3d.com/ScriptReference/WaitForSecondsRealtime.html
  30. https://docs.unity3d.com/Manual/StyledText.html
  31. https://answers.unity.com/questions/225213/c-countdown-timer.html
  32. https://answers.unity.com/questions/329768/preventing-my-game-object-from-multiplying-due-to.html
  33. https://docs.unity3d.com/ScriptReference/UI.Text.html
  34. https://answers.unity.com/questions/864840/how-to-access-textscript-component-in-unity.html
  35. https://www.youtube.com/watch?v=7s5bEWZycHQ

@izabelatyprowicz

The last feedback from our Product Owner

Today we had to present all our prototype connected together to Boris and Harry. They tested our “installation” and we got feedback from them.

Feedback:

  • Have dots on the pads to point where to hit
  • Have it possible to stop (a button)
  • Have buttons give feedback by lighting up when we explain them
  • Have a sound file that explains the looping – make better instructions
  • Fix the latency of the drum pads
  • Arduino Leonardo???
  • Preloading sounds
  • Make the buttons more understandable
  • Make it more clear for the user what to do

We got the green light. ✅

We have shared tasks and we will work on it!

@burdetiadrian8 @izabelatyprowicz @appleflapjc @oyvindknustadgmailcom @uselessmarkies @vasil1hristov

Technical parts of the installation

I’ve changed a lot in the technical parts of the installation.
Now Arduino communicates directly with Unity and we don’t need Processing anymore. I also think that thanks to this pads work better (I wrote a new script in Arduino) and the delay is lower.
I added separate scenes for each planet (previously the project had one scene and Panel, in which there was a vector of colors for each planet and changed the set of sounds). Now there are 7 scenes with planets, we already have most textures and main functions. I want to improve everything now and adapt to today’s feedback from Boris and Harry. I also added videos to the start and end of the game. I made the planets rotate. I changed most of them to fit the dome and projection.

gigigi

o

yy

@izabelatyprowicz

How to connect Arduino with Unity – a new way

I will start with the fact that when we were able to connect Arduino and Unity using processing and OSC (and of course with Boris little help) and when I wrote scripts and project under it, then I thought that… I will start again!
…What turned out to be a great idea, because now only the library is needed, and the benefits are that there is no delay. Which means something with the code that Jay-Cee wrote for Arduino was wrong.
So how did I did it? It’s simple, we need Unity, Arduino and Arduino library! which you can download here!
This is a Wiring / Arduino library to tokenize and parse commands received over a serial port.
livb.JPG
I am glad that it works, I hope it will work also on the days of the exhibition.

Software 3.0

Welp, so today I’m still working on software so that everything works until Monday.

I’ve added some random textures to planets, but Vasil has to prepare the appropriate ones and then we will change them. Only one planet will be visible while playing, and after pressing the button, the planet and the set of sounds changes. I also want to clean up the objects and scripts later, to make them more understandable not only for me.

Przechwytywanie

@izabelatyprowicz

Meeting with Product Owner

Today we had a meeting with Boris – our product owner.
He told us that we must hurry up and that this Friday we must present the installation operating from the technical side (it doesn’t have to be the final version). Meeting on Friday is just advice on what to do next

He also checked our blog and said that we would be judged from the blog.

Feedback:

  • Mentions on the blog – not clear
  • change  the username
  • Make more personal posts
  • Tag yourself in your own post
  • Friday – show technical part and working installation

@appleflapjc @burdetiadrian8 @izabelatyprowicz @oyvindknustadgmailcom @uselessmarkies @ruhrexp