<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://mehmandarov.com/tag/conferences/feed.xml" rel="self" type="application/atom+xml"/><link href="https://mehmandarov.com/tag/conferences/" rel="alternate" type="text/html"/><updated>2017-03-16T10:06:00+01:00</updated><id>https://mehmandarov.com/tag/conferences/feed.xml</id><title type="html">Rustam Mehmandarov - tag: conferences</title><subtitle type="text">Posts tagged &quot;conferences&quot; on Rustam Mehmandarov.</subtitle><author><name>Rustam Mehmandarov</name></author><entry><title type="html">Playing with IoT</title><link href="https://mehmandarov.com/iot-prototyping-startup-kit/" rel="alternate" type="text/html" title="Playing with IoT"/><published>2017-03-16T10:06:00+01:00</published><updated>2017-03-16T10:06:00+01:00</updated><id>https://mehmandarov.com/iot-prototyping-startup-kit</id><content type="html" xml:base="https://mehmandarov.com/iot-prototyping-startup-kit/"><![CDATA[<p><em>How to get started prototyping Internet of Things (IoT) solutions and why should you do that?</em></p>

<ul>
  <li><a href="#motivation">Motivation</a></li>
  <li><a href="#building-blocks">Building Blocks</a></li>
  <li><a href="#now-what">Now what?</a></li>
</ul>

<hr />

<h2 id="motivation">Motivation</h2>

<p>Playing around with Internet of Things (IoT) devices provides several advantages. Apart from the obvious ability to easily prototype systems tailored to your specific needs, it can also give you a more engaging way to gain insight into the tools and infrastructure that usually comes with IoT devices, and is relevant for most of the modern developers:</p>

<ul>
  <li>Cloud</li>
  <li>Distributed systems</li>
  <li>Data analysis</li>
  <li>Data visualization</li>
  <li>Machine learning and prediction models</li>
</ul>

<p>This post is meant to give you a simple and minimal set-up to get you started playing around with IoT. I would like to show you just a few devices I have used and to provide you with the code examples for them.</p>

<hr />

<h2 id="building-blocks">Building Blocks</h2>

<h3 id="a-computer-brain">A Computer Brain</h3>
<p>First, we will need something to orchestrate the events, collect the data and communicate with other services, like Cloud services or other machines. It can be a Raspberry Pi, or any other (preferably small) computer. It can also be Arduino, NodeMcu or similar.</p>

<p>In my case, it is a <a href="https://www.raspberrypi.org/products/raspberry-pi-2-model-b/">Raspberry Pi 2 Model B</a> with Wifi and Bluetooth 4.0 (BTLE) adapters. The Pi will be running Raspbian &#8211; a computer operating system, based on Debian (Linux).</p>

<h3 id="sensors">Sensors</h3>
<p>Now we need some sensors. It can be anything &#8211; sensors connected directly to the Raspberry Pis GPIO pins, or separate sensors that can deliver information over the main machine for collection and processing.</p>

<p>I have good experience using <a href="http://www.ti.com/ww/en/wireless_connectivity/sensortag/tearDown.html">SensorTag</a> from Texas Instruments. It uses Bluetooth Low Energy for communication and offers quite a few sensors and hardware buttons, such as:</p>

<ul>
  <li>Infrared and Ambient Temperature Sensor</li>
  <li>Ambient Light Sensor</li>
  <li>Humidity Sensor</li>
  <li>Barometric Pressure Sensor</li>
  <li>9-axis Motion Tracking Device &#8211; Accelerometer, Gyroscope, and Compass</li>
  <li>Magnet Sensor</li>
  <li>Hardware buttons</li>
</ul>

<p><strong>Getting started code:</strong> You will find some code for getting started with Node.js and SensorTag with examples and references to documentation <a href="https://github.com/mehmandarov/sensortag-gettingstarted">here</a>.</p>

<h3 id="other-devices">Other devices</h3>
<p>After setting up a computer to orchestrate the events and getting communication with some sensors up and running, we can add more devices that we can control and/or use to collect more data. In the sections below, I have mentioned some of the devices I have been working with, as well as linking to some code examples to get you started.</p>

<h4 id="razberry-z-wave">Razberry (Z-Wave)</h4>
<p>Since we are using Raspberry Pi, we can extend it even more by using Razberry platform, that brings all the components needed to turn a Raspberry Pi board into a fully operational and inexpensive Z-Wave gateway. Z-Wave is a wireless communication technology often used for smart homes.</p>

<p><strong>Getting started code:</strong> In <a href="https://github.com/mehmandarov/razberry-gettingstarted">this repo</a> I have provided some information about the REST APIs and the commands that can be sent through them.</p>

<h4 id="microbit">Micro:bit</h4>
<p>You can also connect some other devices, like this ARM-based embedded system designed by the BBC for use in computer education.</p>

<p><strong>Getting started code:</strong> <a href="/microbit-bluetooth-challenge/">My previous post</a> gives some pointers for getting started, links to the editor and documentation. It also contains some example implementations.</p>

<p>It should be also possible to connect a micro:bit to a computer or a phone via Bluetooth to send or receive data to or from it.</p>

<h4 id="other">Other</h4>
<p>Previously, I have also used devices like Zumo robots and drones:</p>

<ul>
  <li><a href="https://github.com/mehmandarov/myZumo">Zumo robots</a></li>
  <li><a href="https://github.com/voodootikigod/node-rolling-spider">Parrot drones</a></li>
</ul>

<p>Just keep on adding devices, sensors, and components as you wish. Sky is the limit!</p>

<hr />

<h2 id="now-what">Now what?</h2>
<p>Now that you have connected a bunch of sensors and started collecting some sensor data, we might like to send the data to the cloud, visualize it, or use some machine learning and prediction techniques on that data. Here are some ideas that might help you get started:</p>

<ul>
  <li><a href="https://firebase.google.com/">Google Firebase</a>: A simple solution for storage and publishing of the data.</li>
  <li><a href="https://market.mashape.com/explore">Mashape.com</a>: A list of different APIs, most of which are available to free, that might give you some ideas on how you can use your data.</li>
  <li>Any simple JavaScript visualization library, like <a href="https://d3js.org/">D3</a>, for making your data available in an intuitive way.</li>
</ul>

<hr />]]></content><author><name>Rustam Mehmandarov</name></author><summary type="html">Start-up kit for prototyping IoT solutions</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mehmandarov.com/assets/images/posts-images/lego-ferrari-italia.jpg"/><category term="blog"/><category term="iot"/><category term="english"/><category term="conferences"/></entry><entry><title type="html">Micro:bit Bluetooth Challenge</title><link href="https://mehmandarov.com/microbit-bluetooth-challenge/" rel="alternate" type="text/html" title="Micro:bit Bluetooth Challenge"/><published>2017-03-11T12:06:00+01:00</published><updated>2017-03-11T12:06:00+01:00</updated><id>https://mehmandarov.com/microbit-bluetooth-challenge</id><content type="html" xml:base="https://mehmandarov.com/microbit-bluetooth-challenge/"><![CDATA[<p><em>Can you build Scissor-Paper-Rock game using micro:bit and Bluetooth?</em></p>

<ul>
  <li><a href="#the-challenge">The Challenge</a></li>
  <li><a href="#the-building-blocks">The Building Blocks</a></li>
  <li><a href="#extra">Extra</a></li>
</ul>

<hr />

<p>This post is the challenge for the Race Condition badge at <a href="http://ariot.no/Home/Badges" target="_blank">Arctic IoT Challenge</a>. The description for the badge is as follows:</p>

<blockquote>
  <p>At random, the jury will present a challenge. Timeboxed to one hour, the first team with a working solution gets all the points.</p>
</blockquote>

<p>This time I am designing the challenge, so here it comes:</p>

<hr />

<h2 id="the-challenge">The Challenge</h2>

<p>We want you to simulate a popular Scissor-Paper-Rock game using <a href="https://en.wikipedia.org/wiki/Micro_Bit" target="_blank">micro:bits</a>. Each team gets two devices.</p>

<ul>
  <li>On shake the micro:bit should pick a random shape (scissors, paper, or rock) and show it using LED array on the device</li>
  <li>The two devices should connect and send the data over to each other</li>
  <li>The opposite device compares then its shape to the one received and decides whether it won or lost</li>
  <li>Each of the two micro:bits shows then &#8220;Won&#8221; or &#8220;Lost&#8221; on the LED array.</li>
</ul>

<hr />

<h2 id="the-building-blocks">The Building Blocks</h2>

<h3 id="connecting-to-a-microbit">Connecting to a micro:bit</h3>
<p>Connect the micro:bit to your computer using a micro USB cable. It should appear as a USB disk on your machine.</p>

<h3 id="editor-and-language">Editor and Language</h3>
<p>Yan can use Python and the editor here: <a href="http://python.microbit.org/editor.html" target="_blank">http://python.microbit.org/editor.html</a>.</p>

<p>After you are done writing the code, click <em>Download</em>, and you will get a binary file you will be using in the next step. Check out the <a href="http://python.microbit.org/help.html" target="_blank">help section</a> for more information.</p>

<p>Python documentation for the API can be found <a href="https://microbit-micropython.readthedocs.io/en/latest/index.html" target="_blank">here</a>.</p>

<h3 id="deploying-to-a-microbit">Deploying to a micro:bit</h3>
<p>Copy the binary *.hex file from the previous step on to the micro:bit, just like you would copy to any USB drive.</p>

<h3 id="sending-data-between-microbits">Sending Data Between micro:bits</h3>
<p>Now, over to connecting micro:bits and sending data over. Take a look at the example below. Make sure to change <em>group=1</em> to a number between 0 and 255. Both chips should belong to the same group to connect with each other. You will be assigned a number.</p>

<figure class="highlight"><pre><code class="language-python" data-lang="python"><span class="kn">from</span> <span class="n">microbit</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="n">radio</span> <span class="kn">import</span> <span class="o">*</span>
<span class="kn">from</span> <span class="n">random</span> <span class="kn">import</span><span class="o">*</span>

<span class="c1">#turn radio on and configure group
</span><span class="nf">on</span><span class="p">()</span>
<span class="nf">config</span><span class="p">(</span><span class="n">group</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">length</span><span class="o">=</span><span class="mi">251</span><span class="p">)</span>

<span class="k">while</span> <span class="bp">True</span><span class="p">:</span>
    <span class="k">if</span> <span class="n">button_a</span><span class="p">.</span><span class="nf">was_pressed</span><span class="p">():</span>
        <span class="c1">#send the images
</span>        <span class="nf">send</span><span class="p">(</span><span class="sh">"</span><span class="s">Hello, World!</span><span class="sh">"</span><span class="p">)</span>
     
    <span class="c1">#receive data    
</span>    <span class="n">data</span> <span class="o">=</span> <span class="nf">receive</span><span class="p">()</span>
    
    <span class="c1">#check that we have received any data
</span>    <span class="k">if</span> <span class="n">data</span> <span class="o">!=</span> <span class="bp">None</span><span class="p">:</span>
        
        <span class="c1">#split the data into different pictures by the marker
</span>        <span class="n">display</span><span class="p">.</span><span class="nf">scroll</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>

        <span class="c1">#clear the screen
</span>        <span class="n">display</span><span class="p">.</span><span class="nf">clear</span><span class="p">()</span></code></pre></figure>

<h3 id="the-scissor-paper-rock-game">The Scissor-Paper-Rock Game</h3>
<p>Have a look at the <a href="https://www.microbit.co.uk/blocks/lessons/rock-paper-scissors/challenges" target="_blank">simple implementation of the game</a>. You will need to translate it to MicroPython and extend.</p>

<p><img src="/assets/images/posts-images/2017-03-11-microbit-bluetooth-challenge-1.jpg" alt="Pseudocode for the Scissor-Paper-Rock Game" /></p>

<hr />

<h2 id="extra">Extra</h2>
<p><em>[Spoiler alert!]</em> The winning team gets to submit their code to this <a href="https://github.com/mehmandarov/scissor-paper-rock-microbit" target="_blank">GitHub repo</a>.</p>

<hr />]]></content><author><name>Rustam Mehmandarov</name></author><summary type="html">Scissor-Paper-Rock challenge using micro:bit and Bluetooth</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://mehmandarov.com/assets/images/posts-images/clouds.jpg"/><category term="blog"/><category term="iot"/><category term="python"/><category term="english"/><category term="conferences"/></entry><entry><title type="html">Solving Problems with Reasoning, Semantic Wizardry, and Java</title><link href="https://mehmandarov.com/reasoning-and-semantic-wizardry/" rel="alternate" type="text/html" title="Solving Problems with Reasoning, Semantic Wizardry, and Java"/><published>2016-06-09T00:00:00+02:00</published><updated>2016-06-09T00:00:00+02:00</updated><id>https://mehmandarov.com/reasoning-and-semantic-wizardry</id><content type="html" xml:base="https://mehmandarov.com/reasoning-and-semantic-wizardry/"><![CDATA[<p><em><strong>Update 2016-10-21</strong>: In addition to Barcelona, I also did this workshop for javaBin S&#248;rlandet, javaBin Trondheim, and javaBin Oslo (in cooperation with Semantic Meetup in Oslo) this autumn.</em></p>

<hr />

<p><em>On June 16th, I will be doing a <a href="http://www.jbcnconf.com/2016/infoSpeaker.html?ref=rmehmandarov">workshop</a> at JBCNConf in Barcelona, Spain. I will be talking about semantic technologies, reasoning, and Java. I have been asked to post some information about the workshop, so here it comes.</em></p>

<ul>
  <li><a href="#what-is-it-all-about">What is it all about?</a></li>
  <li><a href="#contents">Contents</a></li>
  <li><a href="#workshop-requirements">Workshop requirements</a></li>
</ul>

<hr />

<h2 id="what-is-it-all-about">What is it all about?</h2>

<p>Ever heard of Zebra Puzzles? Those logical puzzles that are claimed to be invented by Albert Einstein as a little boy? Those that are based on simple logical facts and go something like this:</p>

<blockquote>
  <p><em>&#8220;The Brit lives in the Red house. The Swede keeps dogs as pets. The Dane drinks tea&#8230; Who owns the zebra?&#8221;</em></p>
</blockquote>

<p>Some claim that only 2% of the population can solve it without any help.</p>

<p>However, with the help of semantic technologies, we can solve it in (almost) no time. Of course, you have to know RDF, OWL, Jena, reasoning, inference. The good news is that I will be showing you how it works in this session.</p>

<p>Later, I will also post a link to the code for the rest of you to try all that at home.</p>

<hr />

<h2 id="contents">Contents</h2>

<p>We will start with introducing the puzzle. Then we will continue by looking at the toolbox for solving it. We will build a semantic representation of the puzzle (basically, a graph!), programmatically add some inferred facts and reason and solve the puzzle.</p>

<p>Suddenly solving puzzles is a piece of cake for the other 98%.</p>

<hr />

<h2 id="workshop-requirements">Workshop requirements</h2>

<p>Now, over to what you will need:</p>

<ul>
  <li>Your super computer</li>
  <li>Java 7, or later</li>
  <li>Git</li>
  <li>IDE of your choice</li>
  <li><a href="https://maven.apache.org/">Maven 3.x</a></li>
</ul>

<p>Looking forward to running this workshop next week! See you there!</p>

<p><em>p.s. Want to read more about Zebra Puzzles? <a href="https://en.wikipedia.org/wiki/Zebra_Puzzle">Go ahead</a>, but beware of some potential spoilers!</em></p>

<hr />]]></content><author><name>Rustam Mehmandarov</name></author><summary type="html">On June 16th, I will be doing a workshop at JBCNConf in Barcelona, Spain. I will be talking about semantic technologies, reasoning, and Java. I have been asked to post some information about the workshop, so here it comes.</summary><category term="blog"/><category term="workshop"/><category term="conferences"/><category term="semantic technologies"/><category term="java"/><category term="english"/></entry></feed>
