Another step towards personal AI’s

MachineThere have been many different attempts to create a J.A.R.V.I.S type of AI system to act as a personal assistant, able to interact with you and automate things.  (If your not sure what J.A.R.V.I.S is then you need to look up on Marvels Iron Man and his AI Assistant).

These have been from high profile people like Mark Zuckerberg (Facebook) creating a version on J.A.R.V.I.S in his home, voiced by Morgan Freeman. This system has linked simple things like lights, music and toasters which all have IoT devices that you can link together, to more elaborate items such as a t-shirt dispenser, motors to open the curtains and face recognition door system. The brains behind is based on a chat bot and mobile app that the user can integrate with. Details in Mark’s blog post: Building Jarvis

Video: Mark Zuckerberg’s AI – Personal Assistant – Jarvis – Home Automation

Other J.A.R.V.I.S examples and developments  range from simple lights and desktop interactions, to Amazon Alexa being used to control interactions with apps called J.A.R.V.I.S.

If you are looking to build an open source version there is JASPER using a Raspberry PI and other components.  You could always build a version of Alexa on a Raspberry PI

The explosion of IoT and Voice controls is driving innovation and making it easier to start building your own version of J.A.R.V.I.S. There have been several recent announcements from Amazon that help with this:

Amazon have announced the Amazon Echo Look which is a device that can take a photo of you through an Amazon Alexa providing voice commands for the look and then displaying on your app. Another addition is Style Check which can compare your photos and using machine learning check against the latest fashion advise.

Another announcement from Amazon is LEX, which is the program behind aLEXa (Alexa) which has been opened up for developers to start creating conversational chat bots using voice and text.

For those thinking about an actual Iron Man Suit – Richard Browning is certainly a step closer to that vision – Richard Browning and his Real-Life Iron Man Jet Pack Suit

“Adding J.A.R.V.I.S Project to To-Do List.”

 

 

 

Voice Assistants and The Letterbox Problem

Tags

, , ,

microphone-338481_960_720There are lots of voice activated tools and services now available from software on your PC and in your car to physical hardware you can place around your home. These devices are becoming everyday occurrences, “Alexa, whats the weather”, “Siri, recipe for  Chocolate Cake” (too many to list).

The two main ways to control them is via a button press then speaking such as my car to get it into a listening state, or they are always in a listening state awaiting a set of specific interaction commands, such as the applications name. There is at least a turn of listening mode.

However with all these devices and software, there is a distinct lack of security around voice recognition and lack of interaction security. For instance a recent incident where a TV show caused a number of Dolls Houses to be purchased.

We are busy connecting these devices to all sorts of home automation to make it easier to do things, but how many stop to think of what I term as: “The Letterbox Problem”. This is where you have automated your home to a level that includes things like your lights, powered items and your house alarm. As you walk into your house you can say voice commands to turn on lights, put the kettle on and turn off the alarm. The Letterbox Problem happens when someone has the ability to literally shout through your letterbox and activate or deactivate items in your house. To a would be thief, turning lights on and off will check to see if anyone is at home first before going for the alarm.

There is a security challenge here is to ensure that a level of voice recognition and security controls are in place. Voice recognition by itself is not good enough as I’m sure you’ve heard an impressionist mimic a celebrity on a TV or Radio show.

I would like to see a form of two factor authentication on a voice system so it can be sure its me before it carries out the task. Voice may be one of these, but something else like a token code or app on the phone may be a solution.

There a number of basic steps you can take at the moment to help protect yourself such as:

  • Think about the systems you are connecting the voice device to. Can it compromise your security if anyone else uses it.
  • Use the mute button on devices or turn of listening mode when not in use.
  • Keep the devices updated with the latest patches and firmware.
  • Use good password security practices on any sensitive systems you use (ie Bank Accounts, Paypal etc).
  • Use strong passwords on any associated accounts to the voice assistants, (ie Amazon, Google, Apple etc).
  • If your system allows it, clear out its cache and old activities on regular basis so they can’t be replayed against you.
  • Don’t have a system listening when the TV or Radio is on, especially when your out of the room. You may end up with a new dolls house.

 

Taking your coding to the next level – Scratch to Python

Tags

,

code2Following on from my last blog post “How you can begin to Code“, by now you should have been getting to grips with a good level of basic coding using games to help you learn to code.

So where do you go from here? Most of the initial links I listed used a scratch type of game to help you learn, but how can you transition over to another language such as Python.

At a STEM event I met up with the author of a programme called “edublocks” and got chatting to their team. I was impressed by this application and its capabilities that allow you to move from Scratch to Python easily using a block method similar to scratch.  This helps with the Python Syntax by presenting it as a set of drag and drop blocks.

edublocks can be found at edublocks.org and allaboutcode.co.uk

This makes the transition from Scratch to Python easier to understand and opens up the opportunity to start coding in Python quicker than using the standard Python language. This is achieved by dragging blocks from the Toolbar to the workspace to create the code. You can look at the code behind the blocks to see what the real Python code is and then run the code to see the project you have created.

You can follow the latest developments on the edublocks/allaboutcode twitter feeds:

If you want to continue to learn using the gaming method then CodeCombat will present you with a next set of challenges, coding you way through various levels of dungeons using Python, JavaScript, CoffeeScript or Lua (Game Scripting Language). Choosing a hero and coding them through various scenarios and engaging with several monsters on the way.

Learning to code doesn’t have to be entirely game based. You can work through various online courses and videos that also have the benefit of forums an tutor help. Coursera run several courses from basic Python to using Python for Data Science:

https://www.coursera.org/courses?languages=en&query=python

The main thing to remember is that your not alone in trying to learn a language. There are lots of great places for help and reference available. If your stuck then there is always your favorite search engine. Entering in an error code or syntax question, should point you to an answer through the online manuals, or someone having that issue or requirement before.

One good source of information to book mark is “Stack Overflow” which is a site where programmers ask questions and help each other out. It contains a great search engine, so always remember to search a question before you ask one.

Keep practicing and coding. Set yourself simple challenges to code and then move to more complex challenges. The more you code, the more you learn.

 

 

STEM Choosing your Subjects

books-2158737_1920-e1492199588553.jpgIts easy for the older generations to look at the subjects available at Schools that relate to STEM (Science, Technology, Engineering and Mathematics) and understand the value that they hold in the workplace today, however looking through the lens of young person choosing their option subjects its not so easy.

How do I know? Well, I am basing this on what is going on in my family circle at the moment with my son having just gone through the myriad of options available and what he wants to do as his future career. We now are waiting to see if he has the subjects that he has chosen.

One of the challenges that we faced was that the subjects in the options are grouped into a set of choices and you are steered down a set of choosing one from group A, two from B etc. A formula that seems to be based on popularity of the subject, number of teachers of that subject and the national curriculum at that time. This can be a stress full time for a young person having to make a big life decision about what career path and subjects they should take.

The value of STEM subjects is invaluable to the knowledge and building blocks for a young persons career and for their future.

The internet has made it easier these days to research a career, as you can look at the many available and what types of qualifications are needed for them.

It is also important to look at the future and what is happening in the industries related to that career path. Many industries are increasingly utilising technologies such as IoT (Internet of Things) and Mixed Reality (Augmented Reality and Virtual Reality) to help drive innovation, growth and creativity. These will help shape career paths in the future, for example:

  • An Optician  may be prescribing prescription lenses with Mixed Reality capability and need an understanding of Computing/Information Technology to program the correct settings.
  • A Jeweller or Cobbler may need understanding of electronics and computing to include the latest IoT technology into a ring or the heel of a shoe.
  • A Fashion Designer bringing IoT and wearables into the fabrics and using chemistry, physics and engineering to make new conductive/wearable fabrics that interact with surroundings, mood and environment.
  • A Hairdresser using Mixed Reality via a mirror in front of a client to show the latest hair designs before cutting or colouring takes place.

STEM subjects are the core of most of the way that the world works today and will shape the future. Help challenge the way that we think and the way that we evolve.

When choosing your options, my advice is:

  • Research your chosen career
  • Look at the future directions
  • Research people in that career and what they have done/doing
  • Attend a career event,
    • Speak to people in that career
    • Ask questions
  • Choose your subjects
  • Study and pass the exams

 

 

Building a Quadruped

Tags

, , , , , ,

Robot3I decided to have a go at building a robot for a STEM session last weekend, to show the power of code and how it can be used to control something.  A moving robot is a great visualisation to demonstrate this.

After some searching I settled on a quadruped shown on thingverse (a 3d printing site). This is a build based on a robot called Chopstick Junior by Lumi.

Parts being printed, I set about thinking about the controls and motors. The parts are compatible with an SG90 servo. I needed 8 of these, for the knee and hip joints of the quadruped.

The assembly of the parts was a bit of a challenge as in the instructions it said you needed 3mm x 6mm screw/nuts to connect the shoulders together. You really need 3mm x 8mm screw/nuts as I have to countersink the holes a bit more to get the nuts to attach to the 6mm screw length.

Inserting the servos into the holes in the hips and legs required the unscrewing of the 4 small screws in each servo and temporarily removing the gear top. Once inserted this can be replaced and screwed down.

Once the servos were in place I centered the servos the best I could to allow backwards and forwards movement in each joint. I knew that later adjustment may be needed! This can easily be achieved removing the servo arm and hip/leg, then re-positioning and attaching the arm again.

The power is provided by 4 x AA batteries in a square battery holder. This was glued down onto the frame and fitted well into the build.

The power bus is provided by a small piece of circuit board. I used two lines for -v and +v. Each servo was then wired into the lines and the control wire to an Arduino Nano which is used as the brains of the robot.

The following pins were used on the Digital I/O on the Arduino Nano:

  • D2 – Hip 1
  • D3 – Knee1
  • D4 – Hip 2
  • D5 – Knee 2
  • D6 – Hip 3
  • D7 – Knee 3
  • D8 – Hip 4
  • D9 – Knee 4

I also wired in a sensor on the front of the robot to D10 and D11.

Wiring is grouped together to allow movement, but cut to a length that reduces excess that could get in the way of the legs.

A toggle switch provides an on/off for the power fixed to the rear of the robot. Remember to break the lines on the circuit board so it does not join any of the lines.

Once assembled I then got round to coding. I decided to use the opensource code for the Chopstick Junior as a base and make alterations. The quadruped responded well to the code and several physical servo adjustments were needed. Its now in a reasonable state, however balance is an issue in terms of walking steadily, so need to work more on this.  I have not yet coded movement to respond to the sensors yet, this will be done later.

The code is available via my Github:  https://github.com/Cloudmage/Robots

The robot went down well at the STEM session. Now to tweek that code……

Top view

Robot2

Side View

Robot3

Front View

Robot1

How you can begin to Code

Tags

, , ,

code1With all the recent STEM activities I have been involved with and blogged about, I have been asked to write some posts around how someone can start learning to code.

The school curriculum covers an element of coding with some subjects and pupils may be lucky to get a BBC Micro:bit or Raspberry Pi, however you don’t have to wait until school before learning any coding.

You don’t have to be young to start coding either. Using the same methods and tools anyone can learn to code.

The phrase “Learning to code” may strike fear and thoughts of hundreds of lines text and numbers, but it doesn’t need to. There are lots of websites available to help people start to code and present a fresh way of learning to code.

So where to start…….. If your reading this blog then you have access to a computing device. All you need to get started is a computing device with a web browser and access to the internet.

At this stage, its not worth getting hung up on the choices of the many different languages out there such as Python, Java, C etc, but concentrating on some fundamentals of coding.

Depending if you like Minecraft, Star Wars, Dr Who or Frozen, you can learn basic commands through gaming and interaction. These games teach you some basics of coding and commands by getting you to move a character on a screen to complete a number of tasks. Each of the games work in a similar way, using someones favorite characters to help them learn. These also help keep focus and attention.

The first code that you will learn is through blocks.

Minecraft – https://code.org/minecraft

Dr Who – http://www.bbc.co.uk/cbbc/games/doctor-who-game

Frozen – https://studio.code.org/s/frozen/stage/1/puzzle/1

Star Wars – https://code.org/starwars

Moana – http://partners.disney.com/hour-of-code

Once you have completed the tasks in blocks, you could then also try using a different language with some of the games such as Java if you wish. Its a great way of experiencing some of the differences in the languages.

 

 

The main program behind blocks is Scratch. To see more on the block programming method have a look at Scratch itself.

https://scratch.mit.edu/

At the scratch site there are learning tools and lessons to help you learn as well as access to the full programming language. The Scratch site also hosts a lot of other peoples programs which you can run/play and look at how they have constructed their code.

Scratch is a free visual programming language developed by the MIT(Massachusetts Institute of Technology) Media Lab.[1] Scratch is used by students, scholars, teachers,and parents to easily create animations, games, etc. It provides a stepping stone to the more advanced world of computer programming. It can also be used for a range of educational and entertainment constructionist purposes from math and science projects, including simulations and visualizations of experiments, recording lectures with animated presentations, to social sciences animated stories, and interactive art and music.[2] Viewing the existing projects available on the Scratch website, or modifying and testing any modification without saving it requires no online registration.

Source:https://en.wikipedia.org/wiki/Scratch_(programming_language)

Scratch allows users to use event-driven programming with multiple active objects called sprites.[1] Sprites can be drawn, as vector or bitmap graphics, from scratch in a simple editor that is part of Scratch, or can be imported from external sources, including webcams.

Source:https://en.wikipedia.org/wiki/Scratch_(programming_language)

All you need now is to dedicate some time each week to learn to code.

Scout STEM/Science Camp

LegoAfter some months planning and organisation, at the weekend  (17th to 19th March 2017) I ran a Science Camp for around 50 Scouts at a local Scout Camp Site starting Friday night and finishing Sunday afternoon.

Also being a STEM Ambassador its another part of spreading the importance of STEM subjects to young people. STEM stands for Science, Technology, Engineering and Mathematics.

STEM Ambassadors are people with experience in one or many of these fields who use their knowledge, enthusiasm and commitment to encourage young people to enjoy STEM subjects.

With enlisted help from Manchester University, the main key theme of the camp was to highlight the importance of STEM subjects to the young people at the camp and to have some fun whilst doing this over a number of activity bases including;

  • Building Lego Mindstorm Robots
  • Programming Lego Mindstorm Robots
  • Building a Metal Detector
  • Programming the Metal Detector (Arduino)
  • Thermal Imaging
  • Science experimentation (hands on small fun experiments)
  • Bottle Rockets
  • Caucasian Divers

A great camp that worked well with the Scouts getting some great hands on and fun with science. The activities also contributed to the Scouts achieving stage 2 of the Digital Maker staged badge (https://maxhemingway.com/2016/01/25/digital-scouting/)

 

Ladybrook Valled Science Camp 2017Science 1Science 2Science 3

Science 4

A big thank you to Manchester University and the staff who attended the camp for their assistance and help with this camp.

 

Rise of the Cobot

Tags

, , , , ,

CobotRobotics have been around for many years, with the idea of robots helping humans being depicted in Science Fiction in early books, comics and films.  Robots have been evolving with design and use as we have been working with them to carry out various tasks.

So what is a cobot? Wikipedia defines Cobots as:

A cobot or co-robot (from collaborative robot) is a robot intended to physically interact with humans in a shared workspace. This is in contrast with other robots, designed to operate autonomously or with limited guidance, which is what most industrial robots were up until the decade of the 2010s.

https://en.wikipedia.org/wiki/Cobot

Robots have often been seen as a replacement for humans in many roles, however cobots are not, instead working with and interacting with humans in various tasks and levels. Cobots have been around for the past few years, mainly in industrial workplaces such as manufacturing , automotive and supply chains. Their evolution is now bringing cobots into many other workplaces and use cases.

The Automotive industry is probably the best example of using robots that then move to cobots in the workplace, working with humans in assembling cars. The future of the automated car is turning the vehicle into a cobot and will probably be one of the cobots people with interact with the most in the future.

Advancements in cobots are coming from the universities and private companies developing new ways of interacting and enhancing tasks/jobs such as:

  • Automotive
  • Manufacturing
  • Healthcare
  • Prosthetics
  • Workplace

Imagine your working buddy is a cobot that can perform tasks hand in hand with you, take over if you need to do something else, increase its speed of completing the tasks, then sense your return and slow to the speed your working at.

The increase of cobots in the workplace does have an impact on legalities in the workplace and many questions still remain unanswered. There are discussions on robot/cobot rights and should they pay taxes (the companies that use them).

There is a growing place for cobots within the workplace and we will be working with them more and more as new cobots and ways of working are produced, however  it may be a while until we get to a fully AI/Cobotic Workplace.

 

References / Further Reading

Classification of “Cobotic Systems” for “Industrial Applications”

Meet the cobots: humans and robots together on the factory floor

High Performance Cobotics

Man and machine: The new collaborative workplace of the future

The robots are coming: legalities in the workplace

http://www.hrmagazine.co.uk/hr-most-influential/profile/the-robots-are-coming-legalities-in-the-workplace

Boston Dymanics Robots

 

Stringing along the Scammers

Tags

PadlockIts always great when you get a phone call saying “Hello, I’m calling from Microsoft and we have noticed a problem with your computer”. My inner kid springs to life and its time to string on the scammers.

Unfortunately my fun was cut a bit short after the first couple of questions when I was asked what key was next to my Ctrl key on the keyboard. They are evidently looking for a Windows key and they hung up when I gave them the keys of an Apple Mac Keyboard.

The worrying part is that this practice is still going on and people fall for it giving out information and going to web pages that will hack their machine and cost them money.

There is some good advice at this page on not being caught out and what to do if you are:

http://www.pcadvisor.co.uk/how-to/security/microsoft-phone-scam-dont-be-victim-tech-support-call-3378798/

 

Basic Input – Then and Now

I spent part of today helping to run a STEM (Science,Technology, Engineering and Mathematics) session with some pupils from a local school. One part of the day involved programming in Python and I set a project of a simple higher or lower game based on a random number generated.

Running the session took me back to when I was at school reading my weekly copy of “Input Magazine” and programming a ZX81. A lot has changed between then and now in terms of computing, however some things haven’t with pupils having access to “Magpi Magazine” and programming a Raspberry Pi. (OK one was BASIC and the other is Python – but hopefully you get what a mean).

input

The ability to save and load has certainly got a lot easier and you don’t have to worry about pressing down on the keyboard too heavily and accidentally moving/dislodging the 16k RAM Pack placed into the back of the ZX81!

zx81_sinclair_research_advert

Sources: