Introduction: Rain Room
The purpose of this project is to make an entertainment room where it rains all the time and everywhere except where you are. It has an artistic purpose and the amazing thing is that you can’t get wet because of the sensor from the ceiling that stops the water sprinklers. Our project presents a small room in which it rains all the time. There is water pouring from the ceiling and it doesn't stop until the webcam (used as a sensor) detects an object somewhere in this room. The webcam will help us figure out where the object is situated in the room and transmits the information to the board. This action will cause the rain to stop but just in the part of the room where the object is situated.
The marketability of our project can be seen in fields such as photo shootings or entertainment rooms, fashion presentations and so on.
Step 1: Listing All Parts Used to Build the Model of the Room
For the engineering part we used the following things:
- 4 steel pillars (height: 63 cm)
- 1 big accumulation tank (you'll have to keep in mind that the dimension of the accumulation tank must be big enough and the hole in the bottom of the tank must also be big enough so the water won't accumulate and spill from the tank)
- ceiling made out of 9 sectors, each sector being a "water sprinkler" (note: we made a hole in the center "water sprinkler so we can put the camera there")
- for the water circulation we used 9 motors that are normally used to drain the antifreeze at cars
- 9 water pipes
- we used a old computer power supply (12V)
- hot glue machine (for conjunctions)
Step 2: Listing All Parts Used to Build the Electronic Part of the Room
The main component of the electronic part of this project is the "Zybo Zynq-7000 ARM/FPGA SoC Trainer Board" from Digilent. The role of this FPGA board is to process information given by the webcam in order to send commands further to the "Arty Artix-7 FPGA: Development Board for Makers and Hobbyists". This board has a really important role too because with the use of this board we control the water circulation. We used 9 relays that are commanded by the Arty board. We also used 12V power supply for each board.
Step 3: Software That You'll Need
For the image processing part we used OpenCV designed for Linux because on the Zybo board we run a FPGA version of Linux called XILLINUX made by XILLYBUS. For programming the Arty board we used the Vivado software from Xilinx. Also, to make our lives easier we used Active-HDL student edition to compile the code that we later implemented in Vivado.
Programming skills needed are: C/C++ knowledge, VHDL basics. Apart from that you'll need to learn some easy and basic commands that you will use in the terminal of the XILLINUX.
Step 4: Setting Up Your Zybo Board
For this step follow the instructions from my Installing Xillinux on Your Zybo Board instructable.
After you installed the operating system on your SD-card, you can run it and start using your FPGA board as a computer. You're going to need a usb-hub so you can plug a keyboard and a mouse. You're going to need a monitor (doesn't matter what type of output it had VGA, HDMI, digital), and a internet cable and a internet connection.
You start your board by commuting the switch, after that you log in and you wait for the operating system to boot. After the boot is complete you open the Terminal by using the following key combination: CTRL+ALT+T. The next thing you need to do is type in some commands to update your system.
"apt-get update" and "apt-get upgrade"
Step 5: Setting Up Your Arty Board
The motor control will be made by the Arty board that you will program using the Vivado software. The first thing that you have to do here is to enable the ROM memory of the board so that the program will run automatically when the board is powered. Now the only thing that you have to do is to program the board by checking the "information" sent by the Zybo board.
Step 6: Binding Your System.
You have the Zybo board. This FPGA board is connected to a power supply, attached to the board you have the usb hub in which you plug the keyboard, the mouse and the webcam. To one of the serial ports you attach the connection wires that you need. The other end of the wire will be connected to the Arty board. To the Arty board we connected 9 relays. To each relay we connect a motor supplied by a external power source (12V).