INHOUDSOPGAWE:

Bou masjienwagter: 9 stappe
Bou masjienwagter: 9 stappe

Video: Bou masjienwagter: 9 stappe

Video: Bou masjienwagter: 9 stappe
Video: Основные ошибки при возведении перегородок из газобетона #5 2024, Julie
Anonim
Bou Machine Watcher
Bou Machine Watcher
Bou Machine Watcher
Bou Machine Watcher

Die beginpunt vir hierdie projek was om aan 'n konkrete projek te werk om 'n paar dinge oor mikro-beheerborde te leer.

Die aanvanklike idee was om 'n fisiese voorwerp te skep wat 'n Continuous Integration System (VSTS | Azure DevOps) kan monitor en foute in die bou van sagteware kan aanmeld. Weens die bekommernisse oor die veiligheid van die IT -afdeling, is ek geweier om 'n "nie -standaard" toestel direk aan die ondernemingsnetwerk te koppel.

Ek beland met die argitektuur wat in die prent hierbo getoon word. Die uitvoeringswerkstroom kan opgesom word as:

'N Windows -lessenaarprogram skandeer (trek) VSTS Build Definitions. Dit ontleed die resultate van die konstruksie en stuur dan 'n opdrag na die fisiese toestel wat 'n bietjie geanimeerde volgorde uitvoer voordat die rooi of die groen vlag vertoon word.

Stap 1: Benodigde onderdele

Die volgende lys gee 'n opsomming van al die benodigde items:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Uitbreidingsskild (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 XBee S1 -modules (https://www.adafruit.com/product/128).
  • 1 XBee Explorer -dongle (https://www.sparkfun.com/products/11697).
  • 2 deurlopende servomotore 5VDC met bevestigingsbykomstighede (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 9VDC kragtoevoer.
  • 3 LED's.
  • 3 weerstande 220 Ohm.
  • termo -intrekbare mou.
  • 1 drukknop.
  • 10KΩ trekweerstand vir optrek.
  • 100nF kapasitor.
  • elektriese drade.
  • strookbord (vir die bevestiging van die knoppie)
  • 5 mm hout (50 x 50 cm).
  • houtstok vierkantige gedeelte 5x5 mm (1m).
  • karton.
  • 10 X skroef 2 mm deursnee.
  • 4 skroef 5 mm deursnee.
  • sterk magneet.
  • draai module. Ek het die interne bewegende deel van 'n flikkerende lig hergebruik. jy kan sit wat jy wil. U moet net sorg dat die twee mobiele onderdele vrylik kan beweeg sonder om aan mekaar te raak.

Stap 2: Bou die boks

Bou die boks
Bou die boks

U kan eintlik 'n boks hê in watter vorm u ook al wil. Die belangrikste dinge om na te dink voordat u begin, is waar die bewegende dele sal wees en om te verseker dat hulle vry kan beweeg sonder om aan mekaar te raak. 'N Ander punt is waar gaan u die toestel plaas? Ek het 'n magneet (sterk een) gekry om dit aan enige metaalsteun vas te hou. As u dieselfde boks wil bou, kan u die instruksies in die lêer box_drawings.pdf volg.

In hierdie geval moet u net al die verskillende stukke sny, die gate vir die servomotors, die LED's, die knoppie en die skroewe maak en laastens al die dele aan mekaar plak. Sodra dit droog is, 'n bietjie skuur en 'n bietjie kleur.

Die twee vlae is gemaak met 'n paar rooi en groen karton. Om die vlagmas op die servomotors vas te maak, kan u die monteeronderdele gebruik wanneer u dit koop.

Stap 3: Opstel van Arduino

Opstel van Arduino
Opstel van Arduino

Die items wat aan die Arduino -uitbreidingskaart gekoppel is, is:

  • D2 PIN: die drukknop.
  • D4 PIN: die LED om te sê die stelsel is AAN.
  • D5 PIN: die LED om te sê dat ons 'n siklus uitvoer.
  • D6 PIN: die LED om te sê dat die toestel 'n nuwe boodskap ontvang het.
  • D9 PIN: die PWM -polssignaal vir die servomotor wat die gyro hanteer.
  • D10 PIN: die PWM -polssignaal vir die servomotor wat die vlag hanteer.
  • XBee -aansluiting: een ZigBee -module.

Die skema hierbo wys hoe al die items aan die bord gekoppel is.

Vir die LED's word die weerstand en die drade direk daarop gelas (sorg vir die polariteit). Alles word dan in 'n termo -uittrekbare mou verpak.

Vir die drukknop word alle dele (knoppie, weerstand en kapasitor) direk op 'n klein satellietstrookbord gelas. Die strookbord word dan direk vasgemaak met twee skroewe (2 mm)

Die servomotors werk met 5V -krag, wat dus direk aan die Arduino gekoppel kan word. As u kinders met 'n hoër spanning (12V) gebruik, moet u nog 'n laag vir die kragtoevoer byvoeg.

Vir die XBee -modules kan hulle, sodra hulle gekonfigureer is om saam te praat (sien volgende afdeling), direk aan die voetstukke gekoppel word.

Opmerkings: Die LED's en die drukknoppie kon direk aan die Arduino -penne gekoppel gewees het, aangesien dit die nodige sekuriteite intern kan implementeer. Ek het net die ou manier gedoen, aangesien hierdie aspek vir my nie baie duidelik was nie.

Stap 4: Sagteware - XCTU

Sagteware - XCTU
Sagteware - XCTU

Soos hierbo genoem, moet die twee XBee -toestelle gekonfigureer word om saam te praat. Om dit te kan doen, moet u die toegewyde X-CTU-sagteware van DIGI gebruik. U moet hierdie opsetstap slegs een keer uitvoer. volg die prosedure wat in die xbee_configuration.pdf -lêer beskryf word.

Sodra die konfigurasie voltooi is, kan u elke module op hul aansluiting koppel. Een op die USB/Serial -omskakelaar en een op die Arduino -uitbreidingskaart.

Die USB/Serial converter moet outomaties herken word deur Windows 10. As dit nie die geval is nie, moet u die bestuurder dalk handmatig installeer

Let wel:

Dit is 'n bietjie te veel om XBee -modules te gebruik om basiese seriële kommunikasie te doen. Teen die tyd dat ek met die projek begin het, het ek nie daarin geslaag om eenvoudige seriële kommunikasietoestelle te vind wat maklik bruikbaar is op Windows 10 (bestuurderkwessies). Dit was ook 'n geleentheid om 'n paar dinge oor https://www.zigbee.org te leer

Stap 5: Sagteware - Arduino Sketch

Sagteware - Arduino Sketch
Sagteware - Arduino Sketch

Om die Arduino te programmeer, gebruik ons die IDE wat toeganklik is vanaf die amptelike webwerf.

Die logika van die program is redelik eenvoudig; dit luister net na die standaard seriële poort van die bord vir enkele letters ('a', 'b', …). As die karakter wat ontvang is, ooreenstem met 'n bekende opdrag, speel 'n subfunksie die ooreenstemmende volgorde.

Die twee belangrikste opdragte is suksesanimasie ('a') en foutanimasie ('b').

Om 'n bietjie meer met die boks te kan speel (of ontfout), is daar 'n paar ekstra opdragte wat uitgevoer kan word. Hulle is:

  • 'O': dwing die AAN -LED om aan te wees
  • 'P': dwing die AAN -LED om AF te wees
  • 'Q': dwing die nuwe boodskap -LED om aan te wees
  • 'R': dwing die nuwe boodskap -LED om af te wees
  • 'S': dwing die siklus -LED om aan te wees
  • 'T': dwing die siklus -LED om af te wees
  • 'U': aktiveer die servomotor van die gyro
  • 'V': aktiveer die servomotor van die vlag.

Benewens die reeksopdrag is daar ook 'n subroetine (handlePushButton) wat geaktiveer word wanneer die drukknop op die toestel ingedruk word. In daardie geval word die fout- of suksesanimasie outomaties gespeel. Met hierdie funksie kan u kyk of die fisiese toestel korrek gemonteer is.

Die kode van die Arduino -skets is in die enkele lêer bsldevice.ino. U kan dit direk met die IDE oplaai.

Stap 6: Sagteware - lessenaarprogram

Sagteware - lessenaarprogram
Sagteware - lessenaarprogram

Die doel van die lessenaarprogram is om die webwerf van Microsoft Azure DevOps (voorheen VSTS) te monitor en te bepaal of 'n Build -definisie suksesvol is of verkeerd is. Elke keer as 'n build voltooi is, bepaal die lessenaarprogram die status van die build en stuur die ooreenstemmende opdrag ('a' of 'b') na die seriële poort (COMx).

Nadat u die toepassing begin het, is die eerste aksie om die regte com -poort te kies waarop die ZigBee -module gekoppel is. Om die poort te bepaal, kan u die Windows Device Manager (onder hawens (COM & LPT -afdeling)) gebruik. Die verbinding met Azure DevOps word outomaties gedoen tydens die aanvang met behulp van die geloofsbriewe van die huidige gebruiker. U kan ook enige vooraf gedefinieerde opdrag handmatig stuur met die kombinasie boks aan die regterkant.

Alle bronne is gegenereer met Visual Studio 2017 professionele uitgawe. Dit vereis. NET Framework 4.6.1. Hierdie weergawe van Framework is verkieslik om die verbinding/verifikasie met die VSTS -webwerf te vergemaklik.

om te gebruik:

  • laai die argief bslwatcher_sources.zip af.
  • Pak dit op u skyf uit.
  • Lees how_to_build.txt -lêer vir die bou -besonderhede.

Stap 7: Begin eers

Daar is twee belangrike dinge wat u in gedagte moet hou wanneer u die boks begin:

1- Daar is geen manier waarop die stelsel op sy eie kan weet waar die vlae is nie. Die stelsel veronderstel dat die groen vlag by die aanvang van die skerm aan is.

2- As die Arduino-bord aangeskakel word, moet niks beweeg nie. Aangesien ons deurlopende servo's gebruik het, word die nulposisie standaard op 90 in die sketslêer gestel. As 'n servomotor begin draai of geraas maak. Miskien moet u die nulposisie herdefinieer. Om dit te kan doen, moet u die potensiometer in die klein gaatjie aan die kant van die servomotor instel.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Stap 8: Gevolgtrekking

Hierdie klein toestel gee fisies die status van u deurlopende integrasiestelsel aan.

Aangesien die 'intelligensie' in die tafelblad -toepassing is, kan u die boks gebruik om enige ander sagteware of proses (pos, 'n temperatuursensor …) te monitor. U hoef net toegang tot 'n ander API te hê en te besluit wat 'goed' of 'sleg' is. As u nie rooi en groen konvensie kleure gebruik nie, kan u selfs die betekenis van die "boodskap" verander.

Verbeterings kan ook na die boks self gebring word:

  • Gebruik 'n battery.
  • Gebruik 'n ander kommunikasieprotokol.
  • Voeg sensors by om te weet watter vlag bo -aan is.

Hoop jy het hierdie projek interessant gevind.

Dankie dat u tot hier gelees het.

Stap 9: Bylae

'N Paar van die skakels wat gebruik is om hierdie projek te skep:

Arduino webwerf:

DIGI webwerf:

XCTU sagteware:

Sommige inligting wat van ander gebruik is:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (in Frans)

jeromeabel.net/

MSDN webwerf in die algemeen:

docs.microsoft.com/en-us/dotnet/framework/…

Aanbeveel: