编辑: jingluoshutong 2018-11-16

5 Arduino Uno Referencing the specification sheet (detailed in the Appendices section), the Arduino Uno operates at a regulated 5V voltage, obtained from the available USB or DC input. It has a

32 KB flash memory with

14 digital and

6 analog pins available for programmable use. In order to communicate with adaptable project-specific boards (i.e. shields, to be detailed later), an incorporated SPI (Serial-Peripheral Interface) is present, giving the microcontroller the ability to communicate with these devices quickly. The SPI is composed of four major components: a MISO (Master-In Slave-Out), a MOSI (Master-Out Slave-In), an SCK (Serial Clock), and a SS (Slave Select). Briefly, the MISO and MOSI lines are utilized to send data between both the Arduino board and the subsequent boards that are attached to it. The SCK is a clock pulse that is used to synchronize data generated by the Arduino and the SS allows the Arduino to select which attached device it wants to interface with. The SPI is important as it provides synchronized communication between the Arduino board and the specific control boards utilized in this system. In order to program the Arduino board, a Java-based pre-developed IDE (containing defined libraries) is utilized. After writing the desired code (based on C/C++) to control the Arduino board, the developer uploads the program (known as a sketch ) through the integrated USB interface, communicating with the board through a Serial to USB interface. To realize the remote control aspect of the design, the integration of application-specific shields were required. In the subsequent sections, the implementation of both mechanical control and use of the mount over Wi-Fi will be discussed. 4.1.1: Wi-Fi To develop the remote control aspect of the mount, the inclusion of a module operating at the IEEE 802.11 Wi-Fi protocol was required. The specific shield implemented in this design was the AsyncLabs WiShield v2.0:

6 WiShield v2.0 The WiShield contains the Microchip developed MRF24WB0MA Wi-Fi transceiver, an 802.11b Wi-Fi certified device capable of

1 to

2 Mbps speeds and multiple encryption schemes (64/128 bit WEP, WPA/WPA2). The shield draws power from the regulated 5V provided by the Arduino and utilizes the SPI connection to communicate with the Arduino board, specifically digital pins

10 C

13 for the previously defined SPI communication components. Although capable of multiple implementation schemes, the SMARTMOUNT system utilizes the WiShield as a server, using a modified version of the provided WiServer program. This sketch utilizes the incorporated Infrastructure mode, providing the capability to communicate with a remote AP device (wireless router). Unable to be dynamically assigned an IP address through the use of DHCP (Dynamic Host Configuration Protocol), a defined static IP address, gateway IP, and subnet mask is programmed into the sketch, as well the encryption scheme. As detailed in the developed code (found in the Appendices section), this system utilizes WPA2, the strongest of the commercially available encryption methods. In order for a user to control the module from a remote location, their internet-capable device will have to be verified through a VPN (Virtual Private Network) incorporated in their wireless router. A VPN provides the ability to control locally hosted peripherals on a secure remote connection, assuring the user has maximum security and control over their home appliances. In order to communicate with the developed GUI, a series of HTML pages have been created that produce specific commands to control the mechanical aspect of the mount. A page has been developed for each possible position that the mechanical arm system of the SMARTMOUNT can traverse, as well as to actuate a button press. Based on the pages accessed by the GUI, the mount will position itself to a desired point and initiate a button press. The physical mapping of the GUI with the SMARTMOUNT will be detailed in the following sections.

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题