Are you the publisher? Claim or contact us about this channel


Embed this content in your HTML

Search

Report adult content:

click to rate:

Account: (login)

More Channels


Channel Catalog


Channel Description:

All Content in Enchanted Objects

older | 1 | (Page 2)

    0 0

    A quick video of the servo and mechanism all connected up. I've spotted an interesting issue with these positional servos. When they power up the driving software has no idea where the servo is position so it will send the signal representing the centre position (which is configurable). The servo will move to that position as fast as it can even it it's right at the limits of it's positioning. Only after it reaches that point can the software attempt to control the speed of motion by sending a series of positions with delays between them.

     

     

    This should be the last of the mechanical based posts and I'll switch onto electronics and software.

    Hopefully there will be another installation of Hans and Matilda tomorrow but it might be delayed until slightly later in the week.


    0 0

    The show is massive and I must have walked miles yesterday. There are lots of amazing things too see and lots of fantastic people. I also attended a few interesting presentations. One thing that struck me was the diversity, people have all different reasons to make and different levels of skills and technology. I had a fantastic day and am sure I'll have another one today.

     

    I'll write a bit more and upload more pictures once I've access to computer.

    2015-09-26 10.08.44.jpg


    0 0

    Thanks to a "gentlemans flight" I did not have to rush to Heathrow and also had plenty of time when I was there. As the plane flew into Newark, I took the train and subway over to Queens and got a view of the city. The nearest subway to the hotel (an overhead line) had a view of the unisphere, observation platforms and the science centre and rockets.

    111thStreetWithUniSphereInDistance1.jpg

    In the morning I had a bagel at a local deli and headed over to the venue. I have been to a few other Maker Faires such as the UK one up in Newcastle and the mini makers faire that ran at Elephant and Castle for a couple of years. I've also seen the Makers at Mex that were at Sandown last year. However the Americans being the way they are, have a much bigger faire, I knew this in advance but was still surprised by the sheer scale of their setup.

    Map.png

    The Makers Faire was divided into 6 zones, each focusing on a rough topic area such as electronics, maker spaces, education or robots and drones. As we were waiting to go in we were serenated by a stilt walking band with a dancing cardboard dinosaur. I knew this was a good sign of the great things to come. I shortcutted through the science centre gardens and said hi to the Atmel crew and spotted a familiar face at the Arduino stand.

    ArduinoWithMassimoBanzi .jpg

     

    I also headed over to the Makershed to meet fellow Brit and laser cutting expert Dominic who'd traded some of his time for free accommodation and was helping out with the Solarbotics stand. I also met up with Andy Sigler from Patchbay.IO who was unfortunately frustrated by lack of power so I promised to return later to see things in action. I was impressed with the number of medical makers and thought I'd seen Enrico's Meditech case at one point. There was a great example of a Lego MRI and proton beam machine that were used to show kids how they worked so they would not be so scared when inside. I also liked the add ons for kids motorised ride on toys that meant that not only were they easier to use for disabled children but they could also be used to help develop certain skills or muscles.

     

    {gallery} Talks

    P1010098.JPG

    Midi Guitar

    TalkFixerVincent.JPG

    Fixer Vincent

    TalkDaddyDaughterElectronics.JPG

    Daddy Daughter Electronics

     

    Whilst I was there I also attended a few talks, some were thinly disguised sales promotions but others were from enthusiastic makers wanting to share their experiences and ideas. I managed to miss the start of the Les Machines De L'île De Nantes but saw the slides of their fantastic ride on motorised Elephant, factory/gallery and next project the Stork Tree which is a giant metal tree with two ride on storks that take 60 people at a time in huge baskets under the wings. They pay for their projects via grants, sponsorship and by charging an entrance fee to their gallery where they get the public to test out their latest prototypes. There were also some good talks on making, hacking and fixing.

    3DPrintedCastle (1).JPGArcadeMachinesBig.JPG
    There were lots of fantastic projects inside the science centre too, and I got to see a work in progress cardboard formula one car being made, Stirling engines, a semaphore flag game with imaging processing to rate the flag user, magical 3D printed castles and another fellow Brit, Ross Atkin from Craft Robot who is kickstarting his project shortly. There were a lot of people who were just about to run kickstarter projects, and a lot of those were in the Startup zone. Here there was gadgets to show what mood your dog was in by how he wagged his tail, giant building blocks, architecture kits, multi headed 3D printer, laser cutting milling machines and some chaps from Dublin with a novel pin board for holding circuits or projects in place whilst you solder them.


    I ended the first day exhausted so managed to miss the Menthos and Coke show over at the UniSphere.

     

    The next day decided to revisit the electronic section and say hi to Cadsoft. They were really friendly and explained the new licensing model to me. Also I spotted another celebrity Eben Upton.

    PiMan.JPG

    There were a few announcements (that I mostly missed) whilst I was at the show. Arduinio has finished their new Wifi shield with Atmel's cyptography chip on it. Adafruit is bringing out a new board and Atmel were talking about the new Atmel Studio and their web based IDE.

     

    I did however manage to see the Life Sized Mouse trap in action, watch drone racing, see experiments being done, talk to loads of people and buy some presents.

     

    {gallery} Makerfaire

    3dPrintingFilamentRecycling.JPG

    Filament recycling

    3dPrinterGigaBot.jpg

    Big 3d Printer

    CardboardFormula1.JPG

    Cardboard formula 1 car

    Circus.JPG

    Circus

    ExperimentBoy (2).JPG

    Experiments with ExperimentBoy

    DronesFirstPersonRacing.jpg

    Drone Racing

    AVRMan.JPG

    AVRMan

    Hive76_Clyde.jpg

    Hive76 Clyde Computer

    InstructablesWoodCarving (6).JPG

    Instructables chainsaw robot

    MakerFaireSign.JPG

    Makerfaire sign

    MechanicalHorse (2).jpg

    Mechanical Horse

    MouseTrap (2).jpg

    Mousetrap

    Macel_PutTheBallInTheCan.JPG

    Mario the Magician with Animatronic Monkey Marcel

    ManWithCloud.jpg

    Cloud computing?

    LegoCube.JPG

    Lego Crowd Creation

    MultiuserBike.jpg

    Multiuser Bike

     

    Mural.JPG

    Mural painted live

    PowerRacers (2).JPG

    Power Racers Parade

    R2D2Builders.JPG

    R2D2 Builders

    RobotResurection (4).JPG

    Robot Resurrection

    StiltwalkingJazzBandAndDancingDino2.jpg

    Stilt walking jazz band and dancing cardboard dinosaur

    TinyArcadeMachines.jpg

    Tiny Arcade Machines

    ZegoBeast (2).JPG

    Zegobeast

     

    I finished my weekend by watching the Eepybird chaps spraying coke zero all over the place, in time to music.

    CokeMentos (4).JPG

    A big thanks again to Element14 for arranging the trip and selecting me as the winner.


    0 0

    A quick report from Hans and Matilda whilst I'm writing up the main report.

     

    Hans and Matilda travelled to New York in a stylish box.

    HansAndMatildaTravelBox1.jpgHansAndMatildaTravelBox2.jpg

    At Heathrow they stopped off for a cup of tea, it was a bit big so they did not finish it.

    HansAndMatildaCup.jpg

    A trip to New York is not complete without a coffee and bagel for breakfast.

    HansAndMatildaBreakfast.jpg

    They stopped in to see the Unisphere before the show

    HansAndMatildaUnisphere.jpg

    There were lots of interesting electronics to see at the show, including several new boards.

    HansAndMatildaAtElectronicsZone.jpg

    The locals were friendly

    HansAndMatildaInstructablesRobots.JPG

    There were lots of exciting events and things to see, such as Power Tool Drag Racing.

    HansAndMatildaPowerToolRacing.JPG

    Hans and Matilda liked the show and the USA so much that they've decided to stay there. I'll need to find some replacement meteorologists for the Enchanted Cottage,


    0 0

    SAMA5D4 Xplained Ultra

    60d37bec6b8da5029546c79a70c60635.png

     

    The Atmel® SMART SAMA5D4 Xplained Ultra is a member of Atmel’s Xplained fast prototyping and evaluation platforms. The board is based on the Atmel SAMA5D4 microprocessor and comes with a rich set of ready-to-use connectivity, an LCD and HDMI interface, an embedded debug interface unit, as well as storage peripherals and expansion headers for easy customization. A Linux distribution and software package gets you evaluating fast. A USB device connector can be used to power the board as well as to program and debug it. Seven headers, compatible with Arduino R3 (Uno, Due) and two Xplained headers are available for various shield connections.

     

    The SAMA5D4 series is a high-performance, power-efficient ARM Cortex-A5 processor MPU capable of running up to 528 MHz. It integrates the ARM NEON™ SIMD engine for accelerated signal processing, multimedia and graphics as well as a 128 KB L2-Cache for high system performance. The device features the ARM TrustZone® enabling a strong security perimeter for critical software, as well as several hardware security features. The device also features advanced user interface and connectivity peripherals.

     

    Applications: The SAMA5D4 series is optimized for control panel/HMI applications needing video playback and applications that require high levels of connectivity in the industrial and consumer market. Its security features makes the SAMA5D4 well suited for secure gateways or for the IOT.

     

    Arduino YunArduino Yun

    2356914-40.jpg

    Arduino YÚN is the first member of a new groundbreaking line of wifi products combining the power Linux with ease of use of Arduino. The first Arduino YÚN is the combination of a classic Arduino Leonardo (based on the Atmega32U4 processor) with a Wifi system-on-a-chip running Linino (a MIPS GNU/Linux based on OpenWRT). We embedded the Linux machine directly on the PCB of the Arduino Leonardo and we connected the two so that from Arduino it’s very easy to run commands on the Linux side and use it as an Ethernet and Wifi interface. Historically, interfacing Arduino with complex web services has been quite a challenge due to the limited memory available. Web services tend to use verbose text based formats like XML that require quite a lot or ram to parse. On the Arduino YÚN we have created the Bridge library which delegates all network connections and processing of HTTP transactions to the Linux machine.

     

    Arduino Prototyping Shield KitArduino Prototyping Shield Kit

    arduino-a000081-40.jpg

    The Arduino Prototyping Shield Kit makes it easy for you to design custom circuits for your next Arduino project.

    You can solder parts to the prototyping area to create your project, or use it with a small solderless breadboard (not included) to quickly test circuit ideas without having to solder. It's got extra connections for all of the Arduino I/O pins, and it's got space to mount through-hole and surface mount integrated circuits if you need to as well. It's a convenient way to make your custom circuit and Arduino into a single module.

     

    TinkerKit Servo ModuleTinkerKit Servo Module

    2075365-40.jpg

    The Servo Module is a high quality servo with the standard TinkerKit 3pin connector to be plugged in the Sensor Shield. The best choice to add Robotics & Mechatronics to your project. Servos are composed of an electric motor mechanically linked to a potentiometer. Arduino controls the Servo using the Servo Library. The electronics inside the servo translate the width of the pulse into a position. When the servo is

    commanded to rotate, the motor is powered until the potentiometer reaches the value corresponding to the commanded position.

     

    Infineon DC Motor Control Shield for Arduino

    f0f752840d1d5bda6294576abfd76919.png

    The DC motor control shield (DCMOTORCONTRBTN8982TOBO1) from Infineon technologies is one of the first high current motor control boards being compatible to Arduino as well as to Infineon’s XMC1100 Boot Kit. The DC motor control shield is capable to drive two uni-directional DC motors (half bridge configuration) or one bi-directional DC motor (H-Bridge configuration).

     

    The implemented integrated BTN8982TA NovalithIC™ half bridges can be controlled by a PWM via the IN Pin. Interfacing to a microcontroller is made easy by the integrated driver IC which features logic level inputs, diagnosis with current sense, slew rate adjustment, dead time generation and protection against overtemperature, undervoltage, overcurrent and short circuit.

     

    Infineon Lighting RGB LED Arduino Shield

    infinion.png

    The RGB LED Lighting Shield from Infineon Technologies is one of the first intelligent evaluation boards being compatible with Arduino as well as Infineon’s XMC1100 BOOT KIT. It is designed to be easy configurable and combinable for different LED light engines and lamps for fast prototyping and inexpensive evaluation of LED lighting applications.

     

    The RGB LED Lighting Shield uses a DC-DC buck topology and is able to drive up to 3 LED channels with constant current. The shield itself is powered by a programmable XMC 32-bit ARM® powered MCU with embedded Brightness Color Control Unit (BCCU, XMC1200 MCU series), which is capable of delivering flicker-free LED dimming and color control.

     

    The BCCU enables extreme low cost but high quality LED lighting solution, with minimal user code. The RGB LED Lighting Shield has also been designed to provide options for the evaluation of smooth, eye-friendly diming, color mixing for different topologies, and it can be extended with e.g. with DALI/DMX or Radar).

     

    ARDUINO UNO 65PCS WORKSHOP SETARDUINO UNO 65PCS WORKSHOP SET

    5040568.jpg

    Arduino Workshop Kit is a selection of all the components necessary to get any projects up and running.

     

    > Back to Enchanted Objects


    0 0

    A quick video of the servo and mechanism all connected up. I've spotted an interesting issue with these positional servos. When they power up the driving software has no idea where the servo is position so it will send the signal representing the centre position (which is configurable). The servo will move to that position as fast as it can even it it's right at the limits of it's positioning. Only after it reaches that point can the software attempt to control the speed of motion by sending a series of positions with delays between them.

     

     

    This should be the last of the mechanical based posts and I'll switch onto electronics and software.

    Hopefully there will be another installation of Hans and Matilda tomorrow but it might be delayed until slightly later in the week.


    0 0
  • 08/12/15--07:17: New York Maker Faire
  • When I met up with shabaz and mcb1 the other evening they asked if I was excited about going to the New York Maker Faire. The answer is "not yet". Part of the reason for that is I'm still thinking about the logistics aspect, where can I get my dinner, how do I get from the airport to the hotel etc. I'm also still in my denial phase, not quite believing that I'm actually going!! Also there was not much to go-on for the Maker Faire website.

     

    Today I saw a report from the Bay Area Faire and there was some amazing projects so I checked the Maker Faire site again and there are some details now available. It's beginning to become real for me.

     

     

    newyork-logo.png

    World Maker Faire – 6th Annual

    New York Hall of Science, Queens

    September 26 & 27

    Saturday and Sunday 10AM – 6PM

     

     

     

     

     

     

    The overall programme for the New York Faire has not yet been posted but there are some heavy hints in the form of who the sponsors are and some of the makers who have already signed up.

     

    Sponsors

    http://makerfaire.com/new-york-2015/sponsors/

     

    Meet the makers

    http://makerfaire.com/new-york-2015/meet-the-makers/

     

    Free Tickets

    If you live in the New York area and want to get yourself some free tickets, then you can sign up to promote the show as part of the New York Street Team

     

    Maker Faire Bay Area reports

    https://medium.com/technologys-next-dimension/meet-the-makers-f07b2d4dc63b

    https://medium.com/make-and-maker-faire/the-mother-of-all-maker-faires-e54c4afc2605


    0 0

    The show is massive and I must have walked miles yesterday. There are lots of amazing things too see and lots of fantastic people. I also attended a few interesting presentations. One thing that struck me was the diversity, people have all different reasons to make and different levels of skills and technology. I had a fantastic day and am sure I'll have another one today.

     

    I'll write a bit more and upload more pictures once I've access to computer.

    2015-09-26 10.08.44.jpg


    0 0

    SAMA5D4 Xplained Ultra

    60d37bec6b8da5029546c79a70c60635.png

     

    The Atmel® SMART SAMA5D4 Xplained Ultra is a member of Atmel’s Xplained fast prototyping and evaluation platforms. The board is based on the Atmel SAMA5D4 microprocessor and comes with a rich set of ready-to-use connectivity, an LCD and HDMI interface, an embedded debug interface unit, as well as storage peripherals and expansion headers for easy customization. A Linux distribution and software package gets you evaluating fast. A USB device connector can be used to power the board as well as to program and debug it. Seven headers, compatible with Arduino R3 (Uno, Due) and two Xplained headers are available for various shield connections.

     

    The SAMA5D4 series is a high-performance, power-efficient ARM Cortex-A5 processor MPU capable of running up to 528 MHz. It integrates the ARM NEON™ SIMD engine for accelerated signal processing, multimedia and graphics as well as a 128 KB L2-Cache for high system performance. The device features the ARM TrustZone® enabling a strong security perimeter for critical software, as well as several hardware security features. The device also features advanced user interface and connectivity peripherals.

     

    Applications: The SAMA5D4 series is optimized for control panel/HMI applications needing video playback and applications that require high levels of connectivity in the industrial and consumer market. Its security features makes the SAMA5D4 well suited for secure gateways or for the IOT.

     

    Arduino YunArduino Yun

    2356914-40.jpg

    Arduino YÚN is the first member of a new groundbreaking line of wifi products combining the power Linux with ease of use of Arduino. The first Arduino YÚN is the combination of a classic Arduino Leonardo (based on the Atmega32U4 processor) with a Wifi system-on-a-chip running Linino (a MIPS GNU/Linux based on OpenWRT). We embedded the Linux machine directly on the PCB of the Arduino Leonardo and we connected the two so that from Arduino it’s very easy to run commands on the Linux side and use it as an Ethernet and Wifi interface. Historically, interfacing Arduino with complex web services has been quite a challenge due to the limited memory available. Web services tend to use verbose text based formats like XML that require quite a lot or ram to parse. On the Arduino YÚN we have created the Bridge library which delegates all network connections and processing of HTTP transactions to the Linux machine.

     

    Arduino Prototyping Shield KitArduino Prototyping Shield Kit

    arduino-a000081-40.jpg

    The Arduino Prototyping Shield Kit makes it easy for you to design custom circuits for your next Arduino project.

    You can solder parts to the prototyping area to create your project, or use it with a small solderless breadboard (not included) to quickly test circuit ideas without having to solder. It's got extra connections for all of the Arduino I/O pins, and it's got space to mount through-hole and surface mount integrated circuits if you need to as well. It's a convenient way to make your custom circuit and Arduino into a single module.

     

    TinkerKit Servo ModuleTinkerKit Servo Module

    2075365-40.jpg

    The Servo Module is a high quality servo with the standard TinkerKit 3pin connector to be plugged in the Sensor Shield. The best choice to add Robotics & Mechatronics to your project. Servos are composed of an electric motor mechanically linked to a potentiometer. Arduino controls the Servo using the Servo Library. The electronics inside the servo translate the width of the pulse into a position. When the servo is

    commanded to rotate, the motor is powered until the potentiometer reaches the value corresponding to the commanded position.

     

    Infineon DC Motor Control Shield for Arduino

    f0f752840d1d5bda6294576abfd76919.png

    The DC motor control shield (DCMOTORCONTRBTN8982TOBO1) from Infineon technologies is one of the first high current motor control boards being compatible to Arduino as well as to Infineon’s XMC1100 Boot Kit. The DC motor control shield is capable to drive two uni-directional DC motors (half bridge configuration) or one bi-directional DC motor (H-Bridge configuration).

     

    The implemented integrated BTN8982TA NovalithIC™ half bridges can be controlled by a PWM via the IN Pin. Interfacing to a microcontroller is made easy by the integrated driver IC which features logic level inputs, diagnosis with current sense, slew rate adjustment, dead time generation and protection against overtemperature, undervoltage, overcurrent and short circuit.

     

    Infineon Lighting RGB LED Arduino Shield

    infinion.png

    The RGB LED Lighting Shield from Infineon Technologies is one of the first intelligent evaluation boards being compatible with Arduino as well as Infineon’s XMC1100 BOOT KIT. It is designed to be easy configurable and combinable for different LED light engines and lamps for fast prototyping and inexpensive evaluation of LED lighting applications.

     

    The RGB LED Lighting Shield uses a DC-DC buck topology and is able to drive up to 3 LED channels with constant current. The shield itself is powered by a programmable XMC 32-bit ARM® powered MCU with embedded Brightness Color Control Unit (BCCU, XMC1200 MCU series), which is capable of delivering flicker-free LED dimming and color control.

     

    The BCCU enables extreme low cost but high quality LED lighting solution, with minimal user code. The RGB LED Lighting Shield has also been designed to provide options for the evaluation of smooth, eye-friendly diming, color mixing for different topologies, and it can be extended with e.g. with DALI/DMX or Radar).

     

    ARDUINO UNO 65PCS WORKSHOP SETARDUINO UNO 65PCS WORKSHOP SET

    5040568.jpg

    Arduino Workshop Kit is a selection of all the components necessary to get any projects up and running.

     

    > Back to Enchanted Objects


    0 0

    Electronics industry media have covered the Enchanted Objects winner announcement. The outlets, and their stories, are as follows:

     


    0 0

    A quick report from Hans and Matilda whilst I'm writing up the main report.

     

    Hans and Matilda travelled to New York in a stylish box.

    HansAndMatildaTravelBox1.jpgHansAndMatildaTravelBox2.jpg

    At Heathrow they stopped off for a cup of tea, it was a bit big so they did not finish it.

    HansAndMatildaCup.jpg

    A trip to New York is not complete without a coffee and bagel for breakfast.

    HansAndMatildaBreakfast.jpg

    They stopped in to see the Unisphere before the show

    HansAndMatildaUnisphere.jpg

    There were lots of interesting electronics to see at the show, including several new boards.

    HansAndMatildaAtElectronicsZone.jpg

    The locals were friendly

    HansAndMatildaInstructablesRobots.JPG

    There were lots of exciting events and things to see, such as Power Tool Drag Racing.

    HansAndMatildaPowerToolRacing.JPG

    Hans and Matilda liked the show and the USA so much that they've decided to stay there. I'll need to find some replacement meteorologists for the Enchanted Cottage,


    0 0

    Thanks to a "gentlemans flight" I did not have to rush to Heathrow and also had plenty of time when I was there. As the plane flew into Newark, I took the train and subway over to Queens and got a view of the city. The nearest subway to the hotel (an overhead line) had a view of the unisphere, observation platforms and the science centre and rockets.

    111thStreetWithUniSphereInDistance1.jpg

    In the morning I had a bagel at a local deli and headed over to the venue. I have been to a few other Maker Faires such as the UK one up in Newcastle and the mini makers faire that ran at Elephant and Castle for a couple of years. I've also seen the Makers at Mex that were at Sandown last year. However the Americans being the way they are, have a much bigger faire, I knew this in advance but was still surprised by the sheer scale of their setup.

    Map.png

    The Makers Faire was divided into 6 zones, each focusing on a rough topic area such as electronics, maker spaces, education or robots and drones. As we were waiting to go in we were serenated by a stilt walking band with a dancing cardboard dinosaur. I knew this was a good sign of the great things to come. I shortcutted through the science centre gardens and said hi to the Atmel crew and spotted a familiar face at the Arduino stand.

    ArduinoWithMassimoBanzi .jpg

     

    I also headed over to the Makershed to meet fellow Brit and laser cutting expert Dominic who'd traded some of his time for free accommodation and was helping out with the Solarbotics stand. I also met up with Andy Sigler from Patchbay.IO who was unfortunately frustrated by lack of power so I promised to return later to see things in action. I was impressed with the number of medical makers and thought I'd seen Enrico's Meditech case at one point. There was a great example of a Lego MRI and proton beam machine that were used to show kids how they worked so they would not be so scared when inside. I also liked the add ons for kids motorised ride on toys that meant that not only were they easier to use for disabled children but they could also be used to help develop certain skills or muscles.

     

    {gallery} Talks

    P1010098.JPG

    Midi Guitar

    TalkFixerVincent.JPG

    Fixer Vincent

    TalkDaddyDaughterElectronics.JPG

    Daddy Daughter Electronics

     

    Whilst I was there I also attended a few talks, some were thinly disguised sales promotions but others were from enthusiastic makers wanting to share their experiences and ideas. I managed to miss the start of the Les Machines De L'île De Nantes but saw the slides of their fantastic ride on motorised Elephant, factory/gallery and next project the Stork Tree which is a giant metal tree with two ride on storks that take 60 people at a time in huge baskets under the wings. They pay for their projects via grants, sponsorship and by charging an entrance fee to their gallery where they get the public to test out their latest prototypes. There were also some good talks on making, hacking and fixing.

    3DPrintedCastle (1).JPGArcadeMachinesBig.JPG
    There were lots of fantastic projects inside the science centre too, and I got to see a work in progress cardboard formula one car being made, Stirling engines, a semaphore flag game with imaging processing to rate the flag user, magical 3D printed castles and another fellow Brit, Ross Atkin from Craft Robot who is kickstarting his project shortly. There were a lot of people who were just about to run kickstarter projects, and a lot of those were in the Startup zone. Here there was gadgets to show what mood your dog was in by how he wagged his tail, giant building blocks, architecture kits, multi headed 3D printer, laser cutting milling machines and some chaps from Dublin with a novel pin board for holding circuits or projects in place whilst you solder them.


    I ended the first day exhausted so managed to miss the Menthos and Coke show over at the UniSphere.

     

    The next day decided to revisit the electronic section and say hi to Cadsoft. They were really friendly and explained the new licensing model to me. Also I spotted another celebrity Eben Upton.

    PiMan.JPG

    There were a few announcements (that I mostly missed) whilst I was at the show. Arduinio has finished their new Wifi shield with Atmel's cyptography chip on it. Adafruit is bringing out a new board and Atmel were talking about the new Atmel Studio and their web based IDE.

     

    I did however manage to see the Life Sized Mouse trap in action, watch drone racing, see experiments being done, talk to loads of people and buy some presents.

     

    {gallery} Makerfaire

    3dPrintingFilamentRecycling.JPG

    Filament recycling

    3dPrinterGigaBot.jpg

    Big 3d Printer

    CardboardFormula1.JPG

    Cardboard formula 1 car

    Circus.JPG

    Circus

    ExperimentBoy (2).JPG

    Experiments with ExperimentBoy

    DronesFirstPersonRacing.jpg

    Drone Racing

    AVRMan.JPG

    AVRMan

    Hive76_Clyde.jpg

    Hive76 Clyde Computer

    InstructablesWoodCarving (6).JPG

    Instructables chainsaw robot

    MakerFaireSign.JPG

    Makerfaire sign

    MechanicalHorse (2).jpg

    Mechanical Horse

    MouseTrap (2).jpg

    Mousetrap

    Macel_PutTheBallInTheCan.JPG

    Mario the Magician with Animatronic Monkey Marcel

    ManWithCloud.jpg

    Cloud computing?

    LegoCube.JPG

    Lego Crowd Creation

    MultiuserBike.jpg

    Multiuser Bike

     

    Mural.JPG

    Mural painted live

    PowerRacers (2).JPG

    Power Racers Parade

    R2D2Builders.JPG

    R2D2 Builders

    RobotResurection (4).JPG

    Robot Resurrection

    StiltwalkingJazzBandAndDancingDino2.jpg

    Stilt walking jazz band and dancing cardboard dinosaur

    TinyArcadeMachines.jpg

    Tiny Arcade Machines

    ZegoBeast (2).JPG

    Zegobeast

     

    I finished my weekend by watching the Eepybird chaps spraying coke zero all over the place, in time to music.

    CokeMentos (4).JPG

    A big thanks again to Element14 for arranging the trip and selecting me as the winner.


    0 0

    After building the heart beat sensor, it's time to process the output signal to get the actual heart beat

     

    The heart pulse signal that comes out of a photoplethysmograph is an analog fluctuation in voltage, and it has a predictable wave shape as shown in figure below

     

    05 - Heart beat sensor signal.jpg

     

    My goal is to find successive moments of instantaneous heart beat and measure the time between, called the Inter Beat Interval (IBI). By following the predictable shape and pattern of the PPG wave, we are able to do just that.

    When the heart pumps blood through the body, with every beat there is a pulse wave (kind of like a shock wave) that travels along all arteries to the very extremities of capillary tissue where the Pulse Sensor is attached. Actual blood circulates in the body much slower than the pulse wave travels. Let's follow events as they progress from point 'T' on the PPG below. A rapid upward rise in signal value occurs as the pulse wave passes under the sensor, then the signal falls back down toward the normal point. Sometimes, the dichrotic notch (downward spike) is more pronounced than others, but generally the signal settles down to background noise before the next pulse wave washes through. Since the wave is repeating and predictable, we could choose almost any recognizable feature as a reference point, say the peak, and measure the heart rate by doing math on the time between each peak. This, however, can run into false readings from the dichrotic notch, if present, and may be susceptible to inaccuracy from baseline noise as well. There are other good reasons not to base the beat-finding algorithm on arbitrary wave phenomena. Ideally, we want to find the instantaneous moment of the heart beat. This is important for accurate BPM calculation, Heart Rate Variability (HRV) studies, and Pulse Transit Time (PTT) measurement. .

     

    06 - PPG Output with notes.jpg

     

    Some heart researchers say it's when the signal gets to 25% of the amplitude, some say when it's 50% of the amplitude, and some say it's the point when the slope is steepest during the upward rise event. This version 1.1 of Pulse Sensor code is designed to measure the IBI by timing between moments when the signal crosses 50% of the wave amplitude during that fast upward rise. The BPM is derived every beat from an average of the previous 10 IBI times.

    First off, it's important to have a regular sample rate with high enough resolution to get reliable measurement of the timing between each beat. To do this, we set up Timer2, an 8 bit hardware timer so that it throws an interrupt every other millisecond. That gives us a sample rate of 500Hz, and beat-to-beat timing resolution of 2mS. This will disable PWM output on pin 3 and 11

     

    void interruptSetup(){
     TCCR1A = 0x00;
     TCCR1B = 0x0C;
     OCR1A = 0x7C;
     TIMSK1 = 0x02;
     sei();
    }

     

    The register settings above tell Timer2 to go into CTC mode, and to count up to 124 (0x7C) over and over and over again. A prescaler of 256 is used to get the timing right so that it takes 2 milliseconds to count to 124. An interrupt flag is set every time Timer2 reaches 124, and a special function called an Interrupt Service Routine (ISR) that we wrote is run at the very next possible moment, no matter what the rest of the program is doing. sei() ensures that global interrupts are enabled.

     

    The only other thing you will need is the correct ISR vector in the next step. ATmega32u4 devices use ISR(TIMER1_COMPA_vect)

    So, when the Arduino is powered up and running with pulse sensor plugged into analog pin 0, it constantly (every 2 mS) reads the sensor value and looks for the heart beat. Here's how that works:

     

    ISR(TIMER2_COMPA_vect){
     Signal = analogRead(pulsePin);
     sampleCounter += 2;
     int N = sampleCounter - lastBeatTime;

     

    This function is called every 2 milliseconds. First thing to do is to take an analog reading of the Pulse Sensor. Next, we increment the variable sampleCounter. The sampleCounter variable is used to keep track of time. The variable N will help avoid noise later.

    Next, we keep track of the highest and lowest values of the PPG wave, to get an accurate measure of amplitude. Note that this processing will be also useful when we will try to measure blood pressure

     

        if(Signal < thresh && N > (IBI/5)*3){      if (Signal < T){        T = Signal;         }    }    if(Signal > thresh && Signal > P){       P = Signal;    }

     

    Variable P and T hold peak and trough values, respectively. The thresh variable is initialized at 512 (middle of analog range) and changes during run time to track a point at 50% of amplitude as we will see later. There is a time period of 3/5 IBI that must pass before T gets updated as a way to avoid noise and false readings from the dicroic notch.

    Now, let's check and see if we have a pulse.

     

    if (N > 250){
    if ( (Signal > thresh) && (Pulse == false) && (N > ((IBI/5)*3) ){ 
     Pulse = true;
     digitalWrite(pulsePin,HIGH);           
     IBI = sampleCounter - lastBeatTime;
     lastBeatTime = sampleCounter;      

     

    Before we even consider looking for a heartbeat, a minimum amount of time has to pass. This helps avoid high frequency noise. 250 millisecond minimum N places an upper limit of 240 BPM. If you expect to have a higher BPM, adjust this accordingly and see a doctor. When the waveform rises past the thresh value, and 3/5 of the last IBI has passed, we have a pulse! Time to set the Pulse flag and turn on the pulsePin LED. Then we calculate the time since the last beat to get IBI, and update the lastBeatTime.

    The next bit is used to make sure we begin with a realistic BPM value on startup.

        

      if(secondBeat){   secondBeat = false;  for(int i=0; i<=9; i++){       rate[i] = IBI;   }
     }
    if(firstBeat){   firstBeat = false;   secondBeat = true;   sei():   return; 
     }


    The boolean firstBeat is initialized as true and secondBeat is initialized as false on start up, so the very first time we find a beat and get this far in the ISR, we get kicked out by the return; in the firstBeat conditional. That will end up throwing the first IBI reading away, cause it's lousy. The second time through, we can trust (more or less) the IBI, and use it to seed the rate[] array in order to start with a more accurate BPM. The BPM is derived from an average of the last 10 IBI values, hence the need to seed.

    Here is the code to calculate BPM

     

      runningTotal = 0;  for(int i=0; i<=8; i++){    rate[i] = rate[i+1];    runningTotal += rate[i];       }  rate[9] = IBI;  runningTotal += rate[9];  runningTotal /= 10;  BPM = 60000/runningTotal;  QS = true; 
    }                     



    First, we grab a large variable, runningTotal, to collect the IBIs, then the contents of rate[] are shifted over and added to runnungTotal. The oldest IBI (11 beats ago) falls out of position 0, and the fresh IBI gets put into position 9. Then it's a simple process to average the array and calculate BPM. Last thing to do is to set the QS flag (short for Quantified Self, awesome kickstarter supporters!) so the rest of the program knows we have found the beat. That's it for the things to do when we find the beat.

    There's a couple of other loose ends that need tying off before we're done, like finding the not-beat.

     

    if (Signal < thresh && Pulse == true){  digitalWrite(13,LOW);          Pulse = false;  amp = P - T;  thresh = amp/2 + T;             P = thresh;  T = thresh;
    }



    Pulse was declared true during the upward rise in Pulse Sensor signal when we found the beat, above, so when the signal crosses thresh going down, we can figure that the pulse is over. A little housekeeping in clearing pulsePin and the Pulse boolean. Then the amplitude of the wave that just passed is measured, and thresh is updated with the new 50% mark. P and T are reset to the new thresh. The algorithm is now primed and ready to find the next beat.

    There's one more question to ask before the ISR is done. What if there are no beats?

     

    if (N > 2500){     thresh = 512;  P = 512;  T = 512;  firstBeat = true;  secondBeat = false;  lastBeatTime = sampleCounter;  }

     

    If there is no beat event for 2.5 seconds, variables used to find the heartbeat are reinitialized to the start up values. Sort of a soft soft-reset. That's the end of the ISR!

    By using Timer2 interrupt, our beat finding algorithm runs 'in the background' and automatically updates variable values , Here's a list of useful variables, and how often they are updated.

    • Signal: raw pulse sensor signal, read every 2 ms
    • IBI: time between heartbeats in ms, refreshed every time a beat detected
    • BPM: beats per minute, refreshed every time a beat is detected
    • QS: set true every time a beat is detected, must be cleared by user
    • Pulse: set true every time a beat is detected, must be cleared by ISR

     

    There you have the basic beat finding code. Having all the vital variables updated automatically makes it easy do stuff in the loop() function.

      

    void setup() {  pinMode(13,OUTPUT);   pinMode(10,OUTPUT);   Serial.begin(115200);   interruptSetup();       //  analogReference(EXTERNAL); 
     }

     

    Here we go. pulsePin is the analog pin number that Pulse Sensor purple wire is plugged into. You can change it if you need to. blinkPin will blink with the pulse. The fadeRate variable is used to provide an optional fading LED effect with every beat on fadePin (must be a PWM pin, but not 3 or 11). It looks nicer than the blink on pin 13. The other variables should look familiar to you now. They are declared volatile because they get used in the ISR and the other parts of the code. In the setup, pin directions are declared and the interruptSetup routine is run. The last line in setup is used only when you have a different voltage powering the Pulse Sensor than you are using to power the Arduino. Mostly, it should be commented out.

     

    void loop() {  if (QS == true){     fadeVal = 255;       QS = false;   }   ledFadeToBeat();   delay(20);
    }

     

    Here's the loop function. Note the delay at the end. This loop will run every 20mS. Since Signal is updated automatically, you can do whatever you want with it as well, modulate a tone output on a speaker, etc.. Remember that the QS flag gets set when our ISR finds the heart beat, so by checking it we can know when the beat happens. Inside the if statement we set the fadeVal to maximum brightness and reset the QS flag for next time. the last thing to do before the delay is to fade the LED and then we're done with the loop.

     

    void ledFadeToBeat() {
     fadeRate-= 15;
     fadeRate= constrain(fadeRate,0,255);
     analogWrite(fadePin, fadeRate);           
     }


    The ledFadeToBeat function is pretty simple too. It reduces the fadeRate variable by 15 (you can change this as needed), makes sure the fadeRate doesn't roll over into negative numbers,or get higher than 255, then uses analogWrite to set the brightness if the LED on fadePin.


    0 0

    Proto-pic asked people to share their IOT projects and they picked mine as their favourite

     

    https://proto-pic.co.uk/The_Proto-PIC_Blog/iot-twitter-competition-15th-feb-2016-/


    0 0

    Fellow contenders, how far did you get with the Atmel SMART SAMA5D4 Xplained Ultra board?

    What are you going to do with this kit in your project?

    Have you been able to use it for your Enchanted Object?


    0 0

    I've blogged about my first steps with the kit, Review 1: Unboxing and First Steps.

     

    Photo 19-03-15 12 19 44.jpg

     

    Since then, I've been trying to set up a tool chain that can build the SAMA5D4X Explained Software Package from source (yes, it took me 9 days to get to this stage - tough board to get started with).

     

    eclipse.png

     

    I tried several tool chains and approaches. I'm not going to elaborate on the things that I didn't get working.

    Here is what works for me on a Windows 8.1 64 install.

     

    The Source

     

    I downloaded the library and example sources from SAMA5D4 Software Package. There's an archive there with the name SAMA5D4 GNU Software Package 1.2 for Xplained board.

    There are 3 sections in the package:

    • documentation
    • library sources
    • application sources

    The documentation folders describe the libraries and the example applications. There's also an additional text document there that describes how to port the examples to Eclipse.

    examples.png

     

    tip:
    Don't place the sources deep in your directory structure.

    I had to shorten the name of libraries\libboard_sama5d4x-Xplained\include\xdma_hardware_interface.h , and adapt the file libraries\libboard_sama5d4x-Xplained\board.h to reflect that name change.

     

    The Compiler

     

    I've installed GNU Tools for ARM Embedded Processors (version 4.9 2015q1). I used the Windows installer and accepted all defaults.

    I followed the install instructions from GNU ARM Eclipse. The install menu contains good info. I paid proper attention to what options to switch off in the installation programs.

     

    The IDE

    I reuse the Eclipse Luna edition that is running on my PC (Luna Service Release 1 (4.4.1)).

    abouteclipse.png

    The tool chain is available in Eclipse straight away if you follow the instructions from GNU ARM Eclipse.

     

    toolchain.png

     

     

    The Additional Build Tools

     

    It's a good time to test now if the build process works by following the instructions in documentation\MigrationFromCStoEclipse.

    If you don't have a working make installation on your computer, these following steps may be necessary:

    Again following the instructions from GNU ARM Eclipse, you install the  GNU Tools for ARM Embedded Processors.

    If done right the build tool chain is available in Eclipse.

    buildtools.png

     

     

    This would be a good test again to see if you can build a library.

    I couldn't. My builds were still failing after this install. See Who has successfully compiled a project of SAMA5D4 GNU Software Package 1.2 for Xplained board on Windows? for details on what was going wrong.

     

    I had to additionally add this software package to get it working: GnuWin32.

    I picked up this requirement from on Received the Atmel SAMA5D4 Xplained Ultra board! Yay! by  pettitda.

     

    It becomes tricky here. Some of the tools appear in both additional build tools packages. You may have to be creative with the different path settings in Eclipse to make this all work.

     

     

    With this setup, I could successfully build all libraries from source.

    I haven't been able to build one of the examples and load it to the board. That's something for a next post.


    0 0

    Overview

    This particular enchanted object is right out of the storybooks. Deep in the forest is a small cottage owned by a timeless couple, Hans and Matilda who are doomed never to meet. When it is wet he goes outside but when it is dry she must leave the house.

     

    The idea was to take an old fashioned "cat gut" based weather house and use the electronic components to bring it up to date. The key features would be servo driven mechanics, LED showing the temperature and the Arduino Yun for getting the weather from the internet.

     

    Before After
    WeatherHouse.jpg Finished House~2[1].jpg

     

    The project has stayed fairly true to it's original idea, the LED bar graph for the temperature has been swapped with the coloured LED and the need to have a button to check the temperature has been eliminated. The mechanics have been 3D printed and fitted together with magnets under the cottage so that the figures move straight in and out of the house with no obvious form of propulsion.

     

    Infomatic.png

     

    About me

    Before the project I knew a bit about Arduino, nothing of the Linino portion of the Yún and had not touched Linux for years. I also had not coded in Python before or used RGB LEDS and piezo sensors. I'd only just started with 3D printed back in January. I do have some electronics background having done GCSE and AS-Level electronics and then a degree at Imperial college back in early 1990s. I've been in software ever since and just returned to electronics as a hobby in the last couple of years.

     

    Thanks

    Hans and Matilda are just fictional characters so in reality all the work on this project was done by myself.

    IMAG1535[1].jpg

    However, I can't take all the credit.

     

    Thanks to Atmel, Element14 and Infineon for providing the kit for the project.

    A special thanks to Christian DeFeo and team for setting up the challenge.

     

    Thanks to everyone who's provided help and support along the way

    My wife Rebecca for acting as a sounding board and putting up with the late nights coding and noisy printer in the kitchen.

    Alan Barnet for support and ideas

    Support and advice from the Element14 community Jan Cumps, Clem Martins, Frederick Vandenbosch, shabaz, Ambrogio Galbusera and Mark Beckett

    Inderpreet Singh and peteroakes for their support and RGB lighting code

    Charles Gantt for his enthusiastic reports

    Eric Styles for advice on magnets

    AdaFruit for their splendid Powerboost board and DHT22 library.

    Michael Anthony Schwager for the Enable Interrupts Library

    Michael Margolis,Philip van Allen and Korman for the variable speed Servo Library

    jwaldha for the technique on how to turn off the Linino portion of the Arduino Yún

    the members of the Arduino forum for their treasure trove of ideas and information

     

    Posts

    As well as the weekly "story" posts I added a few out of character ones for interest and to include extra technical details.

     

    Enchanted Objects Design Challenge - Disaster strikes the Enchanted Cottage

    A big thanks from Hans, Matilda and myself

    Enchanted Objects Design Challenge - Remodelling the Enchanted Cottage

    Enchanted Objects Design Challenge - Matilda is not happy

    Enchanted Objects Design Challenge - The Woodcutter and the Blacksmith

    Enchanted Cottage CAD models

    Enchanted Objects Design Challenge - Back on the straight and narrow

    Servo and mechanics in action

    Enchanted Objects Design Challenge - Yum Yum Yun at the Enchanted Cottage

    Enchanted Objects Design Challenge - Channels and a special delivery to the Enchanted Cottage

    Enchanted Objects Design Challenge - The snake, the troll and the fighting dwarves

    Setting up a Python Development Environment

    Listening to weather on the radio

    Enchanted Objects Design Challenge - The flaming postman, the blind man and a trip to the market

    Enchanted Objects Design Challenge - The Blue Haired Woman and Off Grid Living

    Enchanted Objects Design Challenge - Hans meets "Injector"

    Enchanted Objects Design Challenge - Farmer Hogg and the Lockity Gowan

    Enchanted Objects Design Challenge - Taming the Python

    Enchanted Objects Design Challenge - The Glowing Golem and shiny battery box

    Enchanted Objects Design Challenge - Sleeping Golem

    Enchanted Objects Design Challenge - The townsfolk get Rickrolled

    Enchanted Objects Design Challenge - This is not the WiFi you are looking for

    Enchanted Objects Design Challenge - An unexpected visitor to the Enchanted Cottage

    Enchanted Objects Design Challenge - Knock Knock

    Enchanted Objects Design Challenge - The Crystal Cave

    Enchanted Objects Design Challenge - Turn on and offable

    Enchanted Objects Design Challenge - Windows 10

    Enchanted Objects Design Challenge - The Lode Stone

    Enchanted Objects Design Challenge - A tale of two bridges

    Yet another way of blinking an LED on the Arduino

    Swapping out the bridge

    A bit of 3D Printing

    Enchanted Objects Design Challenge - Locking the doors

    Enchanted Objects Design Challenge - Tools

    Enchanted Objects Design Challenge - Painting, top panel and new magnet carriers

    Enchanted Objects Design Challenge - System Overview

    Enchanted Objects Design Challenge - Python Start, Python Stop

    Enchanted Objects Design Challenge - Planning and Building

    Enchanted Objects Design Challenge - Testing

    Enchanted Objects Design Challenge - And they all lived happily ever after

     

    General Interest

    These posts were created for general interest and reference but were not specifically to do with the project.

    Superclock

    Useful videos and references

    Securing IOT devices

    Other enchanted objects

    More enchanted objects

    Extreme Enchanting

     

    Technical issues and challenges

    The build for the Enchanted Cottage was not all smooth progress. There were a selection of technical challenges and mistakes along the way.

     

    The servo provided was a continuous rotation servo, to use that would have made the project particularly challenging. The tinkerkit servo was also a bit large for my house so I purchased a smaller positional servo.

    The Arduino Yún provided it's own set of challenges. Firstly was making it connect to the Web API using a HTTPS connection, this required installing the certificates and jumping through some hoops to get the python components needed. Luckily there was more than one Python library to use so I managed to find one that worked and validated the certificates.

    The mechanics to make the figure move took a few attempts, firstly to get the correct motion then to get something that could be reliably 3D printed.

    The wiring took a couple of goes to get right, I had initially put the cables too far into the sockets leaving no room for the pins. I also used solid core for these wires which is all I really had spare. This mean that the wiring loom was quite stiff and difficult to manoeuvre, swapping this with flexible cable would make sense.

    There were some physical issues too, the short cable on the LiPo battery is definitely one to watch for. Generally finding enough space for all of the components so that they did not clash and issues like the height of the components on the Yún and different holes in the proto board meant for a few on the fly changes being needed to the structure. The woodwork would be built differently knowing what I know now. The proto board inevitably ended up a little messy as the layout was revised a few times. Again there was difficulty finding space for the connectors so that they did not clash with the board and mounting struts.

    Managing power became one of the key topics as I wanted to run the house on batteries, I found what I needed online for that and my experiments produced good results.

    The Infineon RGB shield was easy to use and the previous challengers had generated some good documentation and code libraries. I knew I'd be right on the lower current limits of the board but with the right settings and timings the current was set correctly.

    The knock knock circuit was heavily researched before incorporating into the project. The circuit was straight forward to understand and build with just the lack of a pull up resistor on the comparator output causing any delay.

     

    I've learnt a few bits of electronics along the way such as driving MOSFETS and handling the signal from the Piezo transducer and I've learnt lots about the Arduino Yún.

     

    Circuit Diagrams, 3D Models and Code

     

    All of the files for the project can be found on GitHub which I've been using all through the project to manage the project and share files between computers.

     

    https://github.com/Workshopshed/EnchantedObjects

    GitHub.png

     

    Code: https://github.com/Workshopshed/EnchantedObjects/tree/master/Code

     

    The code is a combination of C++ on the Arduino side and Python on the Linino side, there are also some shell scripts to help setting up the system. The decision to use C++ classes to segregate the functionality was not done to create re-usable libraries for others but to make the code clear to read and maintain. The decision to use Python was based on that it was an easy language for beginners and that it was already installed on the Yún.

     

    As mentioned above there are several libraries incorporated into the code

     

    AdaFruit - DHT22 library - https://github.com/adafruit/DHT-sensor-library

    Michael Anthony Schwager - Enable Interrupts Library - https://github.com/GreyGnome/EnableInterrupt

    Michael Margolis,Philip van Allen and Korman - Variable speed Servo Library - https://github.com/netlabtoolkit/VarSpeedServo

    Inderpreet Singh and peteroakes - Infineon RGB lighting Library - https://github.com/inderpreet/infineonrgb_shield

    Eberhard Fahle - configuring the handshaking line for the Arduino Yún

     

    Electronics: https://github.com/Workshopshed/EnchantedObjects/tree/master/Electronics

     

    The original plan was to use Fritizing to document a lot of the circuits. Fritzing provided it's own challenges so a mini tutorial was written on what was learnt. As the project progressed many of the schematics were simply done using Visio as all that was needed was the high level blocks and wires. For the full schematic Eagle was used as it's libraries were more extensive so fewer components needed to be designed.

    Many data sheets and websites were referenced and are too plentiful to mention here but they are mentioned on the specific posts that utilised them as a reference section.

     

    {gallery:width=500,height=500} Circuit Diagrams

    Power Switch

    Power Switch: Switches on an off the peripherals

    Knock Knock

    Knock Knock: Sensor circuit

    DHT22

    DHT22: Temperature and Humidity Sensor

    RGB

    RGB: Infineon RGB Shield and LED

    Full Schematic

    Schematic: Full schematic

     

    Mechanics: https://github.com/Workshopshed/EnchantedObjects/tree/master/Mechanics

     

    The 3D printed parts were all modelled in OpenSCAD so they have a source code as well as the STL files that were generated for printing.

     

    {gallery:width=500,height=500} Printed Parts

    Mechanism

    Mechanism: Parts for the Watts Linkage

    MagnetHousing.png

    Magnet Housing: Holder for the magnets

    FibreHousing.png

    Fibre Housing: Attach fibre optics to the Arduino Yún

    WindowFrame.png

    Window: Replacement window

    Top Panel

    Top Panel: Show fibre status and buttons

    WifiAndPowerButtons.png

    Buttons: A couple of buttons to control the setup

    Spacers

    Spacers: Different heights of spacers for the boards

    Security

    Security has always been in the back of my mind whilst working on this project, the wolf is never far from the door.

    Wolf.png

    The thing that amazed me the most was that there were practically no end to end examples where people had created a secure connection to a HTTPS server. The ones I found had a one liner that mentioned installing certificates but no detail. I suspect this is because the Arduino Yún is targeted and used by hobbyists.

     

    Secure communication could be done using a VPN but as the destination is not under our control, that's not possible, so an alternative way to secure the communication was used.

    Enchanted Objects Design Challenge - Channels and a special delivery to the Enchanted Cottage

     

    The key features of the communication are:

    • Certificates installed from a trusted source
    • Certificate provided by weather server validated to ensure identity of that server
    • Communication from weather server encrypted using TLS as provided by HTTPS end point

    Enchanted Objects Design Challenge - Taming the Python

     

    The cottage has been made to continue working in the case of a network failure of DOS attack

    Enchanted Objects Design Challenge - The townsfolk get Rickrolled

     

    The cottage has been made to continue working in the case of a power failure

    Enchanted Objects Design Challenge - The Blue Haired Woman and Off Grid Living

     

    To lock down the Yún the following principles were applied

    • Users and passwords
    • Handle brute force attacks
    • Remove unused functions
    • Apply principle of least privilege (limited implementation)

    Enchanted Objects Design Challenge - Locking the doors

     

    Instructions for use

    Initial set up

    • The one time set up of the system is the out of the box experience provided by Arduino, you have to configure the WiFi to point to your local network.
    • Unless you live in Chicago,IL you'd also need to set your location in the configuration file.

    User Operation

    • Then all the user has to do to get the weather is wait, the figures will automatically adjust their positions and the light changes colour as new data become available.
    • For impatient users they can simply knock on to roof to trigger a system wakeup and check for weather.
    • Rather than needing to read small digits the user can quickly tell the temperature from the LED colour.

     

    Story

    The story aspect was written each week on the morning commute based on the planned work to be done. As the week progressed this occasionally resorted in a re-writing of the story so that the tale correctly reflected what was actually done, some of the topics were moved to later weeks as needed. Writing in the third person narrative was at times challenging and I decided fairly early on that it would be easier if Matilda did the mechanical aspects and Hans did the coding and electronics. However I did have to re-allocate some tasks between my alter-egos so that it was more evenly shared.

     

    Costs and Cost Saving ideas

    As mentioned in Enchanted Objects Design Challenge - How much!? there are many opportunities to reduce code on this project.

     

    The key points are:

    • Build a single board based on a 3.3v supply, that would reduce a lot of the complexity such as connectors, physical support for the board, power regulators, level shifters etc.
    • Build the house from pre-printed panels that could be laser cut and simply assembled.
    • Simply assembly steps by eliminating some of the screws from the mechanism.

    Working project demo

    A quick demo of the house in action. The demo mostly shows the long boot time of the Linino portion of the Arduino Yún. It typically takes around 60s to boot and depending on the disk state it could take longer. I did some research into how this time can be reduced but did not have chance to implement anything.

    On power up the figures move so that Matilda is just inside and Hans just outside. This would indicate a slight chance of rain.

    The flashing light at the start of the process shows the system waiting for the boot. Once it's booted the light changes to indicate that it's processing the weather and then changes again to a the solid light with a  slight movement of the people to the middle position to show that it's going to be a "changeable day in Chicago" which is where I've configured the system to check for weather.

     

     

    Improvements?

     

    A few enhanced features have been suggested by various engineers, including Christmas lights and posting the status to the internet. Solar panels on the roof were also suggested, some calculations would be needed to determine if that would make a significant difference given the small roof size.

     

    For me the biggest thing that could be improved would be reducing the size of the electronics and hence the size of the back if the cottage. With a custom board or simply smaller modules it should be possible to bring that width down to just a little more than the thickness of the servo.

     

    It would also be good to have the weather information displayed on some kind of screen, I did look into 8x8 LED matrixes but those would consume a lot of power. The obvious low power option would be a electronic paper display as that only uses power when it updates. The Arduino could stream images from the Linino's storage onto the display to show for example a picture of a cloud when it's cloudy.

     

    The software for the system focuses on the functional aspects, moving the servo, getting the weather etc. There is lots that could be done on the user interface such as providing an easy way to set the location and simplifying the UI provided by Arduino.

     

    A couple of things planned for the project were dropped along the way. One idea was to use capacitive switches for the controls, however this was dropped in favour of the knock knock switch and simple top panel buttons. A clear plastic housing for the back of the cottage was planned but got cut at the end due to time constraints. A rather crazy idea of using a model railway smoke generator to provide a smoking chimney (on cold days) was also abandoned.

     

    The Low Battery signal from the charging board is wired to the protoshield but nothing is done with it. That could be wired to one of the inputs and read in the code.

     

    As mentioned above improving the boot speed would be a significant improvement to the system.

     

    The Infineon shield was investigated to see if the Flashing and colour cycling functions could be offloaded to it's MCU. This required a special cable and software so was not attempted.

     

    Conclusions

     

    The design challenge has definitely lived up to it's name, it was very challenging. I've learnt a lot about embedded systems during this project, from interrupts and low power options on the Atmel microcontroller to MOSFETs and power control thanks to Infineon. I've also learnt a lot about 3D printing and designing models to make them print reliably. One of my key lesson's learnt is keeping an eye on the physical space required for connectors so that they don't clash with other components.

     

    I'm happy will the end result and enjoyed making the Enchanted Cottage, and I'd like to thank Element14 for giving me the opportunity to participate.

     

    Finale

    And so our enchanting tale comes to its end. If you go down to the forest, there in a little clearing you will find an Enchanted Cottage. If you knock on the door then a delightful couple will pop out to tell you the weather. But be careful not to stay too long as you might bump into the wolf.


    0 0

    Putting on the roof

    One of the big physical jobs left for Matilda and Hans was putting the roof back on. They realised that they could not do the job by themselves so they wandered down the Adam and Eve Inn to look for volunteers. It turned out that everyone wanted to help so the barkeeper closed the pub and he and the snake came along too.

     

    The helpers were of various use, the Dwarves spent most of the time arguing and Farmer Hogg kept saying things like "I'd not have started from here". However the barkeeper and snake were very useful. Whenever the barkeeper wanted the snake to do something he'd command "Python Start" and whenever a job was done he'd say "Python Stop". The roof was quickly done and Hans and Matilda posed for a photo.

    CottageRoofIsOn.jpg

    They thanked everyone who in turn decided to go back to the inn to celebrate. Hans and Matilda had plenty to do so celebrating would have to wait.

     

    Hans had forgotten

    Hans realised he'd forgotten a critical step in the process. How to start and stop his Python script. He looked back over his notes and realised that he could use bits from the Handshaking code and from the Fail2Ban setup.

     

    Init script

    An initialisation script was created.

     

    #!/bin/sh /etc/rc.common
    # Initialise Python Listening on Serial Port
    
    workdir=/mnt/sda1/Python
    START=8
    STOP=14
    
    start() {
        cd $workdir    /usr/bin/python /mnt/sda1/Python/GetWeather.py &    echo "Weather Server started."
    }
    
    stop() {
        pid=`ps -ef | grep '[p]ython /mnt/sda1/Python/GetWeather.py' | awk '{ print $1 }'`    echo $pid    kill $pid    sleep 2    echo "Weather Server killed."
    }

     

    Changes to Python Code

    The python code needed minor changes so that it would respond to the shutdown request

    # Handle exit and kill from OS
    def set_exit_handler(func):    signal.signal(signal.SIGTERM, func)
    def on_exit(sig, func=None):    print "exit handler triggered"    sys.exit(1)
    
    # Run program
    if __name__ == '__main__':
        set_exit_handler(on_exit)    sys.exit(main())

     

    Testing

    The init script was tested with

    /etc/init.d/weather-daemon start

    and

    ps

    to check it was running

     

    Then shutdown using

    /etc/init.d/weather-daemon stop

     

    Finally, it was installed using

    /etc/init.d/weather-daemon enable

     

    Next: Enchanted Objects Design Challenge - Planning and Building

     

    References

    http://www.pietervanos.net/knowledge/start-python-script-from-init-d/

    https://wolfpaulus.com/jounal/software/pythonlauncher/

    http://wiki.openwrt.org/doc/techref/initscripts


    0 0

    Putting the Arduino Yun to sleep

     

    Hans and Matilda thought back to the Golem and how he slept between each activity, that could also work for their Yún.

      

    The key things were:

     

    • Turning the Linino power off
    • Turning the Linino power back on
    • Low power on the ATMega side
    • Waking back up.
    • Timers and servo.

     

    Poweroff is not enough

     

    The Linino O/S uses BusyBox for a lot of the tasks of it's shell. One of these is the "poweroff" command. http://www.busybox.net/BusyBox.html#poweroff

    Running this with the multimeter in the loop to check the current we see that running poweroff makes no difference to the current draw, the Yún still takes 200mA.

     

    /*  Running shell commands using Process class.  based on http://arduino.cc/en/Tutorial/ShellCommands
    */
    
    #include <Process.h>
    
    int ledPin = 13;                 // LED connected to pin 13
    
    void setup() {
      pinMode(ledPin, OUTPUT);      // sets the digital pin as output  pinMode(A5, OUTPUT);  digitalWrite(A5, HIGH);    // sets the Linino on  Bridge.begin();    // Initialize the Bridge  Process p;  p.runShellCommandAsynchronously("poweroff"); // Run in background so process returns  digitalWrite(ledPin, HIGH);   // sets the LED on
    }
    
    void loop() {
    }
    
    
    
    
    
    
    
    
    
    

     

    Test points and wired control

     

    A discussion on the Arduino forum lead to a part of the schematic that controlled the 3.3v regulator. The RT8010 regulator has a two test points TP51 and TP52 (bridged by a 0ohm resistor). The author kindly points out where those test points are located as there's no silk screen indicating which are which. As per the example the corner I/O pin was used, A5.

    YunPower-sch.png

    YunResetWire.jpg

    Retrospectively they remembered that the A5 pin is shared with the I2C bus on the Uno, luckily this is not the case for the Yún.

    The software control for this is pretty straight forward too, it can be controlled as a digital pin. You'd want to wait until any writing to disk was complete before powering off so that will need to be factored into the software. Using that control the consumption drops to 30mA.

     

    int ledPin = 13;                 // LED connected to pin 13
    
    void setup()
    {
      pinMode(ledPin, OUTPUT);      // sets the digital pin as output  pinMode(A5, OUTPUT);
    }
    
    void loop()
    {
      digitalWrite(A5, LOW);   // sets the Linino off  digitalWrite(ledPin, HIGH);   // sets the LED on  delay(8000);                  // waits for a 8 seconds  digitalWrite(A5, HIGH);    // sets the Linino on  digitalWrite(ledPin, LOW);    // sets the LED off  delay(8000);                  // waits for 8 seconds
    }

     

     

    You are getting sleepy, very sleepy

    But it's possible to even better than that. The commands to put the Arduino to sleep are pretty straightforward even so Hans took the approach of using a library. RocketScream had produced one that made life pretty simple so the code example was extended to incorporate that.

     

    //Library from http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/#sthash.PhJ0PF9f.dpuf
    #include "LowPower.h"
    
    int ledPin = 13;                 // LED connected to pin 13
    
    void setup()
    {
      pinMode(ledPin, OUTPUT);      // sets the digital pin as output  pinMode(A5, OUTPUT);  delay(25000);                 // Nice long delay to help with reprogramming   
    }
    
    void loop()
    {
      digitalWrite(A5, HIGH);    // sets the Linino on  digitalWrite(ledPin, LOW);    // sets the LED off  delay(8000);  digitalWrite(A5, LOW);   // sets the Linino off  digitalWrite(ledPin, HIGH);   // sets the LED on  delay(8000);                  // waits for a second  digitalWrite(ledPin, LOW);   // both lights off, power and P13  //Sleep  LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
    }

     

    The multimeter uses a different socket for currents over 200mA so a cable swap and photo was taken to get a more accurate reading of the lowest current. For the powerDown the Watchdog timer is used and hence Timer0 which is used for Millis() is turned off and Timer1, used by the Servo() library is also off. This will affect the flashing/colour cycling of the LED and servo so that needs to be factored in the the code.

     

    This brings the power down to 2.5mA, approx 80th of the original power required or 33 days of runtime from the battery. Obviously the bursts of activity will bring this down but a week's run time seems achievable.

     

     

    IMAG1385[1].jpg

    It may also be possible to reduce even more power by permanently turning off those peripherals such as the ADC which are not used although because of the devices used in the project most of the peripherals are used and there may be more effective ways to save power such as minimising the time that the Linino part is powered up.

     

    Next: Enchanted Objects Design Challenge - The townsfolk get Rickrolled

     

    Reference

     

    BusyBox - The Swiss Army Knife of Embedded Linux

    Arduino Yun - put linux environment to sleep or halt

    Arduino, Zigbee and Embedded Development: Sleeping Arduino - Part 1

    http://www.rocketscream.com/blog/2011/07/04/lightweight-low-power-arduino-library/

    Advanced Arduino: direct use of ATmega counter/timers

    <avr/power.h>: Power Reduction Management

    Sparkfun Adventures in Low Power Land


    0 0

    When I was younger my Dad used to listen to the shipping forecast on the radio so he could plan his fishing and sailing trips. Given the limited vocabulary it should be possible to use a speech to text processor to convert this to a digital form. But there's also some other systems out there, that should be a bit easier.

     

    If you are in the USA there is the National Weather Radio Specific Area Message Encoding.

    NWR SAME provides in a digital form at specific, timely information on the nature and location of a threat to the safety of those most immediately at risk from severe weather or other hazards. Its greatest value is to significantly improve the automatic selection and distribution of messages about events that threaten people and/or property.

     

    NOAA Weather Radio - Using NWR SAME

     

    In Europe there seems to be a similar setup using the DCF77 Time Radio, the "reserved" bits in the signal below are reported to incorporate weather information

     

    dcf77coding.png

     

    DCF77 - Wikipedia, the free encyclopedia

    Meteotime.com - Home

     

    I've not seen anyone who's managed to read the weather off either of these systems so I'll unlikely be adding radio as a backup system if my internet goes down but it's interesting to know that these services are there.

     

    Hey I'm British, I'm allowed to be obsessed by the weather!


older | 1 | (Page 2)