Sound Brick ver.2 Release 1

Long time haven’t been update this blog. Since I need to rush for it for demo and write a demo. Below is a short demo of the video. Although the case outlook is not very impressive, but at least it work finally. Still have some minor bug (at least my advisor haven’t discover it).

Anyway, you can take a look on the Release 1 short demo:

Although the Final Year Project is almost over, just left the final presentation. I will still work on Release 2, since this work will be shown on the coming Playful Media Showcase on next month. At least I should come up with a better case, 20 bricks, and better way to plug it together. Most important is to make it BUG FREE!!

Upcoming I will back to school to have a workshop talking about Arduino. Will try my best to post up some photos.

Leave a Comment

Old idea never die!

Great news! Few days ago, I have review the whole project, and understand why I can’t achieve it. So now the communication protocol is almost there. Just need to program the code to the testing board to test it. In a mean while, I will post up the drawing how each brick will be communicate, and how to transfer back to the receiver.

Also, I will finalize the circuit board drawing as soon as possible. Since the factory can’t complete it before Chinese New Year holiday. So I tell them to hold it and let me to do some modification. Other than that, hexagon shape will be better than square shape in this case. So I will explain how it can be done along with the communication protocol.

Leave a Comment

lately update

Haven’t update for a long time, due to I keep on sick. Right now I am facing the hardest problem – need to build up a better communication protocol between bricks and receiver. Previously, I just do it like this:

brick->brick->receiver

That means last brick will keep on send the data to the next brick, then it send back to the receiver. This scheme is not work since I forgot that will have delay for the code processing. As a result, it will make the data lost. So for a better scheme, I need to add a header into each data segment, and send back a data as acknowledgement to let the brick know that it got the write data.Also, the PCB is now on hold, maybe I will have some changes on it. Since it may need a oscillator for faster speed data communication.
After talk to my advisor last week, maybe I will change the idea if the time is limit. Hope the problem will be solve. 

Leave a Comment

Boarduino Kit arrive

Kindly thanks for uC Hobby, I try to submit this blog to them for the Arduino board give away, and qualify their requirement. Today my board arrive!

Boarduino

I will construct it after my mid-term presentation.

Let see will it useful for my project.Other than that, yesterday I bought another USB->RS-232 cable, since last time the one I bought is FAKE! This time the cable is from BAFO, and work fine! So now I can use it for receiving the value after A/D conversion of the knocking part.

Leave a Comment

Draw the PCB, but….

These day work hard to learn how to do the Eagle, and both the 7 x 5 LED board and the Main board have drew also. Now I want to give out the drawing to a company to make the PCB, but they use Protel. Playing around with that company for a week, but still don’t have any progress. Maybe they don’t want to do it for me. Right now I trying to find another company that will accept Eagle file.Mid-term report is  coming soon, I think I need to make a few PCBs myself. The main problem of self-made 2 layer PCB is, when i solder on the bottom, the solder will not go from the bottom layer to the top layer. Since the hole don’t have copper plating. So the solder will not go through. That why now the most urgent thing is to find a company to make those 2 PCB for me, then I can speed up the progress.

Update: Search around in Google, find this link that contain a software for convert Eagle board drawing into Protel format.

Leave a Comment

BIG mistake

Right now I just found out that I have made a big mistake in Sound Brick ver. 2, since I used a wrong microcontroller. I misunderstand the usage of analog input in PIC16F628A, it just works as a analog comparator, not A/D converter. Since if I need to do the knocking part, I need to use the A/D converter to help me to convert the analog signal back to digital.So now, I will change the circuit design and the program code so that it can work with PIC16F685/689/690. By using PIC16F685/689/690 for my project, it also have advantages:

  1. I can have more space for coding.
  2. Have 8Mhz internal oscillator, can use higher serial communication speed.
  3. Ram Bank arrangement is much better, 96+80+80 byte. I no need to afraid I can’t create three 50 elements byte array.
  4. The price is almost the same as PIC16F628A.

Leave a Comment

Progress status

These 2 weeks not much new update, since last week almost keep on working for earning money. If I don’t work, soon will out of money for my project.Other than that, I have bought a cheap USB to RS232 cable for hardware debugging, then I no need to solder too many testing board to check the data transmission. Also, right now I am learning how to use Eagle to draw circuit schematic and printed circuit design. Because if I keep on using multi-purpose board to solder the testing board and the LED display, it will waste a lot of time. Soldering the LED display is the most time consuming. So if I can make the PCB faster, then I can shorten the soldering time.

Leave a Comment

Putting Everything Together

After programming the microcontroller using PicBasic Pro, now I try to do a basic setup for testing. I need to make sure the communication between the character brick circuit is work with the receiver. Below photo is the initialize set up:

 all_together_1.jpg 

To show that I am not cheating, both character brick and receiver is powered up, and the character brick LED matrix displayed “A”, but the receiver LED matrix showed nothing, because I haven’t connected the communication cable. Below photo is connected the communication cable:

all_together_2.jpg

 Now the receiver LED matrix is lighted up and showed “A” also, that means communication between 2 different speed microcontroller will not have any problem. Below photo is taken after I press the button on character brick circuit button to “S”:

all_together_3.jpg

As you can see, the communication is work fine. Next stage I will going to test how many data can be stored into each character bricks and how long it will take to transmit to the receiver. 

Leave a Comment

Project Status (part 2)

Second is the character brick circuit. I chose PIC16F628A for each character brick, since it is cheap (around HKD$10 each if I buy at China). It has 4 analogs in so that I can use a piezo buzzer as a knocking switch, and internal 4MHz oscillator. It also provides enough pins for me to drive a custom made 7 x 5 LED matrix. And I still got 6 pins left for communication and other purpose. char_brick.jpg

Testing board for the character bricks, knocking mechanism not yet implemented. 

Third is the receiver, I chose PIC18F452 in the prototype stage, since I need to have enough space to store the data coming from the character bricks. In the testing stage, I need to connect the 7×5 LED matrix to check is it get the right data from the character bricks. So in the final product, I will use PIC18F252 to make the receiver smaller. Also, I want to test the serial communication between character brick and receiver work properly, I used an 8MHz Crystal to drive the PIC18F452 to make sure different speed microcontroller can communicate properly. Later I will change the Crystal to 20MHz powered oscillator to make sure it has stable MIDI output.

receiver.jpg

Testing board for the character bricks, MIDI not yet implemented. 

Leave a Comment

Project Status (part 1)

Since Sound Brick ver. 2.0 is a brand new version of my project, so everything needs to re-design. Due to using PIC micro have a lot of resources on the Internet, so it is much more easy for me to get reference. For the programming language, I chose to use PicBasic Pro instead of Assembly. Because it is easier for me to learn, and most of the function, e.g. A/D, serial communication, have already implemented. I just need to use few line of code to do what I want. After get the free sample from the Microchip, I start to do some basic hallo world programming, blink the LED. Then I start to think about how to make everything work for my project.

 

First is how to implement each character brick have the ability to change and display the character. At first I think of using 14 segments LED display, although it looks lo-tech. When I go out shopping the necessary material, I found out that there is no 14 segments LED display to sell in Hong Kong. All I can get is only 8 x 8 LED matrix or LED. So I bought 100 pieces LED and 8 x 8 LED Matrix for testing first. After I back home and have some test, I find out that if I need to drive up a 8 x 8 LED Matrix, I need a microcontroller that have 16 output. If I include 2 buttons as inputs for changing the character and the communication port, I need a microcontroller to have at least 20 I/O. Due to I need to control each character brick cost (cause I want to make around 40-50 character bricks out), I search around on the Internet and come up with an idea called Charlieplexing:

http://en.wikipedia.org/wiki/Charlieplexing

http://www.edn.com/article/CA6363904.html

It just needs 7 pins to drive 42 LED. So finally I come up with a custom made 7 x 5 LED Matrix, more than enough for display the English character.

 Front LED Matrix

LED Matrix Back

Messy back view, cable is jamming together.

 

Leave a Comment

Older Posts »
Follow

Get every new post delivered to your Inbox.