components of your application right onto the phone screen; all the code is implemented automatically. This feature alone caused one of the group members who was using Netbeans to switch instantaneously. There is an all-in-one package available for Android developers from Google Android Developers, ADT bundled with Eclipse. Below in Figure 3.2.C is an example of the interface. Along with the normal coding scheme of XML, it gives users the ability to program with a drag-and-drop style interface which makes it much simpler than typing code. This gives the group more time to focus on the Bluetooth functionality and less time worrying about what it looks like. Figure 3.2.C - ADT plugin for Eclipse Desktop Application The group will need to create a GUI board programmer which can be used by a user to program the group’s Knight Bright board. The group could use any one of several GUI development environments to create this program. Both of the mentioned IDEs have visual GUI design, where controls can be laid out visually and then handled events created as functions. Since this will be a Windows based GUI, the group could use Visual Studio. It has many libraries built in for creating a GUI event-driven application on a Windows platform. This can be programmed in several languages including C++ and C#. An alternate development environment is Labwindows/CVI. This provides an incredibly simple interface which the group’s lead programmer has worked with before. It is an ANSI-C based environment. The group have decided to use this to design the group’s GUI board programmer desktop application in. While not as powerful, the group has decided to use Labwindows/CVI. It is more familiar to the dedicated program for this project, as well as typically more simplified for the group’s purposes. Hardware LED Addressing and Architectures The group needed to come up with an architecture scheme for the LED array. There are 3 general methods that can be used to set up and control LEDs. These 3 methods are Charlieplexing, Decoding, and the use of LED drivers. Because the project will feature touch-sensor-like interactive capabilities, it is important to consider that the LED array must be able to respond to the IR-sensor logic.
Data Transfer rate 30 MHz 30 MHz Channels 16 16 8 Cost $1.80/per unit $2.21/per unit Additional Features 12-bit Grayscaling 6-bit Dot Correction LED Open Detection Thermal Error Flag 12-bit Grayscaling 6-bit Dot Correction (EEPROM storable) LED Open Detection Thermal Error Flag Information on the PCA9922 was referenced from NXP Semiconductor’s website: (http://www.nxp.com/products/). Information on the STP16CP05MTR was provided by STMicroelectronic’s website: (www.mouser.com). Also, information on the TLC5941 and TLC5940 were provided by Texas Instrument’s websites: (http://www.ti.com/product/). PCA9922 (NXP Semiconductors) The PCA9922 RGB LED driver was used in Greg Brault’s (8x8x8) RGB LED cube. The PCA9922 has 8 constant current LED driver channels, each with an 0 9
KC-21 This device is a light weight, low power option that comes from KC Wirefree, a small company out of Arizona who leads the industry of OEM Bluetooth Modules. What’s most impressive about their device is the custom firmware they have developed for it, kcSerial. This firmware is designed to be easy to configure and operate by providing an easy to use, character based AT command language. Configurations can be saved to the onboard flash memory, providing an easy way to customize your chips default startup settings and features. Since the other modules are flashed with the profile that the group requires, it is unlikely that this module would be picked for their firmware If needed, the other modules mentioned above are also programmable. Table 3.3.F shows comparison data below: Table 3.3.F - KC-21 Basic Spec List Property Value Bluetooth Versions 2.1 + EDR Data rate With onboard stack 300Kbps; HCI mode: 1.5Mbps sustained, 3Mbps burst Profiles SPP, DUN, HID, L2CAP, SDP Supply voltage 1.8V ± 10% Power consumption Low power connection modes < 500 µA; Peak current 90mA Operating temperature range -40C to +85C Antenna Integrated Chip antenna Size 15.2mm x 26.9 mm x 2.5 mm Weight 0.047 oz. Price $36.00 Bluetooth Module Decision After looking at even more modules than discussed above, it is clear that the technology is more or less equivalent and many modules meet the needs of the
If communication is lost for Bluetooth, the board will continue with its default programming to use without the android controller. The android program will automatically attempt to reconnect. The android controller can be used successfully as a controller for several different layouts of controls. USB Each microcontroller can have the firmware upgraded via their respective USB connectors. A program, or series of programs, can be uploaded to the primary microcontroller from the GUI Board Programmer via the third USB connector. If the connection is invalid between the GUI Board Programmer and the microcontroller, such as the cable isn’t connected or power is off, it will be displayed that it cannot connect to the microcontroller. If during transmission connection is lost, the GUI Board Programmer will display that an error occurred. The programs on the board will be corrupt until a new attempt at writing data is made. Microcontroller Communication The primary microcontroller should be able to command the secondary microcontroller to change LED color values. The primary microcontroller should be able to command the secondary microcontroller to read certain sensor signals and report interrupts. The primary microcontroller should be able to command the secondary microcontroller to ignore certain sensor signals and not report interrupts. The primary microcontroller should be able to command the secondary microcontroller to start, maintain, and stop connections for Bluetooth. LED Controllers Values should be able to change directly to any available color for any LED. LED colors should be able to scale from any available color to any other available color. Sensor and Addressing Any sensor can be monitored, and should give an ON value when sensing within range. Values should not be given as false-positives.