Maria Richter

Not recently active

Death Stranding PS4Pro Screenshoot Gallery , Review Gameplay

SPOILERS AHEAD , PLEASE BE WARNED IF YOU DIDN'T FINISH THE GAME YET!!!

Death Stranding Gameplay, Complete Playtrough 50Hours, LVL 205

https://www.youtube.com/watch?v=XXJmOHF6WZo

 

https://www.youtube.com/watch?v=djErTNFQDHQ

 

Verlosung für PS4 , 1x Death Stranding Game:

 

//www.instagram.com/embed.js


Die Black Friday®-Angebote – Die besten Spiele unter €10

Der Black Friday kommt ursprünglich aus Amerika und wird nach Thanksgiving praktiziert. An diesem Tag locken verschiedene Händler mit XXL-Schnäppchen und viele Menschen nutzen die Gelegenheit, günstig für Weihnachten zu shoppen. Auch nach Deutschland schwappt dieser Trend so langsam rüber und ihr bekommt bei uns im PlayStation Store die Möglichkeit, tolle Games für den kleinen Geldbeutel zu ergattern.

Ob für euch selbst, Freunde oder Familie: Mit diesem Hammer-Games zum Black Friday Sale unter 10 Euro könnt ihr wirklich nichts falsch machen – da sind sich unter Anderem Peter Parker und Gerald von Riva sicher.

GTA V Premium Online Edition

Heute die Million aus der Bank rauben und mit dem gestohlenen Porsche fliehen, morgen das ergaunerte Geld im Casino verspielen: Ein (leicht illegaler) Traum, der Wirklichkeit werden kann! Zumindest, wenn ihr eine PlayStation 4 habt.

Ob Gangster-Story oder der beliebte Online-Modus: In GTA V dürft ihr sein, wer ihr wollt. Unser Tipp für einen erfüllten Tag: Nach dem aufstehen Tennis spielen und danach mit der Pistole auf einen Angestellten in der Boutique zeigen – mit nacktem Finger ist das schließlich unhöflich! Neu und äußerst preiswert eingekleidet geht es dann ins Casino und in den VIP-Bereich, um mit einem Cocktail den Abend am Pool ausklingen zu lassen.

SMITE Ultimate God Bundle

Die Third-Person-Perspektive macht SMITE zu einem echten Hingucker unter den MOBAs. Als eine Gottheit erlernt ihr im Spiel mit der Zeit immer mächtigere Fähigkeiten, um den Gegnern die Stirn zu bieten. Passend dazu ist das Ultimate God Bundle jetzt im Sale und erleichtert euch mit vielen Extras den Einstieg.

Zahlreiche Spielmodi und die Möglichkeit, gegen echte Spieler oder die KI anzutreten, machen SMITE bei jung und alt beliebt. Und wenn ihr euch ein bisschen in der Mythologie auskennt, erkennt ihr vielleicht sogar den einen oder anderen Spruch der Charaktere wieder.

Rocket League

Fußball und Autos gehen irgendwie immer. Mit diesem Gedanken im Hinterkopf haben sich die Entwickler von Rocket League ein Spiel ausgedacht, dass die besten Seiten beider Leidenschaften vereint.

In coolen Flitzern stoßt ihr in einer Arena den riesigen Fußball zu euren Mitspielern und hofft, dass sie ihm gegnerischen Bereich ein Tor erzielen. Anstatt einem Gegner auf dem Bolzplatz das Bein zu stellen, crasht ihr einfach mit eurer Motorhaube in das Heck des anderen. Wunderbar schnell, laut und effektiv.

Marvel’s Spider-Man: Die Stadt die niemals schläft

Spider-Man ist die freundliche Spinne aus der Nachbarschaft, die versucht, ganz New York zu retten. Im aktuellsten PS4-Ableger Marvel’s Spider-Man erstrahlt die Welt in beeindruckendem Glanz. Ob ihr euch zwischen den Häusern hindurch swingt oder zu Fuß lauft und mit den Passanten quatscht: Werdet zu Spider-Man und tut Gutes, wo immer ihr könnt.

Mit dieser Erweiterung schwingt ihr euch in drei weitere Kapitel mit Spider-Man in Marvel’s New York. Dabei erwartet euch viel Neues: bisher ungezeigte Gegnerfraktionen aus dem Spidy-Universum, zahlreiche Herausforderungen und, für den modernen Spinnenmann von heute, neue Anzüge.

Witcher 3 Wild Hunt Expension Pass

Mit dem Expension Pass zu Witcher 3: Wild Hunt gehen eure Abenteuer als Hexer weiter. Er enthält die beiden DLC’s Hearts of Stone und Blood and Wine. Grob überschlagen sind das 30 weitere Stunden mit Geralt von Riva und seinen Damen. Wer kann da schon nein sagen?

Erledigt Quests im Niemandsland und Oxenfurt, um für die Abenteuer im neuen Spielgebiet Toussaint bereit zu sein. Ihr werdet all’ eure Magie benötigen, um hier zu bestehen.

Noch mehr Titel unter 10€

Das waren allerdings nur unsere fünf Highlights, denn im PlayStation Store warten noch viel mehr Angebote auf euch! Hier ein kleiner Auszug:

.cc_sst,.cc_sst-header,.cc_sst-content,.cc_sst-footer { position: relative; z-index: 0; overflow: hidden; font-size: 16px; line-height: normal; margin: 0; padding: 0; letter-spacing: -.2px; }.cc_sst:before,.cc_sst-header:before,.cc_sst-content:before,.cc_sst-footer:before,.cc_sst-header h3:before,.cc_sst-content-inside:before,.cc_sst-content-box-footer:before,.cc_sst:after,.cc_sst-header:after,.cc_sst-content:after,.cc_sst-footer:after,.cc_sst-header h3:after,.cc_sst-content-inside:after,.cc_sst-content-box-footer:after { display: table; content: ''; }.cc_sst:after,.cc_sst-header:after,.cc_sst-content:after,.cc_sst-footer:after,.cc_sst-header h3:after,.cc_sst-content-inside:after,.cc_sst-content-box-footer:after { clear: both; }.cc_sst { margin: 15px auto; min-width: 288px; max-width: 680px; }.cc_sst p { margin:0; padding:0; line-height:none; }.cc_sst p:empty { display: none; }.cc_sst-header { background-color: #0072ce; color: #fff; margin-bottom: 15px; padding: 6px 20px 6px 20px; min-height: 49px; }.cc_sst-header h3 { color: #fff; font-weight: 300; margin:0; padding: 0; border: 0; font-size: 18px; line-height: normal; clear: none; display: block; }.cc_sst-header h3 img { display: block; width: 161px; height: 34px; margin: 0 15px 3px 0; padding: 0; border: 0; float: left; }.cc_sst-header h3 span { display: block; padding: 7px 0; margin: 0; float: right; }.cc_sst-header h3 span:empty {display:none;}.cc_sst-footer { background-color: #0072ce; color: #fff; min-height: 49px; margin-top: 15px; font-weight: 300; padding:6px 232px 6px 20px; border: 0; font-size: 18px; line-height: normal; }.cc_sst-footer > span { display:block; padding: 7px 0; margin: 0; }.cc_sst-footer a { display: block; width: 217px; height: auto; line-height: 1.375em; font-size: 18px; position: absolute; top:0; right: 0; bottom: 0; z-index: 0; -webkit-backface-visibility: hidden; }.cc_sst-footer a:before { display: inline-block; content: ''; height: 100%; width: 1px; position: relative; overflow: hidden; margin: 0 0 0 -1px; padding:0; vertical-align: middle; }.cc_sst-footer a span { display: inline-block; vertical-align: middle; overflow: hidden; }.cc_sst-content-inside { position: relative; margin: 0 -7.5px; padding:7.5px 0; overflow:hidden; }.cc_sst-content-box { display:block; padding:7.5px; width: 33.33333333333333%; float: left; }.cc_sst-content-box-inside { display:block; position: relative; line-height: normal; cursor: pointer; background-color: #eaeaea; }.cc_sst-content-box-thumb { position: relative; display: block; width: 100%; padding: 100% 0 0 0; margin: 0; overflow: hidden; background-color: #ddd; }.cc_sst-content-box-thumb img { display:block; width: 100%; height: 100%; margin: 0; padding: 0; border: 0; position: absolute; top: 0; left: 0; z-index: 0; -webkit-backface-visibility: hidden; transition: transform 1s }.cc_sst-content-box-title { display: block; color: #006cff; font-size: 16px; line-height: 1.26em; font-weight: 400; padding:10px 16px 10px 16px; height: 86px; }.cc_sst-content-box-title span { height:60px; width: 100%; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; -o-text-overflow: ellipsis; text-overflow: ellipsis; }.cc_sst-content-box-footer { display: block; margin: 0; padding: 9px 14px; background-color: #ddd; color: #363636; }.cc_sst-content-box-price { display: block; float: left; font-weight: 700; font-size: 16px; margin: 0; padding: 0; line-height: 22px; }.cc_sst-content-box-price-old { display: block; float: left; font-weight: 400; font-size: 12px; margin: 0 0 0 6px; padding: 0; line-height: 22px; }.cc_sst-content-box-deal-end { display: block; float: right; font-weight: 400; font-size: 12px; margin: 0 0 0 6px; padding: 0; line-height: 22px; }.cc_sst-content-box-inside:hover,.cc_sst-content-box-inside:focus { text-decoration:none; }.cc_sst-content-box-inside:not(.unused):hover,.cc_sst-content-box-inside:not(.unused):focus { background-color: #0072ce; }.cc_sst-content-box-inside:not(.unused):hover .cc_sst-content-box-title,.cc_sst-content-box-inside:not(.unused):focus .cc_sst-content-box-title { color: #fff; }.cc_sst-content-box-inside:not(.unused):hover .cc_sst-content-box-footer,.cc_sst-content-box-inside:not(.unused):focus .cc_sst-content-box-footer { background-color: rgba(255, 255, 255, .1); color: #fff; }.cc_sst-content-box-inside:not(.unused):hover .cc_sst-content-box-thumb img,.cc_sst-content-box-inside:not(.unused):focus .cc_sst-content-box-thumb img { transform:scale(1.1); }.cc_sst-content-box-inside.unused { background-color: #1b1f27; }.cc_sst-content-box-inside.unused .cc_sst-content-box-footer { background-color: #262b34; color: #bbbdbe; }@media (max-width: 575px) {.cc_sst-header { text-align: center; }.cc_sst-header h3 { text-align: center; }.cc_sst-header h3 img { float: none; margin:3px auto; }.cc_sst-header h3 span { float: none; margin-left: auto; margin-right: auto; }.cc_sst-content-box { width: 50%; }.cc_sst-content-box-inside.unused .cc_sst-content-box-footer { white-space: nowrap; }.cc_sst-footer { padding-right: 20px; text-align:center; }.cc_sst-footer a { height: 40px; line-height: 40px; position: static; min-width: 80px; margin:10px auto 7px auto; }.cc_sst-footer a:before { display: none; } .cc_sst-footer a span { display: block; } }@media (max-width: 374px) { .cc_sst-content-box-price { font-size: 14px; }}@media (max-width: 359px) {.cc_sst-content-box-title { font-size: 14px; padding:10px; height: 78px; }.cc_sst-content-box-title span { height: 52px; }.cc_sst-content-box-footer { padding: 8px; } .cc_sst-content-box-price { font-size: 12px; }.cc_sst-content-box-deal-end { margin-left: 4px; }}

Website: LINK


How to Unlock Everything in Shovel Knight Showdown

Hey there, Overachievers! In this article, we wanted to discuss everything about the unlockable content in Shovel Knight Showdown. You know what we mean by “Unlocks”? We mean when you’re playing a game and new features or elements are added, expanding your game experience. We love unlockable content, variety, and secrets in general, so we were excited to develop unlocks into an integral part of the experience for Shovel Knight Showdown.

Unlock Outset

From the very beginning of development, we hoped that Shovel Knight Showdown would be chock full of content that we’d want players to unlock. There would be all sorts of characters, costumes, levels, modes, and who knows what else! But how would it all work? As we so often tend to do, we thought back to our favorite experiences with a feature, and tried to analyse why we thought it was fun. For unlocks, it went something like:

  • Surprise – The surprise of unlocking something cool is fun (if you don’t know what you’re getting)!
  • Accomplishment – When presented well, unlocks provide a great sense of accomplishment and progression. Looking through your trophy checklist, or having a particularly rare unlock that can be showed off.
  • Ramping – Having everything unlocked from the start can be overwhelming! If everything is all accessible, it doesn’t give players a chance to learn each new element in the game at an appropriate pace. Unlocks also give us a chance to teach new elements in a regimented way; for example, unlocking stages in order of complexity. By the end, you’re an expert!
  • Motivation – Unlocks keep things fresh and provide motivation to keep on playing. “If I can just pull off this maneuver, I’ll get this new stage I really want!”.

While we have fond memories of unlocking content in our favorite games, it’s not always been a universally loved mechanic. Lately, especially as many popular game series have become bigger, more varied, and more expansive, unlock systems have come under the microscope and aren’t always greeted in such a positive light. Let’s dig into some of the common complaints from the perspective of players:

  • Too Much! – Now that there’s so much content, unlocking a giant laundry list of stuff could be a ton of work! It isn’t fun!
  • Tedium – It takes so long to unlock everything!
  • Mode Mismatches – I can’t unlock stuff by playing what I enjoy! All I want to do is play multiplayer… I don’t want to play single player to unlock anything.
  • Save Data Woes – Not having all the content unlocked from the start stinks for multiplayer. With no Save Data, I just want to play everything with my friends! Now my party is ruined!
  • Painful for Experts – For players that already know everything about all the content and how it works – why do they have to wait to unlock it all?

With all these potential pitfalls, we knew we had to take great care in designing our unlock system. With Shovel Knight: Showdown’s scope nailed down enough to begin creating an unlock system, we set to work.

Our Approach

With our positives and negatives in mind, we formulated a set of core questions:

  • What content could be presented as unlockable content, and what couldn’t?
  • How do we award unlockable content? Under what conditions do elements get unlocked?
  • What order will everything be unlocked in?
  • How will unlockable content be presented to the player? And what actually happens when an unlock gets unlocked?

Unlockable Content is a minefield, hee hee hee!

So let’s answer those questions!

What of Our Content Could Be Unlockable?

There are so many elements to Shovel Knight Showdown, but we didn’t want locked content to pare down the initial experience. We wanted players enjoying all of the game’s features right away, meaning nothing should be less fun because a feature wasn’t yet unlocked. It was important that Showdown’s core features like Game Modes, Items, and Options were all available from the start. This process of elimination left only a few categories for what could be awarded to players as an unlock: Characters, Stages, Palettes, and Costumes. Once we had these categories, choosing the initial contents proved to be quite a challenge! After all, the player’s first impression of the game hinges on what cool things they see as soon as they begin!

Characters

Character unlocks are tricky because some players wouldn’t be able to choose their favorite characters from the get-go. We decided that the novelty of trying each character would offset the wait to unlock any potential favorites, and we wouldn’t make players wait too long.

The initial Showdown roster!

We did our best to make sure the initial roster comprised a fun, familiar, and diverse group of characters. The main characters of the single player games – Shovel Knight, Plague Knight, Specter Knight, and King Knight – are all unlocked from the outset. We included some characters that would be exciting because it was their debut as playables – Shield Knight and Black Knight. Finally, we chose some characters to give players a taste of what would be coming next, while providing drastically different play styles- Propeller Knight and Polar Knight. Propeller Knight has nuanced wind attacks and unique air mobility, while Polar Knight’s huge figure shows very clearly the differences between character sizes.

Stages

Shovel Knight Showdown features a unique combination of platforming and battling. This made choosing the initial stage set interesting because players would have no idea of what to expect!

The initial Stage roster. It looks so teeny compared to when it’s all unlocked!

We had a lot of flexibility to show off whatever stages we wanted here, but we felt it was important to pick stages that best showed off our core concepts, set pieces, and variety. This would leave room for later stage concepts that require more complex understanding of the characters’ mobility.

Palettes and Costumes

Palettes are both effective and simple to implement, so we crafted 8 palettes per character. Additionally, some characters have ‘Costumes’, meaning totally different animation sets. Character Palettes and Costumes don’t affect gameplay at all, so they felt like natural unlock fodder. We ensured that players would have at least one costume, and each character had four alternate palettes, available from the start. Palettes could be unlocked in sets of 4 since we had so many.

Everyone starts with 5 palettes!

It can be disappointing to start multiplayer games if you don’t have the option to immediately customize your character to some extent, so hopefully it’s a good balance. By the end of the game, you’ll have a veritable kaleidoscope of character palettes.

How will Players Earn Unlocks?

We love accomplishing little challenges to earn Trophies and Feats- if they’re done well. It’s a blast to overcome a tough challenge and be rewarded! Developing these unlock requirements was difficult because there are so many pitfalls. First, it can be boring when unlocks are too easy or require tedious grinding. Second, if the unlock method is unclear, it can feel like your unlock progress is random. We’re asking players to do this stuff, so it had better be good!

Because of the similarities unlocks had with our currently-existing Feats (if you’re unfamiliar, Feats are like Shovel Knight’s in-game achievement system), we thought about unlocks the same way we did Feats:

Unlocks were chosen to be thematically appropriate, balanced, and fun.

First, we divvied up our unlock content and assigned goals to it. We strove to pick unique requirements for each unlock that felt fun and thematic! Unlocking a character’s new palette set would require some cool display of that character’s skill. A major unlock like a new character might require you to encounter them as a rival in another character’s story. For all the unlocks, we tried to make sure the unlock method was somewhat themed to the content received, so it didn’t feel random. For example, ‘KO’ing 100 total opponents would unlock the Lich Yard stage- which makes sense because the Lich Yard is a creepy graveyard!

To combat any confusion toward unlock methods, we laid out a menu where you could clearly see what would be unlocked, and how. While it was cool that the unlockables were clear… at the same time, the surprise of unlocking something was gone! So we also built in a system where some of the unlocks and their requirements would begin as “????”, and would be listed more clearly as the player unlocked related elements:

As the player does more feats, more unlock requirements naturally appear.

For example, the unlock method for a character’s palettes will only be displayed once that character is unlocked. We could hide any piece of information: what category an unlock is (Character, Stage, Palette, Costume), what is actually unlocked (Shovel Knight, Shovel Knight’s palette, etc), or the requirements for an unlock. A delicate balance was struck between spoilers and clarity. You might know that completing Plague Knight’s campaign unlocks a character, but not which character!

But what of players that didn’t care to unlock characters by doing these Feats? We wrestled with challenge of competing play styles. Showdown was developed foremost as a multiplayer battling game, but some players would play the single player only, or vice versa! How would we ensure players weren’t locked into a single unlock method or forced to endure a mode they didn’t want to play?

Players can press the “switch” button to see how unlocks are obtained over time / through Feats.

As the above image demonstrates, our answer to this problem was to create an alternate method for unlocking each piece of content. Every unlock can be attained through multiplayer by playing for enough time, or by accomplishing a feat. Balancing both of these methods was a challenge!

Importantly, if an unlock is achieved through the multiplayer time method, a player can still accomplish the feat- they just won’t unlock anything else. This should preserve the fun of accomplishing the challenges.

How Do We Determine the Order of Unlocks?

Ordering the unlocks was tricky, as there were several competing desires. We determined that unlocked content should be ordered so that:

  • The player should get new and compelling content regularly.
  • Content should grow in complexity over time i.e. easy-to-use characters should be unlocked earlier.
  • Each character’s unlock appearance should make sense in the context i.e. characters shouldn’t be unlocked before they appear in Story Mode.
  • Content should all be thematically appropriate, too!

This list had to be balanced for two unlock methods- timed and Feat-based! Ack!

We began with Story Mode unlocks because those seemed most difficult to tackle. We wanted to give out really good unlocks for beating Story Mode, and they had to be appropriate! Each Story in Story Mode features a different rival or impact character- and it seemed natural that this character would be a perfect unlock reward. But we didn’t want the unlock order to be too rigid, and some of the content was way out of order in terms of complexity.

To combat this, we set up Story Mode unlocks in several sets of ‘tiers’. If you complete Story Mode with any of the initially unlocked characters, you’ll unlock characters or elements from the mid tier. Completing Story Mode with a character in the mid tier would unlock matching content in the final tier, where the most complex stuff was located. In this way, content could be unlocked in a balanced way depending on how you were playing.

Every character’s Story Mode features a unique rival or friend.

Sorting content in Story Mode gave us a rough outline of the unlock order, but the timed multiplayer unlocks solidified it. We wanted to make sure that timed multiplayer unlocks felt themed, but multiplayer battles were wildly contextless free-for-alls! How would we make unlocks feel thematic? We decided that all the timing unlocks would be done in pairings. For example, unlocking Mona might also unlock Mona’s stage. That would make it feel thematic! To perfect the formula, we tweaked the timing between the timed unlocks to make sure that players got them at a steady pace.

By following all our guidelines for both single player and experiences, we eventually landed on a satisfying unlock order. Hopefully, Shovel Knight Showdown unfurls in complexity in a very natural way!

How is an Unlock Presented to the player?

When you unlock something, it should look cool! We prioritized giving players information quickly and consistently, with some nice fanfare to make the reward even sweeter. Like with all our menus, we ensured that you could prompt them briskly so these messages felt like a reward, rather than a chore:

To keep things snappy, players are only alerted to an unlock in two spots: after you complete or lose in Story Mode, or between multiplayer matches. This made unlock messages feel like a surprise that could happen any time the screen fades to black! We found this surprise factor to be super fun, as everyone would rush to try out whatever we’d unlocked.

Our standard unlock message got a few upgrades for Showdown. Look at that little Shovel Knight march!

For the in-game message display of Feats, we already had a good base from the other games in Shovel Knight: Treasure Trove. When achieved, the Feat would simply appear as a prompt along the top edge of the screen. We mostly stuck with that design with only minor additions. First, the display would keep your unlock a secret until after the match. Second, if a specific player accomplished the Feat, a small sprite the character appears next to the unlock text, to let you know which player did the deed! Gotta give credit where credit is due!

When You Can’t Win, Cheat!

We poured a lot of time and attention into making the Unlocks system something players would love, and we hope that most players use it as they play and enjoy the game. That being said, there are times when an unlock system could be a big obstacle to fun:

  • What if I’m setting up a tournament and I need everyone unlocked now?
  • What if I just got the game on a new system, and I don’t wanna grind it all out again?
  • What if I played through everything on a friends’ machine, and now I bought a copy of my own?
  • What if I played through everything on my PS4 and now want to play the game on another platform?
  • What if I just don’t like waiting?

Nothing could be a satisfactory answer to all these questions. So we thought it’d be best to just hide some cheats in the game that take all the work out of it! Here they are:

Unlock Everything (Temporary)

Unlock everything temporarily with this cheat! Reset the game to return things to how they were before.

This cheat will unlock all the characters, stages, palettes, and costumes temporarily. That means, the game will no longer save your progress from here on out, until you reset.

We imagined this cheat would be used by someone who might want to alter their game progress, but still see all the content available to play under certain scenarios. For example, “my friend might come over to play and we both have played through everything together in the past so want to do so again, but I don’t want to screw up my current save file where I’m trying to play through it legit!”

Unlock Everything (Permanent)

Unlock everything permanently with this cheat!

This will unlock all the characters, stages, palettes, and costumes permanently. That means, your save file will be permanently altered to have everything in the game unlocked. Done and done… but maybe less fun?

Article Unlocked!

Over the course of development, we tried our best to make Shovel Knight Showdown’s unlockable content system work in an enjoyable way for players of all kinds! There’s a ton of fun stuff to find, challenges to overcome, and surprises to discover. Please have a great time experiencing the constant feed of new and exciting content! But if don’t… give those cheat codes a try!

Website: LINK


Death Stranding für PlayStation 4 Verlosung

Tomorrow Is In Your Hands

After the collapse of civilization, Sam Bridges must journey across a ravaged landscape crawling with otherworldly threats to save mankind from the brink of extinction. From legendary game creator Hideo Kojima comes an all-new, genre-defying experience for the PlayStation®4 system.

Starring Norman Reedus, Mads Mikkelsen, Léa Seydoux, and Lindsay Wagner.

PSN Store Link: https://www.playstation.com/en-us/games/death-stranding-ps4/

https://www.youtube.com/watch?v=piIgkJWDuQg

https://www.youtube.com/watch?v=F0acfsoxhWs

Zur Verlosung geht es hier: https://www.blogdot.tv/death-stranding-fur-playstation-4-verlosung


Get started with machine learning on Arduino

This post was originally published by Sandeep Mistry and Dominic Pajak on the TensorFlow blog.

Arduino is on a mission to make machine learning simple enough for anyone to use. We’ve been working with the TensorFlow Lite team over the past few months and are excited to show you what we’ve been up to together: bringing TensorFlow Lite Micro to the Arduino Nano 33 BLE Sense. In this article, we’ll show you how to install and run several new TensorFlow Lite Micro examples that are now available in the Arduino Library Manager.

The first tutorial below shows you how to install a neural network on your Arduino board to recognize simple voice commands.

Example 1: Running the pre-trained micro_speech inference example.

Next, we’ll introduce a more in-depth tutorial you can use to train your own custom gesture recognition model for Arduino using TensorFlow in Colab. This material is based on a practical workshop held by Sandeep Mistry and Don Coleman, an updated version of which is now online.

If you have previous experience with Arduino, you may be able to get these tutorials working within a couple of hours. If you’re entirely new to microcontrollers, it may take a bit longer.

Example 2: Training your own gesture classification model.

We’re excited to share some of the first examples and tutorials, and to see what you will build from here. Let’s get started!

Note: The following projects are based on TensorFlow Lite for Microcontrollers which is currently experimental within the TensorFlow repo. This is still a new and emerging field!

Microcontrollers and TinyML

Microcontrollers, such as those used on Arduino boards, are low-cost, single chip, self-contained computer systems. They’re the invisible computers embedded inside billions of everyday gadgets like wearables, drones, 3D printers, toys, rice cookers, smart plugs, e-scooters, washing machines. The trend to connect these devices is part of what is referred to as the Internet of Things.

Arduino is an open-source platform and community focused on making microcontroller application development accessible to everyone. The board we’re using here has an Arm Cortex-M4 microcontroller running at 64 MHz with 1MB Flash memory and 256 KB of RAM. This is tiny in comparison to cloud, PC, or mobile but reasonable by microcontroller standards.

Arduino Nano 33 BLE Sense board is smaller than a stick of gum.

There are practical reasons you might want to squeeze ML on microcontrollers, including:

  • Function – wanting a smart device to act quickly and locally (independent of the Internet).
  • Cost – accomplishing this with simple, lower cost hardware.
  • Privacy – not wanting to share all sensor data externally.
  • Efficiency – smaller device form-factor, energy-harvesting or longer battery life.

There’s a final goal which we’re building towards that is very important:

  • Machine learning can make microcontrollers accessible to developers who don’t have a background in embedded development

On the machine learning side, there are techniques you can use to fit neural network models into memory constrained devices like microcontrollers. One of the key steps is the quantization of the weights from floating point to 8-bit integers. This also has the effect of making inference quicker to calculate and more applicable to lower clock-rate devices.

TinyML is an emerging field and there is still work to do – but what’s exciting is there’s a vast unexplored application space out there. Billions of microcontrollers combined with all sorts of sensors in all sorts of places which can lead to some seriously creative and valuable TinyML applications in the future.

What you need to get started

The Arduino Nano 33 BLE Sense has a variety of onboard sensors meaning potential for some cool TinyML applications:

  • Voice – digital microphone
  • Motion – 9-axis IMU (accelerometer, gyroscope, magnetometer)
  • Environmental – temperature, humidity and pressure
  • Light – brightness, color and object proximity

Unlike classic Arduino Uno, the board combines a microcontroller with onboard sensors which means you can address many use cases without additional hardware or wiring. The board is also small enough to be used in end applications like wearables. As the name suggests it has Bluetooth LE connectivity so you can send data (or inference results) to a laptop, mobile app or other BLE boards and peripherals.

Tip: Sensors on a USB stick – Connecting the BLE Sense board over USB is an easy way to capture data and add multiple sensors to single board computers without the need for additional wiring or hardware – a nice addition to a Raspberry Pi, for example.

TensorFlow Lite for Microcontrollers examples

The inference examples for TensorFlow Lite for Microcontrollers are now packaged and available through the Arduino Library manager making it possible to include and run them on Arduino in a few clicks. In this section we’ll show you how to run them. The examples are:

  • micro_speech – speech recognition using the onboard microphone
  • magic_wand – gesture recognition using the onboard IMU
  • person_detection – person detection using an external ArduCam camera

For more background on the examples you can take a look at the source in the TensorFlow repository. The models in these examples were previously trained. The tutorials below show you how to deploy and run them on an Arduino. In the next section, we’ll discuss training.

How to run the examples using Arduino Create web editor

Once you connect your Arduino Nano 33 BLE Sense to your desktop machine with a USB cable you will be able to compile and run the following TensorFlow examples on the board by using the Arduino Create web editor:

Compiling an example from the Arduino_TensorFlowLite library.

Focus on the speech recognition example: micro_speech

One of the first steps with an Arduino board is getting the LED to flash. Here, we’ll do it with a twist by using TensorFlow Lite Micro to recognise voice keywords. It has a simple vocabulary of “yes” and “no”. Remember this model is running locally on a microcontroller with only 256KB of RAM, so don’t expect commercial ‘voice assistant’ level accuracy – it has no Internet connection and on the order of 2000x less local RAM available.

Note the board can be battery powered as well. As the Arduino can be connected to motors, actuators and more this offers the potential for voice-controlled projects.

Running the micro_speech example.

How to run the examples using the Arduino IDE

Alternatively you can use try the same inference examples using Arduino IDE application.

First, follow the instructions in the next section Setting up the Arduino IDE.

In the Arduino IDE, you will see the examples available via the File > Examples > Arduino_TensorFlowLite menu in the ArduinoIDE.

Select an example and the sketch will open. To compile, upload and run the examples on the board, and click the arrow icon:

For advanced users who prefer a command line, there is also the arduino-cli.

Training a TensorFlow Lite Micro model for Arduino

Gesture classification on Arduino BLE 33 Nano Sense, output as emojis.

Next we will use ML to enable the Arduino board to recognise gestures. We’ll capture motion data from the Arduino Nano 33 BLE Sense board, import it into TensorFlow to train a model, and deploy the resulting classifier onto the board.

The idea for this tutorial was based on Charlie Gerard’s awesome Play Street Fighter with body movements using Arduino and Tensorflow.js. In Charlie’s example, the board is streaming all sensor data from the Arduino to another machine which performs the gesture classification in Tensorflow.js. We take this further and “TinyML-ifiy” it by performing gesture classification on the Arduino board itself. This is made easier in our case as the Arduino Nano 33 BLE Sense board we’re using has a more powerful Arm Cortex-M4 processor, and an on-board IMU.

We’ve adapted the tutorial below, so no additional hardware is needed – the sampling starts on detecting movement of the board. The original version of the tutorial adds a breadboard and a hardware button to press to trigger sampling. If you want to get into a little hardware, you can follow that version instead.

Setting up the Arduino IDE

Following the steps below sets up the Arduino IDE application used to both upload inference models to your board and download training data from it in the next section. There are a few more steps involved than using Arduino Create web editor because we will need to download and install the specific board and libraries in the Arduino IDE.

  • In the Arduino IDE menu select Tools > Board > Boards Manager…
    • Search for “Nano BLE” and press install on the board
    • It will take several minutes to install
    • When it’s done close the Boards Manager window
This image has an empty alt attribute; its file name is k88wXiRDpbadmTW1EreSetBJwHgMN3IP4skuTRywedIgp2aAWvzg3mqyDPZ2_fafH7tFXK-GtFwPEcnMAM0fqfa8XeYCc7orh6LXg4pD2_fKu1JQqw8LALMHfv6lFIBA3a_9pYeg
  • Now go to the Library Manager Tools > Manage Libraries…
    • Search for and install the Arduino_TensorFlowLite library

Next search for and install the Arduino_LSM9DS1 library:

  • Finally, plug the micro USB cable into the board and your computer
  • Choose the board Tools > Board > Arduino Nano 33 BLE
  • Choose the port Tools > Port > COM5 (Arduino Nano 33 BLE) 
    • Note that the actual port name may be different on your computer

There are more detailed Getting Started and Troubleshooting guides on the Arduino site if you need help.

Streaming sensor data from the Arduino board

First, we need to capture some training data. You can capture sensor data logs from the Arduino board over the same USB cable you use to program the board with your laptop or PC.

Arduino boards run small applications (also called sketches) which are compiled from .ino format Arduino source code, and programmed onto the board using the Arduino IDE or Arduino Create.

We’ll be using a pre-made sketch IMU_Capture.ino which does the following:

  • Monitor the board’s accelerometer and gyroscope
  • Trigger a sample window on detecting significant linear acceleration of the board
  • Sample for one second at 119Hz, outputting CSV format data over USB
  • Loop back and monitor for the next gesture

The sensors we choose to read from the board, the sample rate, the trigger threshold, and whether we stream data output as CSV, JSON, binary or some other format are all customizable in the sketch running on the Arduino. There is also scope to perform signal preprocessing and filtering on the device before the data is output to the log – this we can cover in another blog. For now, you can just upload the sketch and get sampling.

To program the board with this sketch in the Arduino IDE:

  • Download IMU_Capture.ino and open it in the Arduino IDE
  • Compile and upload it to the board with Sketch > Upload

Visualizing live sensor data log from the Arduino board

With that done we can now visualize the data coming off the board. We’re not capturing data yet this is just to give you a feel for how the sensor data capture is triggered and how long a sample window is. This will help when it comes to collecting training samples.

  • In the Arduino IDE, open the Serial Plotter Tools > Serial Plotter
    • If you get an error that the board is not available, reselect the port:
    • Tools > Port > portname (Arduino Nano 33 BLE) 
  • Pick up the board and practice your punch and flex gestures
    • You’ll see it only sample for a one second window, then wait for the next gesture
  • You should see a live graph of the sensor data capture (see GIF below)
Arduino IDE Serial Plotter will show a live graph of CSV data output from your board.

When you’re done be sure to close the Serial Plotter window – this is important as the next step won’t work otherwise.

Capturing gesture training data 

To capture data as a CSV log to upload to TensorFlow, you can use Arduino IDE > Tools > Serial Monitor to view the data and export it to your desktop machine:

  • Reset the board by pressing the small white button on the top
  • Pick up the board in one hand (picking it up later will trigger sampling)
  • In the Arduino IDE, open the Serial Monitor Tools > Serial Monitor
    • If you get an error that the board is not available, reselect the port:
    • Tools > Port > portname (Arduino Nano 33 BLE) 
  • Make a punch gesture with the board in your hand (Be careful whilst doing this!)
    • Make the outward punch quickly enough to trigger the capture
    • Return to a neutral position slowly so as not to trigger the capture again
  • Repeat the gesture capture step 10 or more times to gather more data
  • Copy and paste the data from the Serial Console to new text file called punch.csv
  • Clear the console window output and repeat all the steps above, this time with a flex gesture in a file called flex.csv
    • Make the inward flex fast enough to trigger capture returning slowly each time

Note the first line of your two csv files should contain the fields aX,aY,aZ,gX,gY,gZ.

Linux tip: If you prefer you can redirect the sensor log output from the Arduino straight to a .csv file on the command line. With the Serial Plotter / Serial Monitor windows closed use:

 $ cat /dev/cu.usbmodem[nnnnn] > sensorlog.csv

Training in TensorFlow

We’re going to use Google Colab to train our machine learning model using the data we collected from the Arduino board in the previous section. Colab provides a Jupyter notebook that allows us to run our TensorFlow training in a web browser.

Arduino gesture recognition training colab.

The colab will step you through the following:

  • Set up Python environment
  • Upload the punch.csv and flex.csv data
  • Parse and prepare the data
  • Build and train the model
  • Convert the trained model to TensorFlow Lite
  • Encode the model in an Arduino header file

The final step of the colab is generates the model.h file to download and include in our Arduino IDE gesture classifier project in the next section:

Let’s open the notebook in Colab and run through the steps in the cells – arduino_tinyml_workshop.ipynb

Classifying IMU Data

Next we will use model.h file we just trained and downloaded from Colab in the previous section in our Arduino IDE project:

  • Open IMU_Classifier.ino in the Arduino IDE.
  • Create a new tab in the IDE. When asked name it model.h
  • Open the model.h tab and paste in the version you downloaded from Colab
  • Upload the sketch: Sketch > Upload
  • Open the Serial Monitor: Tools > Serial Monitor
  • Perform some gestures
  • The confidence of each gesture will be printed to the Serial Monitor (0 = low confidence, 1 =  high confidence)

Congratulations you’ve just trained your first ML application for Arduino!

For added fun the Emoji_Button.ino example shows how to create a USB keyboard that prints an emoji character in Linux and macOS. Try combining the Emoji_Button.ino example with the IMU_Classifier.ino sketch to create a gesture controlled emoji keyboard.

Conclusion

It’s an exciting time with a lot to learn and explore in TinyML. We hope this blog has given you some idea of the potential and a starting point to start applying it in your own projects. Be sure to let us know what you build and share it with the Arduino community.

For a comprehensive background on TinyML and the example applications in this article, we recommend Pete Warden and Daniel Situnayake’s new O’Reilly book “TinyML: Machine Learning with TensorFlow on Arduino and Ultra-Low Power Microcontrollers.”

Website: LINK