472 research outputs found

    BLOCKGRID: A BLOCKCHAIN-MEDIATED CYBER-PHYSICAL INSTRUCTIONAL PLATFORM

    Get PDF
    Includes supplementary material, which may be found at https://calhoun.nps.edu/handle/10945/66767Blockchain technology has garnered significant attention for its disruptive potential in several domains of national security interest. For the United States government to meet the challenge of incorporating blockchain technology into its IT infrastructure and cyber warfare strategy, personnel must be educated about blockchain technology and its applications. This thesis presents both the design and prototype implementation for a blockchain-mediated cyber-physical system called a BlockGrid. The system consists of a cluster of microcomputers that form a simple smart grid controlled by smart contracts on a private blockchain. The microcomputers act as private blockchain nodes and are programmed to activate microcomputer-attached circuits in response to smart-contract transactions. LEDs are used as visible circuit elements that serve as indicators of the blockchain’s activity and allow demonstration of the technology to observers. Innovations in networking configuration and physical layout allow the prototype to be highly portable and pre-configured for use upon assembly. Implementation options allow the use of BlockGrid in a variety of instructional settings, thus increasing its potential benefit to educators.Civilian, CyberCorps: Scholarship for ServiceApproved for public release. distribution is unlimite

    Improving the BeagleBone board with embedded Ubuntu, enhanced GPMC driver and Python for communication and graphical prototypes

    Get PDF
    BeagleBone is a low price, small size Linux embedded microcomputer with a full set of I/O pins and processing power for real-time applications, also expandable with cape pluggable boards. The current work has been focused on improving the performance of this board. In this case, the BeagleBone comes with a pre-installed Angstrom OS and with a cape board using a particular software “overlay” and applications. Due to a lack of support, this pre-installed OS has been replaced by Ubuntu. As a consequence, the cape software and applications need to be adapted. Another necessity that emerges from the stated changes is to improve the communications through a GPMC interface. The depicted driver has been built for the new system as well as synchronous variants, also developed and tested. Finally, a set of applications in Python using the cape functionalities have been developed. Some extra graphical features have been included as example

    Hidden Terminal Detection in Wide-Area 802.11 Wireless Networks

    Get PDF
    The hidden terminal problem is an important issue in wireless networks based on the CSMA medium access control scheme. Hidden terminals pose a complex challenge to network operators trying to identify the underlying cause of performance issues. This thesis describes new methods for the detection and measurement of the hidden terminal problem in wireless networks based on commodity hardware and software platforms. These new methods allow network operators to identify areas of a network where hidden terminals are likely to exist; detect instances of the hidden terminal problem occurring; and estimate the total impact hidden terminals are having on the performance of the network. A new framework for measurement of wireless networks is described which provides a new approach to wireless measurement on Linux based wireless routers. The new framework is used to implement the methods and they are deployed across an operational commercial wireless network and are shown to be useful

    Software framework implementation for a robot that uses different development boards

    Get PDF
    A software framework is a concrete or conceptual platform where common code with generic functionality can be selectively specialized or overridden by developers or users. Frameworks take the form of libraries where a well-defined application program interface is reusable anywhere within the software under development. A user can extend the framework but not modify the code. The purpose of software framework is to simplify the development environment, allowing developers to dedicate their efforts to the project requirements, rather than dealing with the framework’s mundane, repetitive functions and libraries. A differential wheeled robot is a mobile robot whose movement is based on two separately driven wheels placed on either side of the robot body. It can thus change its direction by varying the relative rate of rotation of its wheels and hence does not require an additional steering motion. If both the wheels are driven in the same direction and speed, the robot will go in a straight line. If both wheels are turned with equal speed in opposite directions, the robot will rotate about the central point of the axis. Otherwise, depending on the speed of rotation and its direction, the center of rotation may fall anywhere on the line defined by the two contact points of the wheels. The objective of this thesis, is to create a software framework for a wheeled robot, where we can change its development board, without having to make many changes in the code that is used to control the robot. The composition of the robot is: a development board, that allows the control of any electronic devices, that are connected to it; some sensors to detect obstacles; two motors to move the robot; a motor driver to power and control the motors individually; a chassis to assemble the robot; and a battery to power all the electronic devices. The most important device of the robot is the development board, which allows the control of every single electronic device connected to it through a program. In this project we use three development boards, which are: Arduino UNO rev3, NodeMCU ESP8266 v1.0 and Raspberry Pi 3 Model B+. The programming language used to control the devices and the boards is the C++ programming language, because it can be used with all of them. Since all the boards have a different external/internal design, there are some issues that we need to fix with the help of external hardware. Other important devices are the sensors to detect objects, which are: the sensor HC-SR04, which uses ultrasonic waves; and, the sensor Sharp GP2Y0A41SK0F, which uses infrared light. The framework also covers two types of servo motors: one that can continuously rotate; and the other one that only rotates about half a circle. The servo motors can be used, for instance, to rotate a range sensor. Then we need two DC motors to move the vehicle. To power up these DC motors, which are controlled with a PWM signal, we need to connect them to a device called motor driver which is connected to a battery. Finally, to assemble the robot we just need to connect all the devices to the development board and attach them to the chassis. This software framework was created with the purpose of programmatically connect every device (any sensor, motor or other device) to the development board and allow a user to do minimal code changes when he has the need to change the development board. All the devices that the framework supports have a datasheet explaining their behavior and operation, so that it was possible to develop a library to operate and control the device. By joining all these libraries together we have the framework presented here. The experimental methodology, used in two case studies, will show the features and the limitations of the framework. The first case study shows that the changes the user needs to do when changing boards are minimal but because all the development boards are different, there are some things we can’t program without having to make the user of the framework, sacrifice his GPIO connection choices. The second case study, shows that because of how the development boards work internally, there are some things that aren’t possible to program to work like they were designed as the other development boards.Um framework de software é uma plataforma conceitual em que um código comum com funcionalidade genérica pode ser seletivamente especializado ou substituído por desenvolvedores ou utilizadores. Os frameworks assumem a forma de bibliotecas em que uma interface de um programa bem definido é reutilizável em qualquer lugar dentro do software em desenvolvimento. Um utilizador pode estender a framework, mas não pode modificar o código. O objetivo do framework é simplificar o ambiente de desenvolvimento, permitindo que os desenvolvedores dediquem os seus esforços aos requisitos do projeto, em vez de lidar com as bibliotecas e funções, comuns e repetitivas, do framework. Um robô com rodas diferenciais é um robô móvel cujo o movimento é baseado em duas rodas acionadas separadamente que estão colocadas em ambos os lados do corpo do robô. Pode assim alterar a sua direção, variando a taxa relativa à rotação das rodas, e portanto, não requer um movimento de direção adicional. Se ambas as rodas forem movidas na mesma direção e velocidade, o robô irá mover-se em linha reta. Se ambas as rodas girarem com velocidade igual e em direções opostas, o robô girará em torno do ponto central do eixo. Caso contrário, dependendo da velocidade de rotação e da sua direção, o centro de rotação pode cair em qualquer lugar na linha definida pelos dois pontos de contato das rodas. O objetivo desta tese é criar um framework de software para um robô de rodas, onde podemos mudar a sua placa de desenvolvimento sem ter que fazer muitas alterações no código que é usado no controlo do robô. A composição do robô é a seguinte: uma placa de desenvolvimento, que permite o controlo de qualquer dispositivo eletrónico que esteja conectado à placa; alguns sensors para detetar obstáculos; dois motores para mover o robô; um driver para os motores, para alimentar e controlar os motores individualmente; um chassi, para montar o robô; e uma bateria, para alimentar todos os dispositivos eletrónicos. O dispositivo mais importante do robô é a placa de desenvolvimento, que permite o controlo de cada dispositivo eletrónico, que está ligado à placa, através de um programa. Neste projeto utilizamos três placas de desenvolvimento, que são: Arduino UNO rev3, NodeMCU ESP8266 v1.0 e Raspberry Pi 3 Model B +. A linguagem de programação usada para controlar os dispositivos e as placas é a linguagem de programação C ++, porque pode ser usada por todas as placas. Como todas as placas têm um design externo / interno diferente, existem alguns proble-mas que precisam de ser salvaguardados com a ajuda de hardware externo. Outros dispositivos importantes são os sensores que servem para detetar objetos, e estes são: o sensor HC-SR04, que utiliza ondas ultrassónicas; e, o sensor Sharp GP2Y0A41SK0F, que usa luz infravermelha. A framework também suporta dois tipos de servo motores: um que pode girar continuamente; e o outro só pode rodar cerca de meio círculo. Por exemplo, os servo motores podem ser utilizados para fazer rodar um sensor que deteta objetos. Também precisamos de dois motores DC para mover o robot. Para energizar estes motores, que são controlados por um sinal PWM, precisamos de liga-los a um dispositivo chamado de driver para motor que está ligado a uma bateria. Finalmente, para montar o robô precisamos apenas de ligar todos os dispositivos à placa de desenvolvimento e montar todos os dispositivos no chassi. Este framework de software foi criada com o objetivo de ligar todos os dispositivos (qualquer sensor, motor ou outro dispositivo eletrónico), em termos de programação, à placa de desenvolvimento e permitir que um utilizador faça alterações mínimas no código que controla robô quando tiver a necessidade de alterar a placa de desenvolvimento. Todos os dispositivos que a framework suporta têm uma ficha de especificações que explica o seu comportamento e como funcionam, e por este motivo foi possível desenvolver uma biblioteca para controlar estes dispositivos. Ao unir todas as bibliotecas temos a framework. A metodologia experimental usada em dois casos de estudo, mostram quais as limitações da framework. O primeiro caso de estudo mostra que as alterações que o utilizador precisa de fazer ao trocar as placas são mínimas, mas como todas as placas de desenvolvimento são diferentes existem sempre algumas coisas que não podemos programar sem ter que fazer com que o utilizador da framework, sacrifique as suas opções de ligação aos pinos GPIO. No segundo caso de estudo é mostrado que devido à forma de como as placas de desenvolvimento trabalham internamente, existem algumas coisas que não podem ser programadas para funcionar como se fossem as outras placas de desenvolvimento

    Light Fidelity (Li-Fi) prototype with Raspberry Pi

    Get PDF
    With globalisation and the thirst for connectivity across society, the demand placed on wireless infrastructure and the associated resource is growing exponentially. Very soon this resource will reach saturation point, due to the finite bandwidth available in the Radio Frequency (RF) spectrum. A method of countering the impending saturation needs to be found. That method can be Visible Light Communication (VLC). Light Fidelity (Li-Fi) is a research field within VLC that utilises the visible light band within the electromagnetic wave spectrum. This band is 10,000 times larger than the RF band and cannot be ‘leased’ or saturated with users. Light waves can be modulated to carry an enormous amount ofsimultaneous data, at speeds faster than current consumer equipment can handle. This Dissertation describes in detail the research, construction and testing of a Li-Fi prototype using Raspberry Pi. The prototype is compact, low cost, uses accessible components and provides a solid foundation for other students to follow on with further work in this field. The prototype successfully demonstrates the principle of Visible Light Communication and shows the viability of using Python for coding, SPI for data transfer and lists suitable electronic components to process bit-wise data signals. The prototype shows that while it is possible to use addressable LED’sas the transmitting element, the Dissertation concludes that they are not suitable outside of a heavily constrained environment

    Design and Implementation of a Wireless Sensor Network for Seismic Monitoring of Buildings

    Get PDF
    This article presents a new wireless seismic sensor network system, especially design for building monitoring. The designed prototype allows remote control, and remote and real-time monitoring of the recorded signals by any internet browser. The system is formed by several Nodes (based on the CC3200 microcontroller of Texas Instruments), which are in charge of digitizing the ambient vibrations registered by three-component seismic sensors and transmitting them to a central server. This server records all the received signals, but also allows their real-time visualization in several remote client browsers thanks to the JavaScript’s Node.js technology. The data transmission uses not only Wi-Fi technology, but also the existing network resources that nowadays can be found usually in any official or residential building (lowering deployment costs). A data synchronization scheme was also implemented to correct the time differences between the Nodes, but also the long-term drifts found in the internal clock of the microcontrollers (improving the quality of records). The completed system is a low-cost, open-hardware and open-software design. The prototype was tested in a real building, recording ambient vibrations in several floors and observing the differences due to the building structure.This study was funded by the European Union’s Horizon 2020 research and innovation program under grant agreement No 821046, the Ministerio de Economía, Industria y Competitividad through research project CGL2016-77688-R, by the Consellería de Participación, Transparencia, Cooperación y Calidad Democrática de la Generalitat Valenciana, and by Research Group VIGROB-116 (University of Alicante)

    Performance and policy dimensions in internet routing

    Get PDF
    The Internet Routing Project, referred to in this report as the 'Highball Project', has been investigating architectures suitable for networks spanning large geographic areas and capable of very high data rates. The Highball network architecture is based on a high speed crossbar switch and an adaptive, distributed, TDMA scheduling algorithm. The scheduling algorithm controls the instantaneous configuration and swell time of the switch, one of which is attached to each node. In order to send a single burst or a multi-burst packet, a reservation request is sent to all nodes. The scheduling algorithm then configures the switches immediately prior to the arrival of each burst, so it can be relayed immediately without requiring local storage. Reservations and housekeeping information are sent using a special broadcast-spanning-tree schedule. Progress to date in the Highball Project includes the design and testing of a suite of scheduling algorithms, construction of software reservation/scheduling simulators, and construction of a strawman hardware and software implementation. A prototype switch controller and timestamp generator have been completed and are in test. Detailed documentation on the algorithms, protocols and experiments conducted are given in various reports and papers published. Abstracts of this literature are included in the bibliography at the end of this report, which serves as an extended executive summary

    A STUDY ON VARIOUS PROGRAMMING LANGUAGES TO KEEP PACE WITH INNOVATION

    Get PDF
    A programming language is a formal computer language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behaviour of a machine or to express algorithms. The earliest known programmable machine preceded the invention of the digital computer and is the automatic flute player described in the 9th century by the brothers Musa in Baghdad, "during the Islamic Golden Age". From the early 1800s, "programs" were used to direct the behavior of machines such as Jacquard looms and player pianos. Thousands of different programming languages have been created, mainly in the computer field, and many more still are being created every year. Many programming languages require computation to be specified in an imperative form (i.e., as a sequence of operations to perform) while other languages use other forms of program specification such as the declarative form (i.e. the desired result is specified, not how to achieve it). The description of a programming language is usually split into the two components of syntax (form) and semantics (meaning). Some languages are defined by a specification document (for example, the C programming language is specified by an ISO Standard) while other languages (such as Perl) have a dominant implementation that is treated as a reference. Some languages have both, with the basic language defined by a standard and extensions taken from the dominant implementation being common. An attempt is made in this paper to have a study on various programming languages
    corecore