Inhoudsopgave:

STEM - Spraak- en beeldbediening: 13 stappen
STEM - Spraak- en beeldbediening: 13 stappen

Video: STEM - Spraak- en beeldbediening: 13 stappen

Video: STEM - Spraak- en beeldbediening: 13 stappen
Video: Deze 6 WhatsApp tricks kende je waarschijnlijk nog niet! 2024, November
Anonim
STEM - Spraak- en beeldbediening
STEM - Spraak- en beeldbediening
STEM - Spraak- en beeldbediening
STEM - Spraak- en beeldbediening
STEM - Spraak- en beeldbediening
STEM - Spraak- en beeldbediening

De afgelopen jaren is het steeds makkelijker geworden om iets te maken met spraak- of beeldherkenning. Beide worden tegenwoordig steeds vaker gebruikt. En dit zijn populaire onderwerpen in doe-het-zelfprojecten. Meestal gemaakt met de software/API van een van de volgende bedrijven:

  • Google Voice.
  • Amazon Alexa.
  • Microsoft Cognitieve Services.

Er zijn zelfs enkele doe-het-zelfkits, zoals de Google AIY Voice Kit om hobbyisten te ondersteunen. De meeste van deze producten gebruiken een Raspberry Pi of een vergelijkbaar bord. Helaas is dit niet geschikt voor degenen die niet weten hoe ze met een programmeertaal, zoals Python, moeten omgaan.

Deze instructable gaat over spraakherkenning en beeld-OCR, zonder enige kennis van een programmeertaal. Logisch denken blijft echter een vereiste. Hierbij wordt gebruik gemaakt van het Makeblock Neuron product, gecombineerd met een op flow gebaseerde programmeeromgeving.

Dit Neuron-product begon in 2017 als een Kickstarter-project. Het is een elektronisch bouwblokplatform dat gebruik maakt van alle soorten elektronische 'blokken' die kunnen worden verbonden door magnetische connectoren. En is eigenlijk bedoeld als een STEM-product (Science, Technology, Engineering, and Mathematics). Dit product richt zich dan ook op logisch denken en (leren) programmeren.

Er zijn ongeveer 30 verschillende soorten Neuron-blokken. Zoals verschillende soorten zenders en ontvangers, knoppen, LED's, sensoren en motoren. De meeste blokken communiceren alleen met elkaar. Maar een van de blokken, het wifi-blok, kan worden aangesloten op internet. Hierdoor is het mogelijk toegang te krijgen tot internetapplicaties zoals de Microsoft Cognitive Services.

De eerste stappen van deze Instructable beginnen met een korte introductie over het Neuron-product en hoe ze te programmeren. Dit omvat op flow gebaseerde programmering en enkele van de beschikbare elektronische componenten. Daarna volgen enkele voorbeelden met Vision- en Spraakherkenning. En tot slot een kleine schildpadrobot. Welke op afstand te bedienen is door middel van een joystick. Bij deze robot is het mogelijk om spraakherkenning te gebruiken. Wel moet rekening worden gehouden met de reactietijden van de spraakbesturing.

Daarnaast is er nog wat extra technische informatie. Deze stappen geven achtergrondinformatie en geven inzicht in het Neuron product.

G o s s e A d e m a

Stap 1: Neuron Explorer-kit

Neuron Explorer-kit
Neuron Explorer-kit
Neuron Explorer-kit
Neuron Explorer-kit

Neuron-blokken zijn als elektronische stenen, en de kleur van elk neuron toont zijn hoofdfunctie. Energie- en communicatieblokken zijn groen; Invoerblokken zijn geel; Besturingsblokken zijn oranje; En uitvoerblokken zijn blauw. Elk neuron heeft zijn eigen specifieke functie en ze beginnen met elkaar te communiceren wanneer ze met elkaar verbonden zijn.

Het product begon als een Kickstarter-project in april 2017. En dit instructable maakt gebruik van de Explorer Kit. Deze kit bevat de volgende onderdelen:

  • wifi (neuronen)
  • Kracht (neuron)
  • Microfoon & Luidspreker (USB)
  • Led Paneel 8x8 RGB (Neuron)
  • Joystick (Neuron)
  • Knop (Neuron)
  • Ledstrip Driver (Neuron)
  • Ledstrip 50cm (15 leds)
  • Dubbele DC-motorstuurprogramma (Neuron)
  • DC-motor (2x)
  • Motorsteun (2x)
  • Wielen (2x)
  • Miniwiel
  • Dubbele servomotorstuurprogramma (Neuron)
  • Servomotor (2x)
  • Spraakherkenning (Neuron)
  • Utrasonische sensor (Neuron)
  • Draadloze zender (Neuron)
  • Draadloze ontvanger (Neuron)
  • Camera (USB)
  • Laserpen
  • Neuronenbord (4x)
  • Magneetdraad 10 cm (2x)
  • Magneetdraad 20 cm (2x)
  • Micro-USB-kabel 20 cm (2x)
  • Micro-USB-kabel 100 cm (2x)

Deze kit bevat alle elektronische onderdelen voor allerlei STEM-projecten. Het primaire focuspunt lijkt het maken van kleine robots te zijn. Maar de camera en spraakherkenning geven hem veel meer mogelijkheden dan alleen robots.

Elk neuron bevat een magneet. En kan op metalen voorwerpen of op de meegeleverde Neuron-borden worden geplaatst.

Het enige onderdeel dat "ontbreekt" in deze Explorer Kit is een lijnvolgersensor. Dit is een onderdeel van de "All in One" Kit. Deze sensor zou een meer logische keuze zijn, in plaats van de ledstrip of ledmatrix.

Stap 2: Neuron Blokken

Neuron Blokken
Neuron Blokken
Neuron Blokken
Neuron Blokken
Neuron Blokken
Neuron Blokken

Via een Kickstarter-campagne werden verschillende Neuron-pakketten verkocht. En op dit moment zijn de eerste pakketten beschikbaar voor de reguliere verkoop.

Er zijn ongeveer 30 verschillende blokken, die met magnetische connectoren aan elkaar kunnen worden verbonden. Hierdoor ontstaat een rij blokken. Die met elkaar communiceren via de App (Android, iOS).

Er is een oplaadbaar stroomblok dat alle aangesloten blokken van stroom voorziet. En alle communicatieblokken hebben een micro-USB-connector, die kan worden gebruikt om de blokken van stroom te voorzien. Een keten begint normaal gesproken met een communicatieblok. En als dit niet via USB wordt gevoed, moet het volgende blok een stroomblok zijn.

De energie- en communicatieblokken hebben een groene kleur, en er zijn er 5:

  • Stroom.
  • Draadloze ontvanger.
  • Draadloze zender.
  • Wifi.
  • Bluetooth.

Voor het App- en Scratch-programma is een wifi- of BlueTooth-verbinding vereist. De 2 draadloze blokken kunnen worden gebruikt voor op afstand bestuurbare projecten met een korte afstand.

De Explorer Kit bevat drie oranje bedieningsblokken:

  • Knop.
  • Bedieningshendel.
  • Spraakherkenning.

En twee gele sensoren:

  • Camera
  • Ultrasoon sensor

Besturings- en sensorblokken leveren input voor uw programma. De knop geeft een waarde tussen 0 en 100, en kan worden gebruikt als dimmer of om het toerental van een motor te regelen. De joystick geeft twee waarden tussen -100 en 100, één waarde voor elke richting. De ultrasone sensor meet de afstand in centimeters. De uitgangswaarde ligt tussen 0 en 400.

De vijf blauwe uitgangsblokken in deze kit zijn:

  • Ledstrip driver + Ledstrip.
  • LED-paneel.
  • DC-motorstuurprogramma
  • Servomotorstuurprogramma
  • Microfoon en luidspreker

De outputblokken zijn zeer divers. Dit zorgt voor veel verschillende soorten projecten. Zoals een LED-lamp, een bewegende robot en/of een geluidsrecorder.

Alle Neuron-blokken worden vermeld op de Kickstarter-pagina.

Stap 3: Programmeren van de Neuron

Het neuron programmeren
Het neuron programmeren
Het neuron programmeren
Het neuron programmeren

Er zijn verschillende manieren om de Neuron-blokken te gebruiken.

  1. Offline.
  2. Online met een app.
  3. Online met mBlock Scratch.

Offline biedt een gemakkelijke manier om de verschillende onderdelen te introduceren. Dit vereist geen programmering. Online programmeren kan met een App (Android/iOS) of een computerprogramma (mBlock 4.0). Het WiFi-blok heeft de mogelijkheid om een programma op te slaan. Dit programma blijft actief totdat het wordt gestopt door de app.

De App is makkelijker te gebruiken dan de mBlock 4.0 software. En niet alle Neuron-blokken zijn momenteel aanwezig in de mBlock-software.

Er zijn enkele kaarten met voorbeeldprojecten in de Neuron-doos. Deze kunnen met behulp van de App worden samengesteld en laten de basisprincipes van de verschillende blokken zien.

Stap 4: Offline-modus

Offline modus
Offline modus
Offline modus
Offline modus
Offline modus
Offline modus

Deze modus is vooral bedoeld om kennis te maken met het product en vereist geen programmering.

Elke sensor van het outputblok kan output leveren aan de blokken die aan de rechterkant zijn bevestigd. En elk weergaveblok kan ingangssignalen van links ontvangen; Geeft zijn output; En geeft het ingangssignaal door aan extra blokken die rechts zijn aangesloten.

Hierdoor bevat een offline keten altijd meerdere blokken in een vaste volgorde: Een groen Power-blok; Een geel of oranje (invoer- of besturings)blok; En een of meer blauwe uitvoerblokken. En deze offline modus werkt alleen van links naar rechts (met leesbare letters).

Een ingangs- of besturingsblok stuurt alle volgende uitgangsblokken aan. En de output hangt af van het type inputblok. Bijvoorbeeld: de knop werkt als een dimmer bij aansluiting op een LED-matrix. En de joystick geeft de richting aan op de LED-matrix. Signalen van meerdere ingangsblokken kunnen niet worden gecombineerd in de offline modus. Alleen het signaal van het laatste blok wordt doorgegeven aan de uitgangsblokken.

Voor het combineren van ingangs- en/of stuurblokken is de online (programmeer)modus vereist.

Stap 5: Op stroom gebaseerde programmering

Op stroom gebaseerde programmering
Op stroom gebaseerde programmering

Wanneer Neuron-blokken zijn verbonden met een tablet (iPad), worden ze automatisch actief in de onlinemodus. Nu kunnen alle verbonden blokken worden gebruikt om met elkaar te communiceren. Terwijl de programmaomgeving logische en wiskundige bewerkingen toevoegt.

De documentatie over het programmeren van de Neuron-blokken is beschikbaar op de Makeblock-website. Er is ook een forum dat veel informatie geeft. Omdat dit product vrij nieuw is, zijn er regelmatig updates en aanvullingen op de documentatie op de Makeblock-website.

De Neuron-app maakt gebruik van op flow gebaseerde programmering. Naast de Neuron-blokken die uitvoerwaarden geven of invoerwaarden vereisen, zijn er allerlei verschillende programmeerknooppunten. Deze zijn onderverdeeld in verschillende gebieden en zijn op verschillende tabbladen in de App geplaatst. Standaard zijn er 4 tabbladen:

  • Basis
  • Bediening
  • Tijd
  • Geavanceerd

Deze programmeerknooppunten kunnen zonder Neuron-blokken worden gebruikt.

De online documentatie van Makeblock toont de functies van de app-interface.

Logica en wiskunde

Dit zijn basisfuncties. En hebben een of twee ingangen en een uitgangswaarde. Er zijn verschillende eenvoudige berekeningen en vergelijkingen.

Instructeerbare robot
Instructeerbare robot

De toggle-functie verandert zijn status telkens wanneer hij een 'Y' ontvangt.

Cijfers

Er zijn twee nummerknooppunten, een "basis" en een "besturings"-versie (ze staan op verschillende tabbladen). De bedieningsversie is een vast nummer, terwijl het basisnummer een 'aan' en 'uit' status heeft. Het volgende voorbeeld laat het verschil zien. Het interval schakelt elke seconde aan ('Y') en uit ('N'). De uitvoer van het groene getal is 5 wanneer de invoer 'Y' is, anders is de waarde 0.

Instrueerbare robot
Instrueerbare robot

Het curveknooppunt toont een grafiek. Dat is handig om de verschillende outputwaarden te laten zien. Andere nuttige indicatoren zijn het label en het indicatorknooppunt.

Volgorde

De reeks wordt herhaald of slechts één keer wanneer de invoer 'Y' is. Dit zorgt voor een opeenvolging van acties.

Instrueerbare robot
Instrueerbare robot

De sequentie krijgt een signaal wanneer de schakelaar wordt aangezet. De uitvoer van de reeks wordt doorgegeven aan een indicator.

Let op de kleur van de lijnen: De blauwe lijnen geven de huidige stroom aan. En de cirkel rechts van een knoop geeft altijd de huidige uitvoer weer.

Schaal

Het schaalknooppunt vertaalt een invoerbereik naar een uitvoerbereik. 0 tot 100 kan bijvoorbeeld worden vertaald naar een waarde tussen 0 en 255.

Instructeerbare robot
Instructeerbare robot

Waarden boven het maximum van het ingangsbereik resulteren in een waarde die hoger is dan de maximale uitgangsschaal! Het filter kan worden gebruikt om de waarde te beperken.

Ventiel

Dit is een knoop die de onderste invoerwaarde doorgeeft als de bovenste invoerwaarde waar is. Dit is het beste uit te leggen aan de hand van een voorbeeld:

Instructeerbare robot
Instructeerbare robot

Het groene intervalknooppunt schakelt elke halve seconde tussen 0 en 1. De output van dit knooppunt is zichtbaar in de bovenste grafiek. Het paarse pulsknooppunt geeft een sinusuitgang, met waarden tussen -255 en 255. Dit wordt weergegeven in de onderste grafiek.

Zowel het interval als de sinus worden ingevoerd voor het klepknooppunt. En de uitvoerwaarde is 0 wanneer de intervalwaarde 'N' is. Als de intervalwaarde 'Y' is, is de uitgangswaarde gelijk aan de sinusingangswaarde. Dit geeft de middelste grafiek.

Stap 6: Stroomvoorbeeld

Stroomvoorbeeld
Stroomvoorbeeld
Stroomvoorbeeld
Stroomvoorbeeld

De beste manier om de stroomprogrammering te laten zien, is aan de hand van een voorbeeld. Dit voorbeeld gebruikt geen Neuron-blokken. En iedereen kan dit programmeren na het downloaden van de App. Open de code-omgeving en maak een nieuw programma. Selecteer '(X)' wanneer om een verbinding wordt gevraagd en begin met programmeren.

Sleep gewoon de gewenste knopen naar het programmagebied en verbind de lijnen. Klik op de nodes om de mogelijkheden te zien, en om de waarden/instellingen te wijzigen.

De uitvoer van de knoppen is standaard 'N'. Een druk op de knop geeft een 'Y' als output. Deze output wordt doorgestuurd naar een random number generator. Dit genereert een nieuw getal (tussen 0 en 100) elke keer dat de invoer de waarde 'Y' heeft en geeft de uitvoer door aan de volgende knoop(en).

De vergelijkingsknooppunten vereisen 2 ingangen en retourneren de waarde 'Y' als aan de voorwaarde is voldaan. Het bovenste vergelijkingsknooppunt controleert of de waarde van de A-poort groter is dan de waarde van de B-poort. Als dit waar is, wordt de lamp groen. Momenteel is het onderste lampje groen, omdat 21 lager is dan 23.

Het vereist enige oefening om op deze manier te programmeren. Het grote voordeel is dat je niet hoeft na te denken over de syntax van de code. En elk knooppunt geeft zijn uitvoerwaarde weer. Daarnaast geven de blauwe lijnen de datastroom weer.

Stap 7: Beeldcontrole

Beeldcontrole
Beeldcontrole
Beeldcontrole
Beeldcontrole

Er zijn twee Neuron-blokken die door middel van een USB-kabel aan het wifi-blok kunnen worden bevestigd: de camera en de microfoon/speaker. Beide apparaten zijn gewone USB-apparaten en kunnen worden aangesloten op een pc. De camera heeft wat extra drivers nodig, maar de speaker werkt als een gewone USB-speaker.

Een cameratabblad en -pictogram verschijnen in de app wanneer de camera is aangesloten op het wifi-blok. Het pictogram opent een voorbeeldvenster met het camerabeeld.

Er is een foto-/cameraknooppunt in het cameratabblad. Deze maakt een foto als er een ingangssignaal is met de waarde 'Y' (true). Na het plaatsen van dit knooppunt in het programmagebied heeft het drie opties (klik op het knooppunt):

  • Foto lijstje
  • OCR
  • Emoticontest

De fotolijst toont de output van de fotonode. De volgende drie knooppunten zorgen voor een "fotocamera". De camera maakt een foto wanneer de knop wordt ingedrukt (dit geeft 'Y' als uitvoer). En dit wordt weergegeven in de fotolijst. De afbeelding wordt opgeslagen in het wifi-blok, maar wordt overschreven wanneer een nieuwe foto wordt gemaakt.

Instrueerbare robot
Instrueerbare robot

Het is mogelijk om de timer te gebruiken voor invoer naar de camera, maar maak het interval niet te kort (> 1 seconde). Anders kan het wifi-blok de gegevens niet aan en blijft het een tijdje hangen.

Het OCR-knooppunt vertaalt afbeeldingen naar tekst. Deze maakt gebruik van de cognitieve services van Microsoft. Het wifi-blok moet verbonden zijn met internet en de app moet verbonden zijn met het wifi-blok.

Het volgende programma maakt een foto als de knop wordt ingedrukt. Deze foto wordt weergegeven en verwerkt door het OCR-knooppunt. De uitvoer wordt vergeleken door drie tekstvergelijkingsknooppunten. Deze controleren op de waarden "één", "twee" en "drie". En elke waarde toont een ander beeld op het LED-paneel. De uitvoer van het OCR-knooppunt wordt ook weergegeven door een "label"-knooppunt. Dit toont "Nee" (False) wanneer niets wordt herkend.

Instructeerbare robot
Instructeerbare robot

Blauwe lijnen geven de gegevensstroom binnen het programma aan. En de 'Y' en 'N' na elk knooppunt vertegenwoordigt de uitvoerwaarde. Dit vereenvoudigt het oplossen van problemen binnen een programma. Helaas wordt de output van de LED-matrix niet weergegeven in de App.

De laatste cameraknooppuntoptie is de emoticontest. Dit vertaalt gezichten op een afbeelding naar een emotie.

Instructeerbare robot
Instructeerbare robot

Bovenstaande voorbeelden zijn eenvoudig, maar tonen het basisprincipe. Extra logica en neuronblokken kunnen worden toegevoegd om complexere programma's te maken

Stap 8: Spraakherkenning (microfoon)

Spraakherkenning (microfoon)
Spraakherkenning (microfoon)
Spraakherkenning (microfoon)
Spraakherkenning (microfoon)

Naast de camera kan een microfoon/speaker Neuron worden aangesloten op het wifi-blok. Hiermee kunnen audiofragmenten worden opgenomen en afgespeeld. Het aansluiten van deze Neuron geeft een extra "geluid"-tab in de App.

De record node neemt alleen geluid op als de input "Y" is, hiervoor is een knop of schakelaar nodig. Het opgenomen audiofragment is de output van de record node. Door de "play sound" node toe te voegen wordt deze output direct afgespeeld. Dit kan worden gebruikt een papegaai maken:

Instrueerbare robot
Instrueerbare robot

Klikken op het microfoonknooppunt geeft 2 opties: "stem naar tekst" en "record opslaan".

Het "save record"-knooppunt slaat het audiobestand op het bestandssysteem op in het WiFi-blok. Dit bestand wordt overschreven telkens wanneer een nieuwe opname start.

Het knooppunt "Geluid afspelen" kan ingangsaudio afspelen, maar het is ook mogelijk om een geluidseffect of opgenomen bestand te selecteren. Er is een ingangstrigger nodig om het gegeven geluid te starten. En het stopt onmiddellijk wanneer de invoer 'N' (false) is. Het volgende voorbeeld is een soort dictafoon. De bovenste knop maakt een opname en de onderste knop speelt deze opname af.

Instrueerbare robot
Instrueerbare robot

De spraak-naar-tekstoptie van het microfoonknooppunt maakt gebruik van Microsoft-cognitieve services om de opname naar tekst te vertalen. Het labelknooppunt kan de uitvoer weergeven. De opname- en afspeelgeluidsknooppunten zijn niet vereist om spraak in tekst te vertalen. Maar deze zijn handig tijdens het programmeren om de output te controleren.

Instrueerbare robot
Instrueerbare robot

Debuggen van deze functie kan worden gedaan door in te loggen op het WiFi-blok (geavanceerde functie).

[2018-01-19 23:00:35] [WARN] Verzoekafhandelaar 'geluidsserver' heette:

Het is mogelijk om op meerdere woorden te controleren. En het vergelijkingsknooppunt werkt net als de camera-OCR.

Soms geeft hetzelfde woord een andere output. Bijvoorbeeld: "tot ziens" kan een van de volgende waarden geven: "tot ziens" of "tot ziens". Dit vereist meerdere tekstknooppunten met dezelfde uitvoer:

Instrueerbare robot
Instrueerbare robot

Opmerking: de standaardtaal voor spraak naar tekst is Engels.

Stap 9: Spraakherkenning (Neuron)

Spraakherkenning (Neuron)
Spraakherkenning (Neuron)
Spraakherkenning (Neuron)
Spraakherkenning (Neuron)
Spraakherkenning (Neuron)
Spraakherkenning (Neuron)

Dit is een speciale Neuron om spraak naar tekst om te zetten. Het accepteert 22 commando's die hard gecodeerd zijn in het blok en de Neuron-code:

var COMMAND = {'Zet het licht aan': 3, 'Rood worden': 4, 'Blauw worden': 5, 'Groen worden': 6, 'Wit worden':7, 'Meer licht':8, 'Minder licht':9, 'Licht uit':10, 'Motor vooruit':11, 'Motor achteruit':12, 'Versnellen':13, 'Versnellen':14, 'Liefde':15, 'Glimlach':16, 'Boos':17, 'Verdrietig': 18, 'Rock and roll':19, 'Fire Fire':20, 'Game start':21, 'Winter is coming':22, 'Start':23, 'Shut down':24};

Dit blok accepteert alleen Engels. En het vereist een correcte uitspraak. Er is niet veel ruimte voor fouten. En zelfs de spraakuitvoer van Google Voice Translate activeert niet altijd de bijbehorende opdracht. Maar het gebruik van Google-spraak blijft een goed uitgangspunt. Begin met "Hello Makeblock", "Hello Makeblok" en/of "Helo makeblok". Gevolgd door "de winter komt eraan" of "groen worden".

Deze opdrachten zijn gebruikt in de code van de eerste afbeelding in deze stap. De indicator rechts van het bovenste knooppunt voor spraakopdrachten is 'Y' (waar). Dit geeft aan dat de opdracht is herkend.

Het vergt enige oefening om met deze Neuron te werken. Gelukkig herhaalt het blok het bericht na ontvangst (het bevat een luidspreker en microfoon).

Stap 10: Op afstand bestuurbare LEGO Turtle

Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle
Op afstand bestuurbare LEGO Turtle

De Neuron Explorer Kit bevat 2 gelijkstroommotoren en 2 servomotoren. Dit vraagt om een robot: een driewielige schildpad. Het maakt gebruik van de motoren en wielen uit de kit met enkele LEGO onderdelen als frame.

Bovenop dit frame zijn 8 balken, op een cirkelvormige manier, bevestigd. Deze balken geven steun aan de ledstrip. Bovenop de 8 balken worden drie magnetische Neuron-borden geplaatst. Deze bevatten de volgende neurondelen:

  • Draadloze ontvanger
  • Stroom
  • 10 cm kabel
  • Servomotor driver
  • DC-motor driver
  • LED-strip driver
  • 10 cm kabel

De laatste kabel van 10 cm wordt bevestigd aan de ultrasone sensor, die op de kop van de schildpad wordt geplaatst. Deze kop bestaat uit het vierde magnetische Neuron-bord. Ten slotte bestaat de staart uit een servomotor, waaraan een legobalk is bevestigd.

Het resultaat lijkt alleen op "draden en elektronica", maar het schildpadschild dekt bijna alle elektronica.

De robot kan worden bestuurd met de joystick. Hiervoor zijn het WiFi (of Bluetooth) blok, de Joystick en de Draadloze zender nodig. De afstandsbediening vereist een USB-stroombron. Er is slechts één krachtblok beschikbaar, dat zich in de robot bevindt.

De eerste afbeelding toont een mogelijk programma voor deze robot. De joystick is verbonden met het DC-motorblok. Omhoog/omlaag voor snelheid en links/rechts voor richting.

De output van de ultrasone sensor wordt vergeleken met de waarde van 100 cm. Is de afstand groter, dan wordt op alle leds de kleur groen/geel weergegeven. De kleuren worden rood/oranje als de afstand onder de 100 cm komt.

De staart gebruikt een pulsknoop tussen -180 en 180. Een ABS-functie maakt de negatieve waarde positief. Deze waarde wordt doorgegeven aan de servomotor en de staart begint te kwispelen.

Door de neuronblokken en de functieknooppunten te combineren is het mogelijk om complexere programma's te schrijven. De snelheid van de staart kan afhangen van de snelheid van de robot of de robot kan stoppen als de ultrasone sensor minder dan 30 cm meet.

Stap 11: Schildpad 2.0

Schildpad 2.0
Schildpad 2.0
Schildpad 2.0
Schildpad 2.0
Schildpad 2.0
Schildpad 2.0

De vorige LEGO-schildpad kan worden vereenvoudigd door een stuk karton/hout te gebruiken. Ik heb een stuk multiplex van 8 mm gebruikt. Maak met een decoupeerzaag een cirkel met een diameter van 19 cm. Boor alle gaten met een boor van 4,8 mm. Gebruik de boor en decoupeerzaag om de vierkante openingen te maken. Deze zijn voor de wielen en de draden.

Ik heb LEGO onderdelen gebruikt om de Neuron onderdelen aan de houten plaat te bevestigen. Er zijn enkele compatibele connectoren in de Explorer Kit. Maar het is ook mogelijk om voor de meeste verbindingen m4-bouten te gebruiken.

Aan de onderkant zijn twee gelijkstroommotoren (met wielen) bevestigd (donkerrode vierkanten). Net als het achterwiel (zwarte rechthoek). Een LEGO technic beam wordt gebruikt voor extra afstand tussen de plaat en het achterwiel. De drie paarse vierkanten zijn voor de magnetische Neuron-borden. Het vierde magnetische Neuron-bord wordt gebruikt voor de kop/ultrasone sensor (oranje rechthoek). De rode cirkel geeft de locatie van de LED-strip aan. Gebruik kleine elastiekjes (loombands) om de LED-strip vast te maken.

Deze robot werkt met dezelfde code als de LEGO schildpad.

Stap 12: Interne software

Interne software
Interne software
Interne software
Interne software
Interne software
Interne software

Het programmeren van de Neuron-blokken is eenvoudig, er hoeft geen code te worden geschreven. De volgende informatie is daarom alleen voor de gevorderde gebruiker. Het geeft enig inzicht in de werking van het Neuron product.

De Makeblock Github-pagina bevat Neuron-code. Je kunt het downloaden en de code verkennen. Het is geschreven in Javascript en gebruikt nodeJS.

Het wifi-blok moet verbonden zijn met internet. Wanneer de App verbinding maakt met de SID van het wifi-blok ontvangt deze een IP-adres van het wifi-blok. De wifi-blokken werken nu als een gateway.

Het IP-adres van het wifi-blok is 192.168.100.1. Op poort 80 draait een webserver die een configuratie-interface toont (wachtwoord = makeblock). Hierdoor kunt u verschillende instellingen en opties wijzigen.

U kunt de tijdzone en/of de WiFi SSID wijzigen. Maar wees voorzichtig, er is weinig documentatie over de andere instellingen.

Het tabblad Services/Netwerkshares toont alle netwerkshares. Ik heb een extra share "Server" gemaakt in de map "/tmp/run/mountd/mmcblk0p1/neurons-server". Deze map (en submappen) bevat alle log-, geluids- en beeldbestanden.

Hierdoor is het mogelijk om met de Windows bestandsverkenner door alle bestanden te bladeren. Het openen van de "\192.168.100.1\Server"-share geeft leestoegang tot alle bestanden van de Neuron-engine. Inclusief het serverlogbestand:

apparaat uuid:6A1BC6-AFA-B4B-C1C-FED62004

probeer mqtt.connect verbonden met iot cloud ok … [2018-01-19 22:56:43] [WARN] serverLog - Verzoek handler 'geluidsserver': {"startRecord"} [2018-01-19 22:56:43] [WARN] serverLog - start record [2018-01-19 22:56:45] [WARN] serverLog - Request handler 'geluidsserver': {"stopRecord"} [2018-01-19 22:56:45] [WARN] serverLog - stop record [2018-01-19 22:56:46] [WARN] serverLog - Request handler 'sound server': {"speakerRecognize"} requestSpeech resultaat: hallo

Het bestand config.js bevat alle instellingen. Dit omvat de Microsoft Keys en het huidige log-niveau. Deze kunnen worden gewijzigd, maar bewaar altijd een kopie van het originele bestand.

Het standaard logniveau is "WARN". Dit kan indien nodig worden gewijzigd:

* `loglevel`: het in te stellen logniveau, zal het log niet afdrukken waarvan de prioriteit lager is dan ingesteld.

* ondersteunt momenteel logniveau * **TRACE**, * **DEBUG**, * **INFO**, * **WARN**, * **ERROR**, * **FATAL**

Ik heb een alleen-lezen netwerkshare gemaakt. Een read-write share maakt het mogelijk om afbeeldingen-j.webp

Er draait ook een ssh-server op poort 22. Dit maakt het mogelijk om in te loggen in de Linux-shell. Gebruik Putty om verbinding te maken met 192.168.100.1 en log in met de root-gebruiker en het wachtwoord makeblock. Maar wees heel voorzichtig.

De WiFi-blokken draaien OpenWrt. Dit is een Linux-distributie voor embedded apparaten. De Neuron-software bevindt zich in de map "/tmp/run/mountd/mmcblk0p1/neurons-server".

Het is mogelijk om de meeste Neuron-blokken te programmeren met de mBlock-software. Hiervoor is versie 4.0.4 van de software vereist. De Microsoft-services zijn niet beschikbaar in deze krasversie. De spraakherkenning Neuron, die deze services niet nodig heeft, kan worden gebruikt. De mBlock versie 5 ondersteunt op dit moment (januari 2018) de Neuron-blokken niet.

De Neuron-codeblokken zijn beschikbaar in het gedeelte Robots (blauw). En de mBlock-software heeft als voordeel dat niet alleen de aangesloten blokken kunnen worden gebruikt. Het heeft geen zin om blokken te gebruiken die je niet hebt, maar dit maakt het mogelijk om code te schrijven zonder dat er Neuron-blokken zijn aangesloten.

Het standaardwachtwoord moet worden gewijzigd wanneer de Neuron wordt gebruikt op een open WiFi-netwerk.

Stap 13: Interne hardware

Interne hardware
Interne hardware
Interne hardware
Interne hardware
Interne hardware
Interne hardware

Deze hardware-informatie is alleen voor achtergrondinformatie. Het is niet geverifieerd door Makeblock!

De meeste hardware van Makeblock-producten is goed gedocumenteerd. Maar er is niet veel hardware-informatie over het Neuron-product. Er zijn enkele afbeeldingen op Kickstarter, maar dit toont de binnenkant van een prototype. Deze heeft slechts één USB-connector en het eigenlijke product heeft twee USB-connectoren.

De webserver in het WiFi-blok onthult de daadwerkelijke hardware die voor dit blok wordt gebruikt. Het is een MediaTek LinkIt Smart 7688. De belangrijkste kenmerken van dit bord zijn:

  • Draait OpenWrt Linux en ondersteunt applicatie-ontwikkeling in Python, Node.js en native C-programmeertalen.
  • Gebruikt een MT7688AN als een zelfstandige MPU en ondersteunt twee bedrijfsmodi: IoT-gateway en IoT-apparaatmodus
  • Ondersteunt Wi-Fi, USB-host en SD-kaarten.
  • Pin-out voor PWM, I2C, SPI, UART, Ethernet en I2S.
  • Ondersteunt tot 256 MB RAM met extra SD-kaartopslag.

De Linux-bestandssystemen tonen de interne schijfopslag:

root@makeblock_linkit:~# df -h

Bestandssysteem Grootte Gebruikt Beschikbaar Gebruik% Gemonteerd op rootfs 17,9M 644,0K 17,3M 4% / /dev/root 12,8M 12,8M 0 100% /rom tmpfs 61,7M 812.0K 60,9M 1% /tmp /dev/mtdblock6 17,9M 644,0K 17,3M 4% /overlay overlayfs:/overlay 17,9M 644,0K 17,3M 4% / tmpfs 512,0K 0 512,0K 0% /dev /dev/mmcblk0p1 1.8G 101.4M 1.7G 5% /tmp/run/mountd/mmcblk0p1/

Er is een schijfvolume met de naam mmcblk01 in het blok. Deze naam wordt meestal gebruikt voor geheugenkaarten. Het lijkt erop dat er een SD-kaart van 2 Gbyte in zit (1,7 Gbyte + 256 Mbyte voor de LinkIt 7688).

De pogo-pinnen hebben 4 connectoren: één voor VCC, één voor aarde en twee voor communicatie. De Neuron-blokken communiceren waarschijnlijk met het I2c-protocol. Er moet een Arduino-compatibel bord in elk neuron zitten.

Aanbevolen: