Wednesday, July 30, 2014

Meeting with our Specialists 8

Post no.16

Tutor(s) Present: Jazmi Jamal

I honestly try to never miss a consultation session with any tutors (although I did not achieve a substantial amount of progress) because I feel like I would still benefit from them - as I could get different perspectives. Which is important.

So today I showed Jazmi my slides, (the one I did because I thought there was a progress sharing and turned out that I was the only one that did it - which is good in a way) and through that, he could see a better overall look on my progress.

1. UNITY
He mentioned that UNITY : Fluid levels or anything that dealt with water physics was difficult to execute. I wasn't planning on including any water animations in it but it was good information. I think it's because of the prototype coding I showed him, it had a waterfall in it.

2. Music
Another thing he mentioned was that I had to find free music, and I could get it from SoundCloud or westonemusic. I should pick the music first, and then derive the graphics from there. Which is an important note. My go to for free music has always been FMA.

3. Projection
Through my slides, I showed him how my projection would work. But it turned to be too much of a hassle to calibrate and then he suggested to do something alike the holographic box I did last semester. Simple and precise. He showed me this:


I could just use the same method! I LOVE THIS METHOD! Why didn't I think of this?!
I could just use the monitor screen or tv as the screen and it would work handily.
4. Board protection
To protect the sensitivity and such of the boards, I would need to case them properly to avoid as much errors as possible.
5. Glove Design
I brought my boards to show him and he thought that the size of the boards would restrict hand movements of the users. 

The red dot is the microphone. Right now it looks like a hand-thong. Ohmygod. I need to redesign it.

Happiness Level : 7

References

Freemusicarchive, (2014). Free Music Archive. [online] Available at: http://freemusicarchive.org/ [Accessed 31 Jul. 2014].
SoundCloud, (2014). SoundCloud - Hear the world’s sounds. [online] Available at: https://soundcloud.com/ [Accessed 31 Jul. 2014].
Westonemusic, (2014). Music for Media. [online] Available at: http://www.westonemusic.com/ [Accessed 30 Jul. 2014].
YouTube, (2014). HAKO VISION — projection mapping candy toy. [online] Available at: https://www.youtube.com/watch?v=5817g-2szzk [Accessed 30 Jul. 2014].
YouTube, (2014). HAKO VISION GUNDAM IN DAIBA. [online] Available at: https://www.youtube.com/watch?v=OeiyZbar-sI [Accessed 30 Jul. 2014].

Monday, July 28, 2014

Learning Unity and C#

Post no. 15


Friend and Tutor(s): David Tan - UNITY Game Developer at MediaSoft

Already having moderate knowledge of JavaScript and Actionscript, David was so kind to teach me UNITY and C#!

As for the finished lesson, we managed to create a game with two interchangeable scenes via clicking.

Here are a couple of screenshots!

This first screenshot here, shows how I could drag effects like water, smoke, particles and such from the assets.


He taught me how to animate via sprite!


For the Animation Script,
He used DeltaTime to Average out the time, basically giving it optimum time the graphics need. The sprite is easily separated, all I needed to do was go to Sprite Mode>check multiple> and slice. I have to make sure the background is transparent.

There was a problem at first when he was trying to animate it because the code kept waiting for the 8th Frame when it only went to the 7th. So, he added a -1 to its code like this:

(frame > animate.Length - 1) then  frame=0.

else,

GetComponent<SpriteRenderer> ().sprite = animate [(int)frame]; 

I needed to convert the integers into frames so the program can recognize them!

Then it worked fine!


Okay so basically this is what I've learned:

There's three types of coding that I could do, Boo Script, Java Script and C#. Personally I think C# is awesome cause they have drop down shortcuts for me to use like Actionscript. It's very much like the combination of the two; (JS and AS).

So Hierarchy is something like a library, - a place where you could temporary store your elements. To keep the area clean, it's good practice to make a Prefab folder where it could store all the elements' properties and children.

In the script, you could just load them up from the PreFab folder.

Individual scripts can be dragged and dropped into different elements. I could do it the old fashion way by giving it a tagname (kinda like instance name : FindObjectWithTag) but it would be too much of a hassle when I could just drag and drop!

So the Inspector contains all the element's properties. Like the scale, positions and such.
It's basically 3D space, so if I were to create a background, I would just need to insert a plane element onto the stage.

I could either choose Perspective (3D) or Orthographic (2D)

The clipping planes set the maximum and minimum for the camera.

To add a layer, I could just simply look for the through the first sentence in the Inspector tab. I could hide and see them just like I would do in AI or Photoshop.

Unity already has automatic physics ready at my dispense, so he dragged RigidBody into one of those elements. When he clicked play, it fell onto the plane(floor) created!
To access RigidBody, I would just need to go to top tool bar and hit 'Components' > 'Physics'.

I could create spotlights in hierarchy as well to play with shadows. (Shader)

Then, he opened a C# doc, and changed to position with code.
LocalPosition affects the scene space whereas Position affects just the object itself.

As for scaling, there is just LocalScale.

Float is for values that contain decimals whereas Int are for rounded of integers.

Just a basic little reminder:

up : +y
left : -x
right : +x
down : -y

To test script, like Trace in AS I was required to type 'Debug.Log("CALL/whateverIwanttocheck")

COLLIDING: The element falls and stays on top another element.
TRIGGER: The element can fall through another element. To enable this, click the trigger option at Box Collider.

If I see and error with Null Object, it means that one of the obj has no reference. Like, it;s calling something that isn't there. So it's best to check if you properly linked the objects to the elements.

To CLONE and object: "Instantiate(clone)" Instantiate basically means create, or initiate.

He put in a code Quatermion.identity and said it's basically for rotation.

Okay so basically for my game, I didn't want any key to be specific and have their own layers to upload. I want it at a first come first serve basis. So it should look like this:
It's put under Update so it keeps running.

void Update () {
if (Input.anyKey)
{
if (Input.inputString != "")
{
Debug.Log(Input.inputString + " call");
}


And at the top, to test :
string name = "dog";

Once played, the program recognized that 3 characters are present.

MOUSECLICK
To create a button, he first showed me the GUI method. Which is inefficient because it would keep running as it its placed under Update.

void OnGUI()
{
GUI.Label (new Rect (10, 10, 100, 100), "Blah!");

if (GUI.Button (new Rect (10, 50, 100, 100), "Channge", style)) {

Application.LoadLevel (1);
}
}

The Application.LoadLevel is to call the second scene. Once I publish, I could see its ID on the right to the name of the file. Like 0,1,2 and so on.

So for a more efficient way, he did this:

if (Input.GetMouseButtonDown(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100))
Debug.Log(hit.collider.name);
}

For the number beside GetMouseButtonDown(0):
0 : Left click on the mouse
1: Scroller on the mouse
2: Right Click on the mouse

Basically there's this RaycastHit function where a ray would be shot in front of the object to test whether it is there after the mouse is clicked. (therefore, it would only run one time) So, it could sense that it is there.

Ellipsoid is a kind of particle property.

To add text into the stage: GameObject>insert 3D Text)

TO EXPORT: I can go to File>Build Settings and click switch platform if I needed to switch between mobiles and what not.

TO HIDE A SCENE/ELEMENT: It's pretty straight forward, it's Other.GameObject.SetActive(false).

TO UPLOAD A FONT: Just drag and drop the ttf into the folders! 

For uploading the CAMERA : I just needed to paste this chunk of code.

WebCamTexture webcamTexture = new WebCamTexture();
renderer.material.mainTexture = webcamTexture;
webcamTexture.Play();

ENUM (Enumeration)
This term was new! But it works the same as SwitchCase in AS. I could put in switches in it too.

Basically the wonderfulness of c# is that you don't need to define every single element individually by creating public vars one by one. Which is annoying. I could just do this!! Just commas! Amazing!

public enum item
{
rock,
stick,
paper

then

if (pick == item.rock)
{
}
else if (pick == item.stick)
{
}
else if (pick == item.paper)
{
}

IT'S SO CLEAN!

Okay, now to the complicated part.


DELEGATE
Now what is that?
Delegate is kinda like a remote control/mini robot to help you organize which script to call first. Sometimes there are two scripts, one running slower than the other. We need delegate so that the faster script doesn't run so fast when the slower one is not completed yet. Basically, to input hierarchy and to check it the script is being run or not.

So, I will have to put this line of code under the Start function in my ChangeScene script:
objDelegate.call += Trigger;

and put :

if (Input.GetKeyDown(KeyCode.Space))
{
if (call != null)
call (" dog");
}

in my Delegate script. I have to make sure I put using System; at the top to call the system from the library if not its not going to work!

Anyway, I learned alot through this 4 hours! Amazing! Maybe TOA should hire him to teach UNITY. (it's the FUTURE!)



Friday, July 25, 2014

Meeting with our Specialists 7

Post no.14

Tutor(s) present: Yee Siang

So the moment I saw him, I immediately told him my woes about whether the wi-fi could connect to my home router. His reply released all my tension. He said yes!

He brought his box of sensors, and showed me this really cool heartbeat sensor. Also, since I didn't buy the accelerometer sensor just yet, he showed me his tilt sensor!

Yee Siang taught me how to connect my router and check out my I.P. address as well. He said I needed to test if the lilypad xbee could work on its own without the main board. To connect the Xbee to the computer I needed to know php. *gasp* I know none of it.

He wants to know how sensitive Trace Sensors are since he was more familiar with wired sensors (the one with the antenna sticking out).

I could test the lan connection of the home router (the one Gerry's housemate so generously borrowed) first with my computer and other computers, but I need to get the cable to connect them first.

PLANNED ACTIONS:
- Sketch some graphics for goodness sake
- Test if Lilypad Xbee could be used as a main board


Next Session: He wants to see a working prototype.

Later in the evening.


My boards came today!


I didn't order a few items like the accelerometer, the RGB leds and the vibration motors. I couldn't see the price tag go up to 300 Sing. Also, I had to make sure that I was going in the right direction. I want to dip my toes in the lake first. But in this case, I've already dipped my entire right leg into it.


But, l discovered I'm missing this piece! The FTDI chip to connect to the Arduino lilypad.

I had a friend in UK that gave me a private message (Justin Kong) about how cheap all his components were because he shipped them from China. And I was thinking, WHY didn't I think of CHINA's TAOBAO in the first place?! They sold alot of sensors at such a cheap price, I could get the arduino lilypad at just RM11 when I bought it at RM70!

However, they didn't sell some of the parts which I bought, so that was a huge relief. I noticed I accidentally ordered TWO lilypad Lipowers. How silly of me.

Justin was really helpful, he gave me a pdf on C language and it looks really useful! He said that he could be able help out with some stuff in the process when he comes back to Malaysia for 2 weeks. After that, he's going back to UK to start on his PhD in Mathematics. And he's only a year older than I am. *APPLAUDS*

I fixed the Trace Xbee onto the Lilypad Xbee. At first, it didn't quite fit because I had it facing the other way. I panicked a little.

I turned it around and, OH IT FITS! I was so glad. Another weight lifted off my shoulders.

I measured all the parts on my hand and discovered that this wearable was never going to just fit on my hand. It was going to be an ARMBand.

It's going to be called a WOO BAND. I'd better do some research on the name in case it means something horrible in another language.

As for the installation mechanics, a friend from my cellgroup (David Tan) is willing to meet up and teach me some UNITY! I have always wanted to learn the software!

I'm also quite glad that I do not need to use Actionscript anymore (hopefully) because apparently UNITY could link with ARDUINO!

I'm so glad that I have friends to help!

I sound extremely excited and loud in this post albeit the bad news of my participation in recent awards and college.

I guess I'm just really excited with this project!

So, my current team mates for my final year project would be (they don't know they're in it):

- Me
- Yee Siang (Arduino's expert a.k.a. my tutor)
- Jazmi, Sweii , and Daniel Chong (Contextual  and User Experience Gurus)
- David Tan (UNITY game developer)
- Justin Kong (Self initiated Arduino Robotics expert - he's doing a self-balancing robot right now: I'd like to know how he handles the accelerometers' sensitivity and axis')
- MY DAD (he's going to be helping me with the sewing)
- Gerry (he's going to be dealing with little technical problems I have and my ever so fluctuating moods)

Ohmygod! That's a team of 7 already! 

I'm going to name us, THE CREED. (I'm easily influenced by the current books I read)

Somehow, I love basking in the glory of being so technical.

Thursday, July 24, 2014

Projection Mapping Planning and slides for Progress

Post no. 13

Here's an example of how I would be executing the projection mapping.



I have done some digital sketches in AI as well.




Here are my slides of my current progress. Silly me, I thought I needed to present in front of class like TWP last semester. And also Jazmi told us that we had to. Oh well, sometimes a little confusion is good, in this case, its great. It forced me to complete and pen down everything officially and systematically.








*I have change its name to WOO BAND due to the huge diameters of the boards.














References

mino, a. (2013). Hatsune Miku desktop live stage with projection mapping app. [online] YouTube. Available at: http://www.youtube.com/watch?v=CTS8rs6zUT4 [Accessed 12 Jun. 2014].
Tomorrowland, (2014). Your Tomorrowland Bracelet. [online] Available at: http://www.tomorrowland.com/en/your-tomorrowland-bracelet [Accessed 15 Jun. 2014].
Xylobands, (2013). LED wristbands and wearable technology products. [online] Available at: http://www.xylobands.com/ [Accessed 18 Jun. 2014].

Friday, July 18, 2014

Feasibility - Time Management

Post no. 12

I met with Sweii today to get feedback on my SOI and study blog. I could say my lost of direction in the earlier posts before June 13 was my downfall.

Well, here is my feasibility check. I'm glad I have weeks to troubleshoot.

JULY (2014)
WEEK 9 – Purchasing of Hardware & Progress Sharing
WEEK 10 & 11 - Producing a prototype
AUGUST
WEEK 12 –  Purchase remaining materials/boards 
WEEK 13 – PROSPECTUS Submission
WEEK 14 - PITCH Presentation
SEPTEMBER
HOLIDAYS 
- BLOG progress
- Construct 'Stage' for projection mapping
OCTOBER
HOLIDAYS 
- BLOG progress
- Execution of code
- Execution of graphics (access IIS to set projection mapping)
NOVEMBER
WEEK 2 & 3 - Animate graphics and link to Arduino
DECEMBER
WEEK 4 - Sew wearables
WEEK 5 – Alpha testing
WEEK 6 - Refinement and troubleshoot codes
WEEK 9 – BETA testing
JANUARY (2015)
WEEK 10 - Refinement and troubleshoot codes
FEBRUARY
WEEK 11 - Refinement on graphics and sewing, and troubleshoot codes
WEEK 12 - Refinement and troubleshoot codes
WEEK 13 - Refinement of codes and graphics
MARCH
WEEK 14 - Final Submission (Final Degree Show)

Meeting with our Specialists 6

Post No. 11

Tutor(s) present: Yee Siang

I have added a label and separated my sessions between idea and technical posts.

I discussed my technical concerns about how bluetooth is limited and I would connect my boards to to the computer.
YS then suggested I stick to wifi connections because BlueTooth had latency- it lags when it sends and receive signals.

We also decided how I would need to get a Lilypad board instead of reusing my Adafruit Flora.
Reason why: My Adafruit Flora could not support wifi signals.

There are several types of Lilypads, so I did some research and discovered that I had to get the one called Lilypad Xbee, which is made to connect to the Wifi Xbee board.

X-BEE 

The one on the left is the Xbee with the Trace Antenna, the one on the right is the Xbee with the Built-in Antenna. Basically its just the one on the left, but it has an a black antenna soldered into it. I proceeded to find the difference.

One of the comment by the name of SteveCh clarified this with his comment made 2 years ago the difference between Printed Circuit Board and :
 "No RF-way to solder on an antenna where there already is an antenna. Disrupts the impedance. There are XBee’s with u.FL connectors so you can plug in a coax going to a variety of antennas.
PCB(Printed Circuit Board) antenna to me means antenna formed by copper traces on the XBee. That’s what’s talked about in the WRL-11215. There is/was an XBee with a similar antenna, in the form of a (blue) silicon chip antenna that mounts on the PCB. That kind of chip antenna is widely used in WiFi and Bluetooth. The antenna has poor/negative gain and an irregular radiation pattern. The PCB trace antenna is likely very similar to the chip antenna, but less costly.
The wire antenna, if you have the space, and if the XBee isn’t inside a ferrous metal box, is the best choice. If in an aluminum box- you may be surprised as to how RF-transparent aluminum is, vs. steel."

Antenna, Antennas, Antennae...

  • Chip Antenna – Basically a small chip that acts as an antenna. Quick, easy, cheap, not in the way. These are being phased out in favor of trace antennas, which are essentially the same but printed directly to the circuit board.
  • Wire Antenna – Well its a small wire sticking up, a little more of what you think of when you think of antenna.
  • u.FL Antenna – A tiny connector to connect your own antenna, this is great if your object is in a box and you want your antenna outside the box.
  • RPSMA Antenna – A bigger connector to connect your own antenna, once again great if your object is in a box and you want your antenna outside the box.
  • Trace Antenna – Also called a PCB antenna, these are formed directly on the module with conductive traces. 


They perform about the same as wire antennas.This entire text is found from the Xbee Buying guide from Sparkfun here. It cleared up alot of confusion! 

After reading all and comparing all of them, I wanted to get the PCB antenna. Its antenna is embedded into the chip. But after much research, the Trace Antenna is the PCB!  (got stock) It might be the more likely one to be bought. (8pins)


There's a question on StackOverFlow regarding multiple receivers of multiple Xbees.
Here.

Here's a video tutorial on Xbees: Here

Through this tutorial I discovered that I would need to connect my Xbee to an API ROUTER, because I'm going to be using more than one device. Through his tutorials, I also discover that I needed to download a software called X-CTU to upload to the wifi boards.


I called and checked their stocks, There's only one left in MyDuino!

As you can see the one on the left is the LilyPad Xbee and the one on the right is the LilyPad Arduino. The LilyPad Xbee has two rows of sockets that could nicely slot the Xbee wifi board.

I might also need to buy The LilyPad Arduino as the Main board and connect it to the LilyPad Xbee. So I might need both.

Here are more details on the Lilypad Xbee and each ports' functions.

DETAILS ON LILYPAD XBEE

More tips on how to connect both of the main board and xbee wifi together : Here and Here





Here's the tutorial on how to link my boards via wifi and connect it to a Router which I fortunately could borrow for free from a friend who wasn't using it anymore.

TUTORIAL TO LINK LILYPAD TO COM VIA WIFI

The battery

So for the batteries to power my wireless device, YS suggested I go for a 5V Power supply.

The one below is the Lilypad Power Supply DEV-11259. It runs on AAA batteries and is easy to switch. However, it is very expensive to ship and it takes a month. This board amps up the voltage to 5V, from the 3.3V the AAA battery gives.


The wiring is not messy. Below is map that connects to the microphone I plan to sew into the glove. This is the mic that could detect the volume and initiate the installation. It's called the Electret Microphone Breakout.



Therefore, I opt the second option, which is to get a Lilypad LiPower. It's smaller too. This little extension also amps up the voltage to 5V, my ideal amount of voltage. Below are some of the examples for wiring the board with the LiPower and the Polymer lithium battery.


This Polymer Lithium Ion battery - 400mAh has 3.7V but it will be amped up to 5V from the Lilypad LiPower above. It comes with the JST cable too, the one that is red and black in color. The wire goes into the white socket in the image above to power it.

 Below are some examples of how to wire the Lipower to the LilyPad.



They are using Arduino Lilypad for the picture above.

The wiring 

First I would need conductive thread, this would act as the wires.
This one in particular is only $5 and its 30ft. The Conductive Thread Bobbin.



I had one question, do I need an extra board Arduino Lilypad to connect to the accelerometer like the wiring map below, or could I just attach it to the Xbee? And the answer is YES, YES I DO. I can feel my wallet getting colder already.


This images are from a tutorial from here. They are communicator cuffs.

Feedback 
I probably would also need the lilypad tri-color LED as feedback on the glove.

Below is a vibration motor. A prompt to get the users start Fist Pumping.



I researched thoroughly. I don't wanna be cheap and naive like the last time. For livetags, we actually bought the wrong board. Waited 3 weeks for it. But since my mom is going over to Singapore next week, I could ask the shop to deliver it to her office like the last time I did for the Adafruit Flora.

Basically, this is the closest map I could find to what I need. Without the extra LED's at the pinky and ring finger.

I got this map from here.

Here's a really good tutorial site as well: HOW TO GET WHAT YOU WANT

I did a calculation to my overall budget for one glove, and it came to RM407. Looks like its gonna be just one player. SO EXPENSIVE. My budget is 500. That's it. It's gonna be just one user.

The Xbee board may not be available in Singapore, but it could be bought at MyDuino Malaysia.


Apparently I need an xBee connected via usb to my computer to send the signals out to the other xBees. That means if I want two users, I need to have 3 xBees. 1 for my computer, and two for the remotes. So, yeah my budget already reached 500+ before even starting on the project.



References


Fusion-artist, (2010). Marco's XBee Tutorial. [online] Available at: http://fusion-artist.com/XBee/XBeeTutorial.htm [Accessed 18 Jul. 2014].
HOW TO GET WHAT YOU WANT, (2010). XBEE DIRECT (MULTIPLE XBEE – XBEE- COMP). [online] Available at: http://www.kobakant.at/DIY/?p=270 [Accessed 18 Jul. 2014].
Lilypad XBee, (n.d.). LilyPad XBee. [online] Available at: http://lilypadxbee.faludi.com/about-board/ [Accessed 18 Jul. 2014].
Sense/Stage, (n.d.). Using your own Arduino-XBee combination. [online] Available at: http://sensestage.hexagram.ca/using-your-own-arduino-xbee-combination [Accessed 18 Jul. 2014].
Sgbotic, (2014). Singapore Robotic. [online] Available at: http://www.sgbotic.com/index.php [Accessed 14 Jul. 2014].
Smart Citizen, (2014). MANUAL SETUP : THE SERIAL WAY. [online] Available at: http://smartcitizen.me/posts/view/10 [Accessed 18 Jul. 2014].
Sparkfun, (n.d.). XBee Buying Guide. [online] Available at: https://www.sparkfun.com/pages/xbee_guide [Accessed 18 Jul. 2014].
Stackoverflow, (2014). swing - How to Send and Receive Multiple XBee's Packet in Java Properly. [online] Available at: http://stackoverflow.com/questions/24632318/how-to-send-and-receive-multiple-xbees-packet-in-java-properly [Accessed 18 Jul. 2014].
YouTube, (2013). XBee Basics - Lesson 1 - General Information and Initial Setup. [online] Available at: http://www.youtube.com/watch?v=odekkumB3WQ [Accessed 18 Jul. 2014].

Thursday, July 17, 2014

PPM - Meeting with our Specialists 5

Post no. 11

Tutor(s) present: Jazmi

Here are a number of sketches that I made.


SO I did a brief use case scenario on the flow of my project.
I removed the game element from my project and made it a more of a display of interactive experience.

I plan to create a finished product.

What we discussed Today:

- the overall flow of the user experience and display flow

- the sound sensor/microphone addition to start the experience (projected DJ asks are you ready, Let me hear you scream!) Then users would scream through their hands into the sound sensor. ill set the sensitivity to a really low level. Once it reaches a value high enough, the experience will start.

- I decided that through my sketches and technical knowledge, that to separate the wifi antenna and the board would be unwise because it effects the transmission and that the user had to have a long wire extending from the glove to the head gear. (where I initially planned to hide the antenna.) SO I thought of just placing it at the side of the glove.

- How can the computer recognise which serial port would upload which layer of display? From what I know is, I don't want each layer to be assigned to each player. I want the computer to recognise the quantity of players active, and that if senses the first user (can be user1, user2, user3) it will upload the first Layer of graphic. AS stated below in my sketch,

Layer 1:
- active backgrounds

Layer 2:
- added elements

Layer 3:
- ambient projections like camera flashes, fire prosthetics and lasers.

Idle mode:
- text prompting users to Fist pump
- particles floating around
- vibration motor on glove starts pumping.

For the vibration motor,  I plan to use it as a prompter, But when the user starts doing the action, the vibration would stop.





Actions to do Next:

- run tests, have working prototypes
- Research on how to combine serial ports to make the transmissions less specific.
- Jazmi suggested to use Bluetooth, But I researched and discovered that it could only receive one Messiah at a time from one device. 

Thursday, July 10, 2014

Mind Notes

Post no. 10

My meeting with Daniel today for my contextual studies was rather benefiting. He actually suggested that users could light up their gloves by holding each others' hands.

Interesting.

Wednesday, July 2, 2014

PPM - Meeting Our Specialists 4

Post no.9

Idea-Execution consultation with Jazmi.

1. Vibration motor - on/off it's simple enough so its alright. As long as I'm not dealing with adjusting the range of vibrations.

2. 4/5 lights per device would be good. Try some Tri-Color LEDs.
Here's a brief video to show how it would work. And there's a tutorial as well link HERE. To get a really bright shine/intensify the brightness he suggested mini-reflectors.

3. He asked me explore and to get the feedback on the screens based on expression/emotions rather than the amount of people I need to participate and trigger the visuals. 
When he said this, what could I use to measure emotions? Facial Expressions? Sounds?
I might be able to work with a sound sensor but it would confuse it with the surrounding sounds.
ALTHOUGH, I could key in a very very low sensitivity that requires the user to put the device right up to their faces when they get excited. They could scream and shout into the device like so:


Maybe I could translate their shouts into crowd audio.
Example:
DJ: HOW ARE WE DOING TONIGHT?!?!?!
Crowd: WOOOOOOOO!
DJ: ARE YOU HAVING FUN?
Crowd: WOOOOOO!
The crowd somehow thinks Wooo is the answer to everything. Reasons why is that maybe they think it would be the loudest sound they could make rather than verbalizing the actual words + Shouting. I could fix this.
How to fix this:
DJ: HOW ARE WE DOING TONIGHT?!?!?!
Crowd: WOOoooo --- AWESOME! GREAT! (words blaring from speakers)
DJ: ARE YOU HAVING FUN?
Crowd: WOoooo -- F-YEAH!
This could be the feedback that the artist needs. A real connection with the audience. The true exchanging of words. Just like the video I shared below of one of my favorite French Artists. Je t'aime comme ca. 
Facial expressions, is a little bit harder to do.
4. For the visuals, the more people participate the more layers are uploaded to the video.
Actions: 
-Study other projects
- Prepare some benchmarks for the visual and animation
- Find some videos on people experimenting with the devices similar to my idea.