Archive for 'Spisak'

PicKit 3

PicKit 2

PicKit 2

Mnogi od vas znaju da već duže vreme za rad sa microchip mikrokontrolerima ja isključivo koristim PicKit2. Za razliku od ostalih programatora poput AllPic ili ICProg ili PICBlaster ili Brenner8 koji su samo “glupi programatori” i uglavnom traze računar sa paralelnim portom (već par godina ih ne stavljaju na nove matične ploče a sa laptopova su nestali pre skoro deceniju) ili serijskim portom (još ređa zverka od paralelnog porta) a pritom ne rade sa usb2par ili usb2ser adapterima, PicKit2 je sprava koja pukog programiranja PIC mikrokontrolera ume i da:

PicKit2 as Logic Analyzer

PicKit2 as Logic Analyzer

  • radi In Circuit Debugging – ili u prevodu, može direktno da debagira vaš mikrokontroler u kolu na projektovanom uređaju, da zaustavi rad, da vam mogućnost da proverite vrednosti varijabli, stanja, promenite neke vrednosti, idete kroz program red po red, setujete break pointe …
  • radi kao TTL serial port (a može i da snifuje serial port, i2c, spi ..)
  • radi kao trokanalni logic analyzer (sve sa trigerima i čudima)
  • Može da napaja vaš projekat (oko 100mA) naponom od 2.5V do 5V
  • Programira sve uređaje od 2.5V do 5V
  • Radi HighVoltage programming PIC mikrokontrolera tako da vam LPG pin ostaje slobodan
  • Program on GO mogućnost da u PicKit2 upišete program i onda na terenu, bez dodatne opreme, samo “zabodete” pickit2 u vaš uređaj, stisnete dugme za programiranje i napečete novi hex u vaš pic.
  • Može da peče i drugu vrstu mikrokontrolera, na primer uz PK2AVRISP može da peče ATMEL mikrokontrolere
PicKit2 sta ima unutra

PicKit2 sta ima unutra

i još svašta još…

Ono što je ogromna prednost PicKit2 uređaja (pošto nije samo programator) je što je sve dostupno. Šema je dostupna, firmware je dostupan kako kao hex tako i source istog, externi programi su dostupni kao binary i kao source, tako da je vrlo lako ovaj uređaj “budžiti”. Na Internetu postoji mnogo klonova pickit2 a kod nas je moguće kupiti kit u kelco-u za nešto tipa 2000din ili je moguće kupiti preko momaka sa ES-a gotov uređaj za slične pare (20E ili 2000din).

PicKit3

PicKit3

Početkom 2009. godine Microchip je izbacio PicKit3 kao “naslednika” vrlo popularnog PicKit2 programatora. Ja sam sačekao godinicu dana i onda kupio PicKit3. Moram da priznam da sam čekao na njega skoro mesec dana pošto je Microchip kasnio sa isporukom, dobio sam komad sa datumom proizvodnje “malopre”, koristio ga par nedelja (taman mi je dobro došao pošto pickit2 ne može da radi debagiranje 32MX serije a ja nešto pravim sa PIC32MX440F256H i počelo je da me zeza, rešio sam problem za 10min uz pickit3) pa sam rešio da napišem malo poređenje ova dva.

Ukratko, ako vam nije neophodno debagiranje 32MX serije, nemojte bacati pare na pickit3.  Osim što je providan, i što je u istom form faktoru, ovo je potpuno novi proizvod koji nije ni prineti pickit2. Koristi mnogo brzi mikrokontroler za rad ali je 10-30% sporiji od pickit2 kada je programiranje u pitanju. Za svaku familiju mikrokontrolera mora da se downloaduje novi firmware u pickit3 (pickit2 sve radi sa jednim istim firmware-om). Nema stand-alone gui program za programiranje hex-a u mikrokontroler (do skoro nije postojao ni PK3CMD command line program za pečenje).

PicKit3

PicKit3

Nema ni traga od svih onih korisnih alata za pickit2 (serial port debugger, SPI monitor, i2c monitor, logic analzyer …). Ne postoji source ničega i nema nade da će se source pojaviti. U beznadežnom lutanju za odgovorima na microchip sajtu sam našao informacije da je pickit3 delo drugog tima unutar microchip-a ( isti tim koji je pravio onaj pateticni ICD2) koji je istripovan na tajnost tako da su šanse za objavljivanjem sorsa nikakve.

Poređenje PicKit2 PicKit3
PicKit2 PicKit3
Programiranje PIC10/12/14/16/18/24/30/32/33 DA DA
Debagiranje PIC10/12/14/16/18/24 DA DA
Programiranje PIC30/32/33 Delimično DA
Napajanje target uređaja 2,5V – 5V 2,0V – 6,0V
Serijska emulacija DA NE
Logic Analyzer DA NE
Integracija sa MPLAB-om DA DA
Zaseban program za programiranje DA (i command line i gui) Delimično (samo command line)
Podrška za Linux DA NE
Programm to GO DA Biće podržano u budučnosti

Neke od mana uočene odmah su ispravljene, kao na primer to da je prva serija došla sa LED indikatorima koje je bilo nemoguće očitati, PK3CMD.exe je napravljen posle 8-9 meseci posle mnogo kukanja i plakanja od strane korisnika… Sve u svemu, ternutno je PicKit2 mnogo bolji proizvod i PicKit3 nije u stanju da ga zameni, infirioran je po svim pitanjima. Ono što je pozitivno je što je unutra dosta ja mcu tako da se svi ti problemi mogu rešiti programski. Šema za pickit3 je dostupna u manualu tako da ako neko želi može sam da piše firmware ispočetka.

što se mene tiče, ja se zadržavam na pickit2 a ovaj pickit3 vadim samo kada moram da debagiram 32mx seriju.

Tags: , ,

Vruca platforma za stampanje

Malo sam usporio sa postovanjem, i ovde i na MySQL delu, uglavnom zbog obaveza na poslu i kod kuce, ali i zato sto sam se bacio na neke malo vece zahvate sa reprapom … Radi se punom parom na v2.5 i na v3.0 reprapovima, no o tome neki drugi put, ne ocekujem da ce neko ozbiljnije poboljsanje same konstrukcije biti tu pre sredine 2011. Dakle, na cemu se trenutno radi … kao sto sam spominjao vise puta, “warping” je veliki problem sa 3d stampanjem, posebno u kucnoj varijanti. Veci objekti su “nemoguci za stampu” ako se koristi ABS ili PP/PE zato sto su warping sile toliko velike da objekat pokida sam sebe. Posle nekoliko meseci utrosenih na isprobavanje razlicitih tehnika koje smanjuju warping efekte (razne tehnike sa otvorima u objektu koji prekidaju warping sile i zadrzavaju ih u limitima koje materijal moze da podnese), ugradjen stres u sam objekat je i dalje suvise velik da bi objekat bio dovoljno cvrst da se koristi kao finalni proizvod (kao “rapid prototype primerak za gledanje” moze ali..). Jedini nacin da se zadrzi kvalitet objekta je da se spreci gomilanje tog stresa i jedan of efektnih nacina da se ovo izvede je uz pomoc vruce platforme na kojoj se stampa i koja grejuci objekat odozdo dozvoljava objektu ravnomerno hladjenje i samim tim ne dozvoljava ugradjivanje prevelikog stresa u sam objekat. Kako su za razlicite delove objekta potrebne razlicite temperature same platforme, i kako bi maticna ploca rapmana bila u stanju da kontrolise temperaturu platforme napravio sam mali, zgodan kontroler koji regulise temperaturu ploce.

HotBed Controler v1.0 Schematic

HotBed Controler v1.0 Schematic

Kontroler je moguce setovati putem 2 tastera (target temp+ i target temp-), pritiskom na oba tastera trenutni target temp se cuva u eepromu odakle se cita pri inicijalizaciji, i preko i2c protokola posto se kontroler ponasao kao slave I2C uredjaj. Moze se procitati / upisati nova odredisna vrednost za temperaturu i moguce je procitati trenutnu temperaturu ploce. Firmware je realizovan u CSC PICC C-u na pic16F819. Pic je odabran kao “najmanji pic iz fioke sa dovoljno pinova da tera lcd, 2 tastera, i2c i analog read”. Source je dostupan ovde.

Sama platforma je realizovana sa 5mm debelom 276x260mm aluminijumskom plocom koju je obezbedio jedan mladi repraper iz Kragujevca (hvala jos jednom) na koju su pricvrsceni 50W 2R2 otpornici. 8 otpornika je vezano 2 po dva u paralelu pa zajedno u seriju tako da je ukupni otpor grejaca oko 4R4. Grejac (otpornici) se napajaju sa 40VAC 10A izvora koji je kontrolisan preko MOC3043 + 25A 600V triakom na kontroleru. Sama kontrola se zasniva na prostom “if (target > current) {heaterON();} else {heaterOFF();}” posto sama inercija grejaca kao i ne preterano potrebna preciznost (+-2 stepena je vise nego zadovoljavajuce) ne zahtevaju neki ozbiljniji PID kontroler, mada obzirom da je pic iskorsten tek negde oko 70% bilo mi moguce implementirati i neki malo bolji PID.

Tags: , , , ,

Chronos i Linux

Za razliku od hobi popularnih mikrokontrolera iz microchip i atmel familije MSP430 familija kontrolera nema bas “lako dostupne” alate za razvoj kada je software u pitanju. Osnovna dva alata ovde su IAR i CCS. CCS je “nabudzeni eclipse sa gnucolikim kompajlerom” dok je IAR workbench dobro poznat embedded developerima posto momci pored TI-a podrzavaju jos veliki broj mcu jezgara. Za MSP430 familiju postoji msp-gcc port gnu c/c++ kompajlera (c++ bez stdc++ biblioteke) mspgcc koji radi odlicno (na linuxu, nisam uspeo da ga nateram da radi ok na windozi mada bi trebalo da nije veliki problem) ali, mspgcc je vezan za gcc 3.2 koji je popricno bajat. gcc4 nudi mnogo bolje algoritme za optimizaciju sto je kod embedded programiranja prilicno bitno, te su se neka momcadija dosetila i napravila isto to samo nad gcc4 mspgcc4 koji je isti kao mspgcc samo nad gcc 4 i sa malo vecom podrskom za msp kontrolere. Za mspgcc sam vec znao da ne podrzava extended memory msp jezgra (u chronosu je cc430f6137) ali ono sto me razocaralo je da to ni mspgcc4 ne podrzava. Iz ocaja skinuo sam sa svn-a najnoviji source i prekompajlirao ga i :D eto podrske .. dakle mspgcc4 u svn-u ima podrsku za chronos :D pre nego se bacimo na programiranje istog .. evo par slicica kako to izgleda kada se rastavi:

chronos

chronos

chronos

chronos

Tags: ,

Netfabb Engine for Rapman Basic

Stigao je dugo ocekivani software za procesiranje 3d objekata u G-Code. Pravi ga Netfabb, firma koja pravi i netfabb studio (jedan od najboljih alata za popravku i manipulaciju STL fajlovima) koja ima 30+ godina iskustva u rapid prototyping svetu.

Za sada je od dva najavljena proizvoda, Netfabb Engine for Rapman Basic i Netfabb Engine for Rapman Professional (prvi kosta 100-200E, drugi nesto oko 1000E) izasao samo Netfabb Engine for Rapman Basic i to beta verzija. Testiranje te beta verzije je pokazalo neverovatan pomak u kvalitetu stampe na reprap uredjajima. Netfabb direktno podrzava samo rapman verziju reprap printera ali kako je g-code genericki vrlo verovatno ce isti trcati i na Mendelu bez vecih problema.

Prvu novinu koju nam uvodi Netfabb Engine for Rapman Basic je kalibracija. Pre nego bilo sta krenete da stampate, neophodno je kalibrisati software za materijal koji zelite da koristite. Za pocetak, Netfabb Engine for Rapman Basic podrzava samo ABS i PLA materijal i nudi vam slot za svaki od njih u nekoliko boja. Procedura kalibracije je vrlo jednostavna, zahteva da otstampate izgenerisani fajl i izmerite debljinu zida na 14 objekata. Bice vam potreban dobar subler (po mogustvu digitalni) posto je potrebno izmeriti vrednost sa tacnoscu od 0.01mm

Druga novina (ocekivana od ovakve firme) je interface, najzad je tu jedna aplikacija za procesiranje STL-ova koja se ne startuje iz konzole. Na zalost aplikacija za sada radi samo na windozi (ja sam je testirao na win7 64bit ultimate) ali su mi Alex i Charly rekli da se uveliko radi na testiranju linux verzije tako da se ocekuje da ce i basic i professional verzije raditi i na linuxu. Inteface je vrlo intuitivan i jako brz… radi cak i pod virtualbox-om. Za razliku od profesionalne verzije basic verzija nema dongle i koristi licence key i online aktivaciju te se vezuje za samo jedan racunar. Professional verzija ima dongle koji moze da se deli kroz mrezu tako da mozete imati instaliranu aplikaciju na mnogo racunara, samo je limit da samo jedna u jednom trenutku moze da radi.

Sledeca drasticna razlika u odnosu na sve ostale programe za procesiranje 3d objekata je raft (raft je podloga koja se otstampa na povrsinu za stampanje koja obezbedjuje idealno ravnu podlogu za stampanje objekta i dobar spoj izmedju objekta i povrsine za stampanje). Raft koji pravi netfabb je toliko drasticno razlicit od svega do sada vidjenog da treba da prodje jos vremena da vidimo koje su mu sve prednosti. Za pocetak – stampa se brze, cvrci je, lakse se uklanja, a deluje da znacajno smanjuje warping objekata. Za pocetak odlicno, videcemo kako ce se pokazati u buducnosti.

Brzina je nesto gde svaki processing alat ima veliki problem. Obrada velikog broja podataka je nesto sto prosto “ne moze brze”, pa, izlgeda moze. Netfabb Engine for Rapman Basic je od Skeinforge-a (do sada najbrzeg processing alata) brzi bar 10 puta!!! a na istoj masini je od originalnog reprap host-a brzi preko 20 puta. Da li zato sto je netfabb engine pisan u paskalu i kompajliran u nativni kod (skeinforge je python, reprap host je java) ili zato sto su ludi Nemci napisali to mnogo dobro, ili zato sto jos uvek ne podrzava sve stvari i nema sve mogucnosti koje imaju skeinforge i reprap host – videcemo, za sada je mnogo brzi, kada izadje finalna verzija sa svim opcijama uporedicemo ih ponovo.

I za kraj, test objekat je ruka – otstampana u PLA materijalu, ruka je visoka ~12cm

neociscena – direktno u stampacu:

ociscena:

Tags:

Adrian Bowyer, covek koji je “izmislio” RepRap i zapoceo ceo projekat je postavio set Mendel RP delova na E-Bay. Mendel “delovi” su vec dostizali cifre od 400-500E na E-bay aukcijama ali ovi delovi imaju “posebnu” vrednost posto ih je stampao licno Adrian – dakle, kako god se to kaze na srpskom “collectors items”.

Aukciju mozete pratiti: http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&item=110502502617

najzad – mendel

Sve delove mendela sam odstampao na svom rapmanu – odavno (jos prosle godine), ali nikako da se smorim da ga sklopim. Ceo ovaj cim oko toga da nas orakle kupuje (sun) i cimanje oko toga, pa gomila drugih obaveza … elem .. sutirao sam delove za mendela po kuci 2-3 meseca da bi ga pre neki dan najzad sklopio ..

Svi delovi osim nosaca alata i nosaca Z ose su stampana u polipropilenu. Ova 4 dela (2 dela koja nose alat i 2 dela koja nose Z osu) su stampana u PLA (poliakticka kiselina – plastika koja se pravi od secera iz kukuruza i biorazgradiva je)

Nalazenje mehanickih delova, koje nisam mogao da odstampam, kod nas je nocna mora … kaisevi sa 1/12″ ili 2mm pitch-om su misaona imenica (5mm i 5.08mm pitch ima da se nadje na svu srecu), ravne sipke (dakle nenarezane) mogu da se nadju na buntu gde su – naravno – smotane u kotur (da da 8mm debela sipka smotana u kotur – i onda kao ja treba da uzmem parce od pola metra i da ga ispravim ?!?!?! ono preko kolena :D … nalazenje lagera (lezajeva) je isto pasji posao .. u vecini radnji samo umru od smeha ..

Sve u svemu – nekako sam uspeo da sastavim sve i da imam full mehaniku mendela gotovu … ima blagih promena u odnosu na originalni dizajn no nista znacajno – ono sto je vrlo zanimljivo je da “procenjena cena” za materijal nema veze sa vezom … oni su procenili da materijal kosta 520$ … aha .. kad bi sanjali .. isto tako im je cena za 1kg pla od 22E smesna … PLA na kilogram bez 60E moze samo da se sanja i na to onda treba da se doda shipment + carina + spedicija + pdv + ostale takse koje nam nasi dragi politicari namecu… na veliko (minimalna porudzbina 100Kg), PLA kosta (bez kotura, bez pakovanja, samo veliki bunt od 100+ kilograma, pa ti moras da ga seces pakujes i slicno) oko 40E za kilogram i to u Italiji (nema nigde u evropi jeftinije) .. Isto tako i ostale cene … tako da to sto sam ja imao ideju da cu ja to za 500E da sklopim (duplo vise nego sto oni procenjuju) je bilo “al za malo” … samo akril za drzac elektronike, print bed-a i print bed kosta oko 50E (2 seta kostaju 10000din + pdv) … lageri kostaju preko 200E .. sipke – narezane nisu skupe .. ni ne secam se koliko su bile .. matice ako kupujete na komad kostaju previse, ali ako nadjete pakete u ovim vecim radnjama (merkur, metro, uradi sam, home centar ..) od po 100 ili 200 matica onda izadju dosta manje… gomilu srafova mozete da kupite kod nas – al za malo :( … cudo srafova sam pravio (npr 55mm ili 60mm M3 sraf – NEMA .. za tako nesto kupite M3 narezanu sipku, odsecete parce koliko vam treba navucete sa jedne strane 2 matice koje zategnete jednu za drugu i – eto – napravili ste sraf duzine koja vam treba … nema M4 od 45, samo 55 .. pa onda opet, uzmes 55 pa ga seces (tamo gde ne moze da ostane visak, ili ga ostavis da viri gde moze) … pa imam malo “svetlih” i malo “crnih” srafova … malo sa “sestougaonom glavom”, malo sa “ravnim zarezom”, malo sa imbusom … tuga i zal … vece podloske (npr za M4 20mm podloska) su misaona imenica .. sve u svemu .. ovo na slici .. dakle BEZ ELEKTRONIKE .. samo gvozdje, kaisevi, motori, i materijal za stampu (dakle i bez cene rada, struje, vremena, sklapanja etc etc) izadje preko 800E (potroseno je oko 1200E na ovo na slici ali neki delovi su stampani par puta vise, neke stvari su testirane, neke stvai postoje u rezervi, na primar imam nekoliko setova kaiseva, imam set akrila viska, imam jos gomilu lezajeva, kupio sam neke remenice koje nisam upotrebio … dakle otislo je oko 1200E od kojih je ~400E otislo na “greske” i “duplikate” .. oko 800E je ovo sto je na stocicu) ….

sada za ovo treba napraviti elektroniku (ima gotova za par stotina funti, ili moze da se napravi za ispod 100E varijanta kojom ce da upravlja komp) ..

da, malcu jos fali extruder koji nije uracunat u ovu cenu (posto nisam ni mislio da pravim extruder, ovaj mendel je namenjen da vodi lasersku diodu za rezanje i za jos neka testiranja)

sve svemu – bio je ovo dobar test .. mada … poredjenje izmedju mendela i rapmana je u blagu ruku neprimereno … rapman je toliko stabilniji, precizniji .. ima vecu povrsinu za rad, sigurniji je … sve u svemu – ozbiljna masina u odnosu na ovog malca …

neki dzaba klinci

Pored CoCreate PE CAD aplikacije koju ja intenzivno koristim kada se smorim da predjem na windoze masinu i AOI koji pored toga sto je dzaba i sto radi na linuxu ima odlican i jednostavan sistem za dodavanje skripti sto u mnogome olaksava rad ali na zalost nije CAD vec 3d rendering program tako da mu fali svasta pojavilo se jos nekoliko interesantnih “dzaba” resenja u mom vidokrugu koji polako zauzimaju svoje mesto medju modeling alatima na mojim racunarima…

OpenSCAD

Kada sam prvi put pogledao ovaj “cad program” deinstalirao sam ga “odma” … ali sam mu se posle par meseci vratio “da probam jos jednom”. O cemu se radi, ovo je CAD program u kome “programirate objekat”, dakle za razliku od standardnih CAD programa gde birate alate i obradjujete vas objekat, u OpenSCAD-u ga programirate. Deluje zbunjujuce ali posle 2-3 primera dodjete do toga da je vrlo lak za koristenje i da se neke stvari (poput zupcanika na primer) mnogo lakse prave u OpenSCAD-u nego u bilo kom drugom CAD programu (ja sam na primer za zupcanike pisao plagin za AOI a mnogo je bilo jednostavnije napraviti model u openSCAD-u).

ALGOR i ALGOR Design Check

ALGOR alati nisu dzaba al imaju 6meseci trial. Kako su to windoza aplikacije a windoze vecina usera reinstalira na 6 meseci to i nije tako strasno :D … Ja nisam neki veliki ljubitelj AutoDesk alata ali sam cuo lepe stvari a algor alatima (nisam ih jos probao)

ALIBRE

Alibre v11 je “dzaba” – tako bar kazu u press releasu … ja nisam uspeo taj “dzaba” da instaliram ali zato koristim v12 Alibre Express koji je dzaba verzija alibre v12. Kada skinete alibre v12 on 30 dana radi “full” i posle toga radi kao Express varijanta (koja ima otprilike sve opcije koje vam trebaju za rapman-a, ako hocete da dizajnirate motor sa unutrasnjim sagorevanjem – kupite full verziju).


Štampanje u vazduhu

Rešen da poteram mašinu malo preko nekih definisanih granica napravio sam objekat koji testira koliko je RapMan sposoban da štampa “u vazduhu” tj. koji negativan ugao može da podnese. Standardan limit ovde je 60 stepeni, tj ako je “overhang” veći od 60 stepeni (ugao prema horizontali manji od 60stepeni) mašina neće moći da odštampa isti ako ne koristi support.

Napravljena su tri testa. 2 sam štampao ja i jedan je štampao jedan moj kolega (Tony, čovek koji inače piše firmware za RapMan) pošto on ima ABS u boji (ja imam samo beli).

Svi testovi su napravljeni sa osnovnim setovanjem koje je ovakvo:

CARVE/Layer Thickness: 0.35
CLIP/clip over ..: 1.0
FILL/Grid Extra Overlap (ratio): 0.4
FILL/Infill Solidity (ratio): 0.1
INSET/Infill Perimeter Overlap (ratio): 0.4
INSET/Calculate Overlap from Perimeter and Infill: True
INSET/Remove Extrusion Overlap: True

Prvi test, ja štampao koristeći beli abs na temperaturi od 243 stepena:

Objekat neočišćen:

Objekat očišćen::

Objekat je izuzetno čvrst po celoj visini, “overhang” delovi ne pokazuju znake slabosti.

Drugo štampanje je napravio Tony Koristen je identičan gcode fajl samo je razlika što je korišten crni ABS. Crni ABS inače zahteva malo veću temperaturu štampe nego beli ABS (zbog pigmenta) tako da je ovo približno testu belog ABS-a na 240-242 stepena.

Objekat neočišćen:

Kao što se da primetiti, ovaj print je skoro idealan. Dakle odabirom prave temperature možemo zaobići standardni limit od 60 stepeni. Objekat je vrlo čvrst i ne pokazuje znake slabosti. Ovo uopšte nisam očekivao.

Treći print je test šta se dešava ako štampamo hladnije nego što je idealna temperatura. Ovde je temperatura spuštena na 237 stepeni, dakle 6 stepeni manje nego za prvi print, štampano opet belim ABS-om.

Objekat neočišćen:

Objekat delimično očišćen:

Kao što se sa slike da primetiti objekat je u priličnom haosu, teško ga je očistiti, kvalitet objekta je “neupotrebljiv”, objekat ima dobru čvrstinu na ravnom delu ali na overhang delu nema čvrstinu i može se slomiti na tom delu upotrebom malo jače sile.

Da zaključimo, 60 stepeni limit za overhang bez korišćenja support materijala može da se prebaci ako lepo pogodimo i usaglasimo temperaturu sa materijalom koji koristimo. Uz dobar tuning moguća je štampa overhang-a od čak 30 stepeni.

Objekat, ako želite sami da probate da otštampate možete naći na thingieverse sajtu.

Tags: ,

Pravih za rodjaka neki dan neki primer pa reko mozda bi bilo zgodno podeliti ga.

Shema - klikni za celu semu

Shema - klikni za celu semu

Shema sadrzi

  • mikrokontroler PIC16F887 koji radi na internom oscilatoru na 8MHz
  • reset kolo na MCLR pinu
  • primer kako kontrolisati 2 ledare preko samo jednog pina
  • karakter LCD u 4-bitnom modu (zakacena su paralelno dva, jedan sa jednom linijom i jedan sa dve)
  • unipolarni stepper motor vezan preko ULN2003 (koji je u stvari 7 darlingtona u jednoj kutiji)
  • bipolarni stepper motor sa L297+L298 drajver kombinacijom
  • servo motor

Sors je “samoobjasnjihv” tako da, evo ga:


// LCD pinovi
sbit LCD_EN at RD1_bit;
sbit LCD_RS at RD2_bit;
//sbit LCD_RW at RD3_bit; // MikroC ne koristi RW pin
sbit LCD_D4 at RD4_bit;
sbit LCD_D5 at RD5_bit;
sbit LCD_D6 at RD6_bit;
sbit LCD_D7 at RD7_bit;

sbit LCD_EN_Direction at TRISD1_bit;
sbit LCD_RS_Direction at TRISD2_bit;
//sbit LCD_RW_Direction at TRISD3_bit;
sbit LCD_D4_Direction at TRISD4_bit;
sbit LCD_D5_Direction at TRISD5_bit;
sbit LCD_D6_Direction at TRISD6_bit;
sbit LCD_D7_Direction at TRISD7_bit;

char txt1[] = "TEST TEKST";
char txt2[] = "neki tekst";
char txt3[] = "primer";
char txt4[] = "za lcd";
char txt5[] = "Vozi unapred";
char txt6[] = "UNIPOLARNI STEPP";
char txt7[] = "Vozi unazad";
char txt8[] = "STOP";
char txt9[] = "KRAJ";

// koraci stepper motora
char unipolar_step[] = {0b1100, 0b0110, 0b0011, 0b1001};

#define  Move_Delay() Delay_ms(200)

unsigned char i;

void main(){
  //////////////////////////////////////
  //   INICIJALIZACIJA                //
  //////////////////////////////////////

  // Ugasi ADC (konfigurisi AN pinove kao digital IO)
  ANSEL  = 0;
  ANSELH = 0;

  // Ugasi komparatore
  C1ON_bit = 0;
  C2ON_bit = 0;

  //////////////////////////////////////
  //   PALI, GASI LEDARU              //
  //////////////////////////////////////

  // Na D0 su nam charlieplexed ledare
  TRISD0_bit=1; //postavi D0 na imput - gasi obe ledare
  for (i = 0; i < 10; i++){ //20 puta se izvrti
     //upali prvu ledaru
     RD0_bit=0; //D0 je GND
     TRISD0_bit=0; //D0 je "izlaz"
     Delay_ms(100); //sacekaj 500ms

     //Ugasi ledare
     TRISD0_bit=1;
     Delay_ms(100); //sacekaj 500ms

     //upali drugu ledaru
     RD0_bit=1; //D0 je 5V
     TRISD0_bit=0; //D0 je "izlaz"
     Delay_ms(100); //sacekaj 500ms

     //Ugasi ledare
     TRISD0_bit=1;
     Delay_ms(100); //sacekaj 500ms
  }

  //////////////////////////////////////
  //   LCD  tekstualni                //
  //////////////////////////////////////

  Lcd_Init();
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Cmd(_LCD_CURSOR_OFF);

  Lcd_Out(1,6,txt3);

  Lcd_Out(2,6,txt4);
  Delay_ms(2000);
  Lcd_Cmd(_LCD_CLEAR);

  Lcd_Out(1,1,txt1);
  Lcd_Out(2,5,txt2);

  //iskuliraj 2 sekunde
  Delay_ms(2000);

  //Mrducaj malo tekst na lcd-u
  for(i=0; i<4; i++) {
    Lcd_Cmd(_LCD_SHIFT_RIGHT);
    Move_Delay();
  }

  for(i=0; i<8; i++) {
    Lcd_Cmd(_LCD_SHIFT_LEFT);
    Move_Delay();
  }

  for(i=0; i<8; i++) {
    Lcd_Cmd(_LCD_SHIFT_RIGHT);
    Move_Delay();
  }

  //////////////////////////////////////
  //   UNIPOLARNI STEPPER MOTOR       //
  //////////////////////////////////////

  //mrducaj malo stepper

  //SPREMI RC4 - RC7 da budu izlaz
  TRISC4_bit=0;
  TRISC5_bit=0;
  TRISC6_bit=0;
  TRISC7_bit=0;

  //sacekaj sekund
  Delay_ms(1000);

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,txt5);
  Lcd_Out(2,1,txt6);

  //UNAPRED
  for(i=0;i<100;i++){ // 100 koraka
     RC4_bit =  unipolar_step[i%4] >> 3;
     RC5_bit = (unipolar_step[i%4] >> 2) & 1;
     RC6_bit = (unipolar_step[i%4] >> 1) & 1;
     RC7_bit =  unipolar_step[i%4]       & 1;
     Delay_ms(80); //pauza izmedju koraka, sto manja pauza, brze se vrti stepper
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,txt8);

  //sacekaj sekund
  Delay_ms(1000);

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,txt7);
  Lcd_Out(2,1,txt6);

  //UNAZAD
  for(i=100;i>0;i--){ // 100 koraka
     RC4_bit =  unipolar_step[i%4] >> 3;
     RC5_bit = (unipolar_step[i%4] >> 2) & 1;
     RC6_bit = (unipolar_step[i%4] >> 1) & 1;
     RC7_bit =  unipolar_step[i%4]       & 1;
     Delay_ms(80); //pauza izmedju koraka, sto manja pauza, brze se vrti stepper
  }
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,txt8);
  //sacekaj sekund
  Delay_ms(1000);

  //////////////////////////////////////
  //   BIPOLARNI STEPPER MOTOR        //
  //////////////////////////////////////

  //SPREMI RC0, RC1 da budu izlaz
  RC0_bit = 0;
  RC1_bit = 0;
  TRISC0_bit=0;
  TRISC1_bit=0;
  RC0_bit = 0;

  //vozi unapred
  Delay_ms(1000);
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"Vozi unapred");
  Lcd_Out(2,1,"BIPOLARNI STEPP");

  RC1_bit = 1; // u smeru kazaljke na satu
  for (i=0;i<200;i++){//200 koraka
    RC0_bit = 1;
    Delay_ms(20);
    RC0_bit = 0;
    Delay_ms(20);
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,txt8);
  //sacekaj sekund
  Delay_ms(1000);

  //vozi unazad
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"Vozi unazad");
  Lcd_Out(2,1,"BIPOLARNI STEPP");

  RC1_bit = 0; // suprotno smeru kazaljke na satu
  for (i=0;i<200;i++){//200 koraka
    RC0_bit = 1;
    Delay_ms(20);
    RC0_bit = 0;
    Delay_ms(20);
  }

  //////////////////////////////////////
  //  SERVO MOTOR - DIREKTNA KONTROLA //
  //////////////////////////////////////

  TRISC2_bit = 0; //izlaz
  RC2_bit = 0;

  //DUZINA PULSA ODREDJUJE POZICIJU SERVO MOTORA
  //STANDARD JE 1500us je "centar" 900us je "skroz levo", 2100us je "skroz desno"
  //MADA TO ZAVISI OD MOTORA DO MOTORA, OBICNO PISE U DOKUMENTACIJI MOTORA ALI
  //SE UVEK MOZE EXPERIMENTALNO UTVRDITI

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - CENTAR");
  Lcd_Out(2,2,"DIREKTNO");

  for (i=0;i<50;i++){
     //posalji puls
     RC2_bit = 1;
     Delay_us(1500);
     RC2_bit = 0;
     //cekaj do sledeceg pulsa
     Delay_ms(25);
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - -90");
  Lcd_Out(2,2,"DIREKTNO");

    for (i=0;i<50;i++){
     //posalji puls
     RC2_bit = 1;
     Delay_us(900);
     RC2_bit = 0;
     //cekaj do sledeceg pulsa
     Delay_ms(25);
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - +90");
  Lcd_Out(2,2,"DIREKTNO");

    for (i=0;i<50;i++){
     //posalji puls
     RC2_bit = 1;
     Delay_us(2000);
     RC2_bit = 0;
     //cekaj do sledeceg pulsa
     Delay_ms(25);
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - -45");      //53 1200
  Lcd_Out(2,2,"DIREKTNO");

    for (i=0;i<50;i++){
     //posalji puls
     RC2_bit = 1;
     Delay_us(1250);
     RC2_bit = 0;
     //cekaj do sledeceg pulsa
     Delay_ms(25);
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - +45");               //36 1700
  Lcd_Out(2,2,"DIREKTNO");

    for (i=0;i<50;i++){
     //posalji puls
     RC2_bit = 1;
     Delay_us(1750);
     RC2_bit = 0;
     //cekaj do sledeceg pulsa
     Delay_ms(25);
  }

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - CENTAR");
  Lcd_Out(2,2,"DIREKTNO");

  for (i=0;i<50;i++){
     //posalji puls
     RC2_bit = 1;
     Delay_us(1500);
     RC2_bit = 0;
     //cekaj do sledeceg pulsa
     Delay_ms(25);
  }

  //////////////////////////////////////
  //  SERVO MOTOR - PWM               //
  //  Ovaj uC je suvise brz tako da   //
  //  ne moze da nam da dovoljno spor //
  //  PWM da bi imali full range od   //
  //  min do max. minimalni PWM na    //
  //  8MHZ je 489Hz sto je prebrzo    //
  //  idealan pwm bi bio negde ~100Hz //
  //////////////////////////////////////

  TRISC2_bit = 0; //izlaz
  RC2_bit = 0;
  PWM1_Init(489); //Hz
  PWM1_Set_Duty(0);
  PWM1_Start();

  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,"SERVO - SETAJ");
  Lcd_Out(2,2,"PWM");
  for (i=0;i<200;i+=2){
    PWM1_Set_Duty(i);
    Delay_ms(100);
  }
  PWM1_Stop();

  //KRAJ
  Lcd_Cmd(_LCD_CLEAR);
  Lcd_Out(1,1,txt9);
  Lcd_Out(2,4,txt9);
  while(1){
    for(i=0; i<4; i++) {
      Lcd_Cmd(_LCD_SHIFT_RIGHT);
      Move_Delay();
    }
    for(i=0; i<4; i++) {
      Lcd_Cmd(_LCD_SHIFT_LEFT);
      Move_Delay();
    }
  }
}
Tags: , , , , ,

RapMan u Srbiji

U toku je dogovor sa Bits From Bytes da se u Beogradu otvori zastupnistvo te da se lako moze kupiti RapMan kit bez maltretiranja sa carinom, dhl i ostalim lopovima koji se svaki ugradi po 100e i na kraju dok to stigne do vas platite bubreg i levo plucno krilo. Takodje, mocice da se kupi i potrosni materijal (print bed, filment ..) kao i zasebni kitovi (extruder, elektronika, okvir …)

Da skratim, da to ne bi sada donelo nove troskove (office, registracija, prostor) ja cu sa mojom firmom da budem “zastupnik”, tj, oni ce meni da posalju paket, a cu poplacam troskove slanja i slicno i onda ko oce, plati u lokalu i dunarima i nosi :) .. bez ugradnje i cuda i karate … dakle ideja je da sto vise ljudi koriste uredjaj, necu pare :) ocu ideje za unapredjenje uredjaja :) …

dakle, jos krace, moci ce da se kupi rapman u beogradu i potrosni materijal za rapman / reprap uskoro po vrlo povoljnoj ceni, za dinare, preko racuna, za kes, sa pdv, bez pdv ..

« Previous posts Back to top