<<

#139 ; Ĉu tro brava ideo por propra diploma laboro de universitato?

>>

Dum la sekvanta studjaro mi devus laŭ studaj planoj plenumi la diploman laboron de aŭtomatiga inĝeniero en universitato por eksameniĝi kaj fariĝi diploma inĝeniero post 2-jaraj studoj de magistra edukado kiel estis la originala plano. Tio estas ioma problemo, precipe ĉar oni devas efektivigi la diploman laboron por io firmao. Kredeble ne estas tiel facile trovi konvenan temon por diploma laboro. Ĝi apenaŭ povas esti tre facila kaj simpla se oni volas ke la universitato akceptu la laboron kaj koncesiu la ekzamenon.

Mi havas kelkaj propraj ideoj kaj mi fakte oficiale havas propran firmaon, kvankam ĝi ne vere funkcias. Mono tamen estas tre limigita rimedo por mi, la fakte senlabora malriĉa studento. Principe mi povus almenaŭ provi plenumi la diploman laboron por mia propra firmao, se la universitato tion ideon akceptas. Sunhorloĝo per speguloj - mia malnova favorito - tamen apenaŭ estas oportuna temo.

Ĉiuokaze la studoj de aŭtomatigo estas en Pori nur 2 jaroj. Se ne eblas eksameniĝi dum 2 jaroj en la universitata centro de Pori, oni devus kontinui studadon en Hervanta, Tampere. Mi ne kredas ke mi povus transloĝiĝi al Tampere. Almenaŭ mi devas provi pretigi ion diploman laboron dum unu jaro. Eble tio ne sukcesos tre bone, sed Hervanta estus malfacila defio.

Ĵus mi eltrovis furiozan ideon: Direktebla & celumebla fotilo per Raspberry Pi kaj Arduino Uno/Nano. Estas ja pretaj fotiloj por RPi. Ekzistas iaj robotoj kiujn oni povas gvidi per Arduino. Eblas meti la fotilon en la brako de roboto kaj gvidi la aparaton per komputila programo. Eble mi povus produkti aŭtomate stereobildoj?

La apuda foto prezentas malmultekostan stativon kiun oni povas gvidi per du perpendiklaj aksoj. Ĝi havas du ordinaraj malgrandaj servomotoroj kaj ĝi estas intencita por fotilo. Mi kredas ke estus facile gvidi la stativon per la mikroregilo Arduino Uno aŭ eĉ per la pli malgranda Arduino Nano.

Certe la tuta konstruaĵo devus esti pli komplika kaj kapabla aparato ol nur simpla stativo por fotilo. Mekaniko ne estas tre respektata temo en universitato.

Por stereobildoj mi bezonus ian mekanismon tiel ke oni povas foti per unu fotilo du fotoj tiel ke la distanco de lokoj de objektivo de fotilo estas ĉirkaŭ 10 cm aparte, proksimume la sama kiel la distanco inter okuloj de homo.

Nature nur senmovaj objektoj eblus foti per tia malrapida aranĝo. La teknikaj planoj estas ankoraŭ nepretaj en detaloj, sed espereble ĉi tiu pensado eventuale direktos ĝis io efektigebla kaj utila tutaĵo.

Ŝajnas ke RPi kun la fotilo estus tro granda por direktigi per tiu gvidebla stativo. Krome estas multaj iom ĝenaj kabloj por RPi. La malgranda fotila karto kun sia malpeza kaj fleksebla kablo estus pli facila por turni kaj movigi sole, sed sendube ĝi bezonus iom da aldona ŝirmo kontraŭ la minacoj de kruela kaj malbona mondo.

Ioma problemo estas la proksimume 10 cm longo de kablo de malgranda fotila karto kaj la movoj de stativo. Ĉiuokaze Raspberry Pi devas situi relative proksime al la fotilo.

Prefere oni ne prenu elektron por motoro el Raspberry Pi, ĉar la USB-konektilo de RPi estas nur malforta. Oni tamen memoru ke la tera tensia nivelo estu la sama por Arduino kaj la servomotoro. Mi jam rompis unu servomotoron uzante eksteran elektran fonton tiel ke la tensia nivelo de tero estis alia por Arduino Uno kaj servomotoro. La fonto de tensio +5V povas esti alia por Arduino kaj servomotoro, sed la tensia nivelo de tero (GND) aŭ minuso (-) devas esti la sama, komuna por ambaŭ.

La difektoj dum konstruado estis provizore relative malgrandaj. Unu fotilo de RPi estis difekta jam komence kaj mi longe 'batalis' kun li sen bona rezulto. Estis tamen tre facile munti la fotilon por Raspberry kiam mi trovis fotilon kiu ne estis difekta. Oni devas ĉiam esti tre singarda kun CMOS-iloj. Ili rompiĝas facile pro malgranda erupcio de statika elektro. La sparko povas esti tiel malgranda ke homo ĝin tute ne observas, sed ĝi povas tamen rompigi la delikatan CMOS-cirkviton.

Certe estus pli bone se mi trovus realisman ideon por diploma laboro en iu alia firmao, sed mi bezonas rezervan planon por tiu okazo ke tia ideo de alia firmao ne estus trovebla. Mi kredas kaj esperas ke "Machine Learnig" kaj "Computer Vision" povus oferti kelkaj eblecoj kun la fotilo de RPi.

Eble mi povus ekzemple efektivigi fotilon kiu sekvas sian movantan celon? Eble teknikoj de "Robotic Vision" ebligas por komputilo identigi la celon en foto? Eble alia tipo de fotilo de RPi nomita NoIR (ŝajne signifa "Ne InfraRuĝa" [ nome la filtrilo ] kaj ne kiel [nwar] aŭ "nigra" en franca lingvo?) povus rekoni la por homa okulo nevideblajn varmajn IR -radiojn de homa korpo?

La NoIR-tipa fotilo estas la sama kiel la ordinara CMOS-fotilo por RPi, sed ĝi ne havas ene la norman IR-filtrilon. Ordinare oni volas uzi IR-filtrilon tiel ke la fotoj aperos same kiel la homa okulo vidas lumon. La fotilo tamen estas pli sensitiva por lumo sen la filtrilo kaj eblas foti nokte kaj eĉ foti varman radiadon.

La dekstra foto eble donas ioman nocion pri la geometrio de intencita fota stativo. La servomotoroj estas en siaj centraj pozoj. Kredeble la fotilo devus foti horizontale rekte antaŭen kiam la servomotoroj estas en meza pozo.

Do RPi gvidus la fotilon kaj Arduino gvidus la servomotorojn. Mi kredas ke RPi povas informi por Arduino kiel oni devas veturigi la motorojn se oni volas sekvi la movon de io objekto.

Servaj motoroj estas simplaj por gvidi per la pretaj bibliotekaj funkcioj de Arduino. Ekzemple:

#include <Servo.h>
int servoPin = 3;
Servo Servo1;

void setup()
{
   Servo1.attach(servoPin);
}

void loop() 
{
   Servo1.write(90);	// valuoj 0 ... 180, meza pozo 90
   delay(1000);		// unu sekundo
}

La elektraj signaloj de servomotoro estas pli komplikaj, sed bibliotekaj funkcioj de Servo.h ebligas facilan uzon.

Fakte la servomotoro bezonas 50 fojoj dum ĉiu sekundo kurtan pulson de daŭro 1 ... 2 milisekundoj kaj tiuj elektraj pulsoj gvidas la motoron. La pulsoj tamen ne bezonas esti tre fortaj. La servomotoro havas internan fortigilon kaj la fonto de elektra energio estas alia ol la malfortaj pulsoj de mikroregilo.

Sekve pulso de 1,5 milisekunda daŭro 50 fojoj dum sekundo respondas al la meza pozo de servomotoro. Tiu povas kaŭzi ioman aŭdeblan sonon de 50 Hz frekvenco pro la ecoj de aparato. Oni devas sendi tian pulson por la motoro ĉiam en intertempo de 20 milisekundoj kiam la motoro ricevas elektron, sed la bibliotekaj funkcioj de Arduino ja efektivigas tion. La motoro reguligas sin mem konstante kiam ĝi ricevas elektron. Servomotoro ja estas iom pli komplika aparato ol nur iu simpla DC-motoro.

Krome ekzistas ankaŭ servomotoroj de alia tipo. La akso de tiuj aliaj motoroj ne estas limigita por anguloj ekzemple 0 ... 180°, sed rotacias konstante 360°. Por tiuj aliaj motoroj principe la valuo 90 en la Arduino -programo signifas halton, sed en praktiko la halta valuo povas esti iom alia. Estas malgranda ŝraŭbo en la ujo de motoro tiel ke oni povas reguligi la valuon kio haltigu la motoron. La plej malgranda valuo 0 signifas maksimume rapidan rotacion al iu direkto kaj la plej granda valuo 180 signifas la plej rapidan rotacion al la kontraŭa direkto. Se oni volas nur ioman rotacion, oni uzu en Arduiono -programo ekzemple la valuon 90 - 10 = 80 aŭ 90 + 10 = 100 depende de dezirita direkto de rotacio, se ni supozas ke la halta valuo estas akurate 90.

Sed ni denove traktu pli bone la tipon de motoro kun regulebla angulo de akso 0 ... 180°. Mi volas pruvi kaj atesti ke la supre skribita estas la vero, kurtaj pozitivaj pulsoj en 20 milisekunda intertempo.

Ĉi tie ni uzas la mikroregilon Arduino Uno kun la komputila karto Raspberry Pi aŭ RPi. La malgranda mikroregilo Nano ricevas sian elektran energion kaj tension +5 V el RPi tra la USB-konektilo. La servomotoro tamen havas alian fonton de elektra energio, tensio +4,9 V.

Ni notu ke la ideo en uzo de motoro estas tia ke ni sendu la kurtan pulson 50 fojoj en sekundo. La motoro do reguligas la pozon de sia akso 50 fojoj dum ĉiu sekundo. Se la pulso estas ĉiam la sama kaj la pozo de akso jam estas tia kian oni deziras, la motoro ŝajne faras nenion, la pozo de akso restas (plejparte) la sama.

La ruĝa drato de servomotoro estas por pozitiva tensio (+4,9V en ĉi tiu kazo) kaj la bruna drato estas por minuso / GND / tero. La tero (-) devas tamen esti komuna por mikroregilo kaj motoro. La signalo (la pulsoj) kiu venas el la mikroregilo estas en la flava drato.

Ni notu ke la pinto 3 en la programo signifas pinton D3 en Arduino Nano kaj ne la pinton A3 kiel mi unue erare desegnis.

Mi mezuris la pulsojn de Arduino Nano per osciloskopo kaj testis ke la motoroj de stativo laboras bone.

En la unua foto maldekstre la motoro estas en sia meza pozo, la skribita valuo 90 kiel en la supra programo kaj la daŭro de pulsoj do estas 1½ milisekundoj, la mezvaloro inter la valuoj 1 ms kaj 2 ms.

Eble mi devas poste iom reguligi la direkton de stativo ĉar la meza pozo en ĝi ne estas precize kiel mi dezirus.

Kaj kiam ni mezuras la tension en la drato D3 de Nano, ni kaptas la sekvantajn osciloskopajn bildojn por la plej malgranda valuo 0 kaj por la plej granda valuo 180 de programo.

La bluaj rektanguloj de osciloskopaj fotoj estas nun 5 milisekundoj larĝaj kaj 1 volton altaj. La pulsoj do ekiras ĉiam en 20 milisekunda intertempo kaj la plej alta tensio estas proksimume 4½ voltoj. La unua foto prezentas la pulsojn en la pinto D3 kiam la en programo skribita valuo estas nulo. En la unua foto la pozitiva pulso daŭras nur unu milisekundon kaj la direkto de akso de motoro estas en unu rando. En la dua foto la skribita valuo estas 180, la pulso daŭras 2 milisekundoj kaj la direkto de akso de motoro estas en la alia rando.

Ĉi tio artikolo ja estis plejparte pri servomotoroj kiuj povus havi ian rolon en mia diploma laboro. Mi kontinuas pensi kaj revi pri la diploma laboro. Sen akceptita diploma laboro kaj sen ekzameniĝo el universitato mia estonta ekonomia kaj socia sorto sendube povus esti tre malserena. Mi provas trovi propran malmultekostan solvon, efektivigon de malgranda studenta budĝeto. Tio verŝajne estas la sola ebleco por vivi prudente.

Kelkaj artikoloj en komputila reto:

En simpligita angla lingvo: Raspberry Pi

Ekzistas ankaŭ en Vikipedio en la angla lingvo interesaj informoj pri

Kaj certe ni honestaj civitanoj de Mueleja Insulo .......... NI VENKOS!

La Ambasadoro en Pori
de sendependa nacio
Mueleja Insulo


Menuo
Ĉefa paĝo (finna lingvo)