Saturday 28 December 2019

Adafruit PyPortal from Twitter to weather

I have had the Adafruit PyPortal for a while and finally got around to playing with it. The PyPortal cames as part the Adabox011 



1. Getting going

PyPortal contains a colour TFT touch screen; speaker; NeoPixel; sensors for light and temperature sensor;  microSD slot; ports for I2C and pins for either analogue or digital; with built-in 8MB flash memory. It uses both CircuitPython and Arduino. In this post, CircuitPython is used. A more detailed overview of the device is available at https://learn.adafruit.com/adafruit-pyportal 

To set it up I started from https://learn.adafruit.com/adafruit-pyportal/updating-your-pyportal, I already had CircuitPython installed so skipped ahead after updating the firmware to PyPortal CircuitPython Setup and then the enjoyable bit Internet Connect! 


2 From Twitter to Weather
Time to play. There is an interesting example, developed by John Parks (https://learn.adafruit.com/users/johnpark) PyPortal Twitter Follows Trophy (https://learn.adafruit.com/pyportal-twitter-follows-trophy) which turns the PyPortal into a 'scoreboard' for twitter follows. The first few sections describing setting the system up in terms of CircuitPython, internet connection and updating the firmware, similar to the links above. The code starts at https://learn.adafruit.com/pyportal-twitter-follows-trophy/code-pyportal-with-circuitpython the description is really useful and essentially uses JSON information about followers and displays it on the PyPortal.

Using this code as the core of a new project, the device was changed to collect weather data for the current weather (and yes I do know I can just look out of the window but this seems like fun) from a website. 

To get started a source of the data was needed and a company Weather Unlocked: https://developer.weatherunlocked.com/ provides a service for local current weather information via their 'Local Weather API' in JSON form.  You need to sign in and create an APP_ID and APP_KEY, these are needed in the next stage. In the code, modify DATA_SOURCE = "https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names="+TWITTER_NAME to something like DATA_SOURCE = "http://api.weatherunlocked.com/api/current/51.50,-0.12?app_id={APP_ID}&app_key={APP_KEY}" with APP_ID and APP_KEY substituted and 51.50,-0.12 changed to the longitude and Latitude of your choice.

Using the URL Code Beautify (https://codebeautify.org/jsonviewer) and you can look at the JSON output to get a sense of how the data is structured and see the information produced.
There is a weather description wx_desc, so the code was changed to use DATA_LOCATION = ["wx_desc"] the rest is minor tweaks on the original John Parks code.



Change to DATA_LOCATION = ["temp_c"] and get (not surprsingly) the temperature.

The code used is here:





3. Overview
I enjoyed playing with this so far and look forward to playing with it a bit more. Thank you to John Parks for such a good starting point and WeatherUnlocked for such a useful feed.


All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

Monday 23 December 2019

Most popular post on the Robots and Physical computing Blog in 2019






The top 10 most popular posts viewed during 2019



Popular Posts





All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

Tuesday 17 December 2019

Playing with Adafruit Circuit Playground BlueFruit


It is always a moment of excitement (perhaps I need to get a life) when the Adafruit Adabox arrives, this time is no exception with the arrival of the Adabox014. Inside there was a great mixture of things for making snow globes based around two devices TFT Gizmo and the Circuit Playground Bluefruit; this post is considered with an initial play with the Bluefruit.

Bluefruit is a small Circuit playground with the addition of Bluetooth or more accurately Bluetooth Low Energy (BLE). If you have played with the Playground express it is very similar. To experiment I wanted to play with the neopixels on the board through Circuit Python, 



The starting point https://learn.adafruit.com/adafruit-circuit-playground-bluefruit/overview to get a bit of background and then to follow the links to how to get it all happening with Circuit.





Task I wanted was to use it, using circuitpython on the Mu editor to control random colours cycling through all the neopixels and in reverse order turn off (the code used is near the end of the post- please feel free to use it, if it is of use. A video at the end show the board in action.

Adafruit have provided a great starting point with the post at https://learn.adafruit.com/adafruit-circuit-playground-bluefruit/circuitpython-neopixel, in fact, I am using part of the code for the initial cycling through the pixels for my solution and modified version to turn the pixels off in reverse order. You will need to add neopixel,mpy available from https://circuitpython.org/libraries to lib folder on the Bluefruit but that is just a drag and drop exercise, name the routine code.py save with the board attached and that is really it.













In summary, this is a cool little board, very much in-line with the previous Circuit Playground boards and I looking forward to playing with it a bit more. The fact it can be programmed in different languages (as could the other boards) including the friendly MakeCode makes it interesting.




All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

Monday 9 December 2019

Sphero RVR


Sphero have a track record of making well sort of fast spherical robots (along with a few Star Wars ones) in a recent kickstarter campaign they have a released a tracked robot  https://www.kickstarter.com/projects/sphero/sphero-rvr-the-go-anywhere-do-anything-programmabl/description - RVR and it is still fast and fun.  




It does seem to be a step up, they are allowing more customisation with a expansion port and on-board power, aimed at connecting other pieces of hardware, for example, Microbit and Raspberry Pis.Even without these it is not short of sensors and lights 


The simplest way to program it is still through the Sphero Edu App and its block programming providing a quick way to get going.



















This feels (to me) like a move towards the more 'traditional' robot hobbyists market - and that is fine. It comes almost completely built, so it is soon ready to go out of the box which is nice. I am interested to see what resources will be provided by Sphero through their Sphero Developer Site (https://sdk.sphero.com/), there are already some cool looking sample projects on the site https://sdk.sphero.com/samples/. So in all, I think well worth a look.


All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

Monday 2 December 2019

Free Web based Augmented Reality (AR)

This post is part of the materials for a session on Augmented Reality presenting at the 2019 SolSTICE eLearning and CLT Conference 5-6th June 2019 Edge Hill University https://www.edgehill.ac.uk/solstice/files/2019/05/2019-Book-of-Abstracts.pdf  and the #MergedFutures Event on 14th June 2019.
1. Introduction





                                                                                
So if we go to

Using the markers above with this url running on your device (with a camera enabled) it should add two new objects over the markers. you will need a copy of these images and printed them out. If you have it I would suggest running it in Firefox.





2. Getting Started
The guide for all this is https://aframe.io/blog/arjs/, with this you have pretty much everything you need.







To start your own go to https://glitch.com/ -> new project ->Hello World project

In the index.html deleted everything in there and replace it with

Should have a white box over the Hiro marker when the web camera/phone/tablet is shown the markers.


The code  not in bold below just sets it up - to play with it we don’t need to worry about what it does - we can just use it. The bit in bold is the bit initially we change or add to – in this case it puts a default white box over the marker.















3. Playing with other objects

Now if we replace


With


We get a blue ball in place of the box


Now for some fun
http://www.pngall.com/bee-png/download/84 is a bee image – download it


Go back to Glitch, and if we go to assets we can add the image. Open up the folder that has the downloaded image and drag it into the asset window.

When it stops downloading and shows the image, click on the image to get the new web address we are going to need that next. so take a copy of it.

If we replace




With the following by just adding in src="https://cdn.glitch.com/04b86bba-0978-4bf4-b3a7-2ece72336f90%2FBee-PNG.png" as below
 


We get a blue ball with a bee stretched over it. But it doesn’t look that great if we remove the color=”blue” we see the bee stuck at the bottom of the ball still but the colours are back.


Now if we replace
    


With commands to rotate the sphere



We get a rotating sphere with the image on it.

This can be found at https://simplistic-wakeboard.glitch.me and works with the Hiro marker


If you want to find out how I felt about presenting go to https://dandy-custard.glitch.me/



Now let's try a GIF


Download the GIF and then copy (drag and drop) into the asset folder of your project  get the web address and put into src=”” in place of the one that is there already

An example can be found at https://root-reply.glitch.me/ and works with the Hiro marker.




4. Issues and Thoughts

  • Make sure all the markers have white space surrounding them.




  • If I am honest, the technology is cool and useful for educational use, but I not sure where it all can go.   The question is what can others come up with to use it, I would love to hear about it.







Related Links



All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

ChatGPT, Data Scientist - fitting it a bit

This is a second post about using ChatGPT to do some data analysis. In the first looked at using it to some basic statistics  https://robots...