Showing posts with label internetofthings. Show all posts
Showing posts with label internetofthings. Show all posts

1/26/19

Week #4's Wednesday Evening Training: Arduino your house and an intro to the Fritzing electronic circuit designer

This evening, one of our IoT champions, Aishwarya Dhall, gave a good introduction of the Arduino technology with some nice handson labs. We do this on a regular basis in our Wednesday Evening Trainings, to give our colleagues the opportunity to catch up on IoT any time during the year. More experienced colleagues continued with their own labs. In this way everyone can acquire knowledge and experience with this technology at their own pace.



So, what again was an Arduino?

An Arduino is like a little computer (microcontroller) where you can read input of a (example) sensor and can control your output. Like lights, LCD screen, speaker etc. It’s easy to program the Arduino. Read more in my other blog posts: https://hansrontheweb.blogspot.com/search?q=Arduino

Fritzing electronic circuit designer

Also this evening, I gave an introduction into the  Fritzing electronic circuit editor. Ever tried to make clear photo's of your Arduino or any other electronic circuit for your IoT device? I did, and I did not succeed. Using the Fritzing editor you can create a clear design and share this. See my SlideShare presentation below.



(source: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor)


Further reading

Do you want to read more on the topics in this post or play around with the technology? Here are some links…

On Arduino:
Arduino Interrupts Tutorial (explanations, 2 demo's/labs): https://www.youtube.com/watch?v=QtyOiTw0oQc
My YouTube playlist on YouTube: https://www.youtube.com/playlist?list=PLSiMhBs48YvV86iiXFJY-BRxOsP2A2pnH
10 Awesome Beginner Arduino Projects: https://create.arduino.cc/projecthub/RoyTobby/10-awesome-beginner-arduino-projects-78a6a6
Arduino project - Adaptive LED Morse Code Decoder and Timer Interrupt: https://create.arduino.cc/projecthub/shjin/adaptive-led-morse-code-decoder-and-timer-interrupt-8d18a7
Arduino - Multitasking (e.g. interrupts): https://learn.adafruit.com/multi-tasking-the-arduino-part-2/overview
Arduino Interrupts: https://www.instructables.com/id/Arduino-Interrupts
Arduino Playgrounds - Interrupts: http://playground.arduino.cc/code/interrupts

On Fritzing:
Fritzing official site: http://fritzing.org/home
A quick overview on Fritzing: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor

Past Wednesday Evening Trainings on all topics

You 'll find post of previous sessions on my blog and on LinkedIn: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

1/23/19

Using the Fritzing electronic circuit designer for your IoT (Arduino, Raspberry Pi, ...) project


Ever tried to make clear photo's of your Arduino or any other electronic circuit for your IoT device? I did, and I did not succeed. Using the Fritzing editor you can. I've done a little presentation and demo during tonight's Wednesday Evening Training. The post of this will be published shortly, but I could not resist publishing my Fritzing stuff now.



See my SlideShare presentation: https://www.slideshare.net/HansRontheWeb/fritzing-breadboard-editor

10/12/18

This week's Wednesday Evening Training: a "klusavond" on a giant Arduino driven LED cube, a lot of sensors and generating 3D Archimate models

In this week's Wednesday Evening Training we had some great demo's and discussions on our individual projects on IoT and 3D modelling.





A lot of IoT

Aish showed us her giant LED cube (10x10x10 LED's, that's a lot of soldering!) and explained to us how she managed to build and run it. We discussed powering such a large collection of LED's and how the software was designed. Such a bug LED cube offers plenty of applications, including running 3D animations and games within the cube. We've started building a graphics library for basic LED handling that is going to be a great help in building such applications.

Aish also showed us her multi sensor project; a test platform on which all sorts of sensors are installed. We discusses the various sensor types, how to connect and use them and how (combined) measurements can best be done. Interesting stuff! One of the topics we also discussed is the way which the sensors are read in the software. That can be done in a loop but also using interrupts (low level event handlers). The latter method is faster, less error prone and cleaner. We'll be investigating this technique in the upcoming Wednesday Evening Training IoT sessions.







Archimate architecture models in BabylonJS 3D

This week's session, I gave give a demo of my BabylonJS prototype in which an Archimate model view (using the free Archi editor) is converted into a BabylonJS 3D model. For complex architectures, 3D modelling may give more insight than plain 2D models. Worth doing some experiments to see whether this is a good approach. The Technical Proof of Concept is running great. It uses MySQL as a central database and a simple website with some Web Workers to gather model data, generating and continuously updating a JavaScript Archimate model and a derived Babylon 3D model from this in the background. Our colleague Fred van Nimwegen also joined my project and he had experimented with Neo4j in which he stored the Archimate model.  Neo4j is a graph database (while MySQL is a relational database). Graph databases have some advantages over relational databases, mainly when querying data collections that naturally resemble networks. And that is exactly what an architectural model resembles: a network of related nodes. Moreover: modern architectures are getting more dynamic and will change over time more rapidly. When analyzing an architecture model to answer architectural questions like "what will happen when I change this?", an efficient query language and dito database are very convenient. We've planned a Wednesday Evening Training session on Graph databases and Neo4j in november. Fred will then share his knowledge gained with us.





Further reading

Do you want to read more on the topics in this post? Here are some links…

Considering building your own LED cube? Start simple with a 4x4x4 cube (still 64 LEDS, but at least you won't be needing a nuclear plant to power it): https://www.instructables.com/id/4x4x4-LED-Cube-Arduino-Uno/
BabylonJS: https://www.babylonjs.com
Archi: https://www.archimatetool.com
Archimate tool database plugin: https://github.com/archi-contribs/database-plugin
Neo4j: https://en.wikipedia.org/wiki/Neo4j


Past Wednesday Evening Trainings

You 'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining


Next week 's Wednesday Evening Training

Next week, we'll have the intro on Progressive Web Apps (PWA)This a hot topic in the world of web development and its only growing further in popularity. It is a relatively new way to develop applications for the mobile phone, combining the best of the web and apps. We will cover benefits using a PWA instead of traditional hybrid/native solutions, the basics and possibilities of a PWA, show some examples in functionality and give an example of how you can get started building your own PWA’s quickly. Yes, there will also be a handson lab. In later sessions we expect to cover topics like push notifications, background refresh, et cetera. 

8/1/18

This week's Wednesday Evening Training: continuing our 3d and IoT projects and a bit of Windows programming

This Wednesday Evening Training, we continued our exploration of IoT and 3D technologies and learned about Windows programming.

Also: a special welcome to our guests from Siemens Germany: Florian, Alexander and Achim.


Windows DIB Buffer and Sound Buffer

First we had a nice demo and code walkthrough of our colleague Quincy Jacobs, who has experimented with the Windows DIB Buffer and Sound Buffer using good old C++/C. This ignited a lively discussion on wave and sound generation and techniques used for that. It took me right back to the era of home computers, in which I experimented a lot with the Commodore 64's SID (Sound Interface Device) programmable sound generator chip. Revolutionary for it's time (see also: https://en.wikipedia.org/wiki/MOS_Technology_SID).

BabylonJS

Next, I gave an update on my BabylonJS Archimate model project. This week, I had implemented an Observer to keep the Archimate (JavaScript Object) model in sync with the BabylonJS model. This enables the 3D model of the architecture being updated at runtime. I abandoned the proxy approach that I mentioned last week, since this is not supported by IE (in Edge it is supported) and IMHO it's too early to exclude IE. Instead I used a classic Observer implementation in JavaScript. We did a code walkthrough and discussed application of the Observer- and Factory pattern in general and in JavaScript. There is interest to plan a separate knowledge session on BabylonJS and WebGL. BabylonJS is based on WebGL (Web Graphics Library), which is a JavaScript API for rendering interactive 2D and 3D graphics within any compatible web browser without the use of plug-ins.

To be continued...

RFID (Radio-Frequency Identification)

As promised last week, we took a look at RFID technology. Roughly speaking: using a reader/writer  your application can interact with RFID tags (e.g. in your security card). Your RFID tag provides a unique id to your application, which you can use as a key in your database. In a nutshell this is the basis of access and registration systems. At very low costs, a few Euro's actually, you can have a lot of fun in your IoT project! See the links below for resources on this.
We could use RFID labels and a scanner for building an interactive toy for young children (see my last week's post on this). Based on RFID and Lilypad Arduino technology we should be able to create some kind of easily foldable and transportable carpet on which you can place all kinds of tagged objects and interact with them using an sowed in Lilypad Arduino.

Anyway... a lot to learn!

Further reading

Do you want to read more on the topics in this post? Here are some links...

RFID: https://en.wikipedia.org/wiki/Radio-frequency_identification
Tutorial 12 for Arduino: RFID Card Reading: https://www.youtube.com/watch?v=gIlSLwcbeTU
What is RFID? How RFID works? RFID Explained in Detail: https://www.youtube.com/watch?v=Ukfpq71BoMo
MF522 RFID Write data to a tag: https://www.youtube.com/watch?reload=9&v=uihjXyMuqMY
RFID Programming Made Simple and Cheap: https://www.developer.com/net/article.php/3628811/RFID-Programming-Made-Simple-and-Cheap.htm
BabylonJS, see my previous 19th july post: https://hansrontheweb.blogspot.com/2018/07/this-weeks-wednesday-evening-training_19.html
Understand the Factory Design Pattern in plain javascript (one of the many articles on this): https://medium.com/front-end-hacking/understand-the-factory-design-pattern-in-plain-javascript-20b348c832bd
The Observer Pattern in JavaScript explained: https://pawelgrzybek.com/the-observer-pattern-in-javascript-explained/
WebGL: https://en.wikipedia.org/wiki/WebGL

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next Wednesday Evening Training

Next Wednesday Evening Training, we'll take a deep dive into Micro Services. We'll discuss this from both an architectural point of view and a (Java) software engineering point of view. Demo's will be shown, code walkthroughs will be done and hopefully we'll have yet again a lively discussion!

Experiment, learn and have fun!


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #3d #virtualreality #unity3d #babylonjs #arduino #rfid #iot #internetofthings #archimate #archi #patterns #windowsprogramming #c #c++

7/25/18

This week's Wednesday Evening Training: continuing our Arduino, Raspberry Pi and Babylon projects and brainstorming on new projects

This Wednesday Evening Training, we have continued our exploration of IoT. We made progress on our projects and had a brainstorm of two new project initiatives: creating an application for tuning musical instruments (yes, like a digital pitchfork like the one that you can buy online for a few Euro's, but building one is a lot more fun) and building an interactive toy for young children (yes, with lots of lights and sounds, robust and easy to travel with).

One of the nice things of the Wednesday Evening Trainings is that it's free format. We, as a group, can decide on the spot what topics we want to discuss and what learning form we'll adopt. That's agile! In this case, two of our colleagues came up with some idea's for which we could immediately search for suitable technologies. In case of the toy project, we found out that using RFID and Lilypad Arduino we should be able to create some kind of easily foldable and transportable carpet on which you can place all kinds of tagged objects and interact with them using an sowed in Lilypad Arduino. It's a rough concept, but this could work.
Anyway... a lot to figure out to realize this. Therefore, the next Wednesday Evening Training will contain the following topics: RFID and Arduino Lilypad. We'll gather some links, labs, tools and share video's for this. There is a lot to be found on the internet. See my links below for a few pointers.

 

Also, this evening, we had a portion of BabylonJS for dinner. Last week I showed my first prototypes of a 3d architecture model. This week I showed a mechanism to synchronise a JavaScript based Archimate architecture model with a BabylonJS 3d (Mesh) model. Since it must be possible to immediately reflect changed in one model into the other, I looked for some kind of observer pattern implementation. I chose not to use a heavy framework like Angular, but keep my application as light weight as possible (perhaps I have to say: "Frameworkless JavaScript"). Luckily, JavaScript currently includes proxies, which is quite useful in this situation.
Also next week, I'll show my proceedings on the prototypes and do some explanation on JavaScript proxies.

To be continued...


Further reading

Do you want to read more on the topics in this post? Here are some links...

BabylonJS portal: https://www.babylonjs.com
JavaScript Proxies: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
RFID Basics: How to Read and Write Tags: https://blog.atlasrfidstore.com/rfid-basics-read-write-tags
Arduino hardware, also the Lilypad: https://www.arduino.cc/en/Main/Products
The ArchiMate Enterprise Architecture Modeling Language: http://www.opengroup.org/subjectareas/enterprise/archimate-overview
Archi Open Source ArchiMate Modelling Tool (a free and easy to use open source modelling tool to create ArchiMate models and sketches): https://www.archimatetool.com/

Past Wednesday Evening Trainings

You'll find post of previous sessions here: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining

Next week

In next week's Wednesday Evening Training, we'll be having an additional "klusavond" (translated into English as "a typical Dutch evening of doing, learning and a lot of fun") on Arduino, RFID and BabylonJS.


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #3d #virtualreality #unity3d #babylonjs #arduino #arduinolilypad #rfid #iot #internetofthings #archimate #archi

6/13/18

This week's Wednesday Evening Training: continuing our IoT handson labs (Raspberry Pi, Arduino and lot's of LEDs)

In this Wednesday Evening Training we continued our IoT labs on Arduino and Raspberry Pi. There was soldering (yes, the LED cube), even more LED's, a quick intro to Arduino (C) programming and my first steps in programming the Arduino Nano using the web and windows editor.

We programmed a long LED strip and experimented with various light color and sequence patterns.



Aish gave us a quick intro into the C programming language (actually, for some of the older colleagues like me, it was a recap of a language that we learned a long time ago :) ) and the basics in writing/reading the Arduino ports.

We also experimented with the Arduino's web editor which offers a nice online IDE (Integrated Development Environment), with example projects available as well.

In the Wednesday Evening Training of july 11th, we'll continue our labs. We'll have a demo/walkthrough on an IoT project using multiple sensor at the same time and we'll be taking a closer more comprehensive look at the Arduino's IDE. It may also be a good time to look for future handson labs... maybe a programmable robot arm?

Thanks Aish for sharing your knowledge!


Further reading

Do you want to read more on the topics? Here are some links...
Connect and Control WS2812 RGB LED Strips via Raspberry Pi: https://tutorials-raspberrypi.com/connect-control-raspberry-pi-ws2812-rgb-led-strips/
Getting Started with Arduino Web Editor on Various Platforms: https://create.arduino.cc/projecthub/Arduino_Genuino/getting-started-with-arduino-web-editor-on-various-platforms-4b3e4a
Step by step guide for Arduino Web editor part 1 (video): https://www.youtube.com/watch?v=Kvl8HkajXHg


Next week

In next week's Wednesday Evening Training, we'll be taking a close look at the Aurelia framework. Aurelia is a JavaScript client framework for web, mobile and desktop that leverages simple conventions to empower your creativity. It's a kind of Angular, React or Knockout. Some key point of Aurelia: modern architecture, two-way databinding, extensible HTML, routing & UI composition, broad language support, use ES5, ES 2015, ES 2016 and TypeScript, testable… etc.

 

Past Wednesday Evening Trainings

You'll find post of previous sessions in LinkedIn as well, see: https://www.linkedin.com/search/results/content/?keywords=%23wednesdayeveningtraining


#capgemini #werkenbijcapgemini #lifeatcapgemini #wednesdayeveningtraining #iot #internetofthings #arduino #raspberrypi #ledcube