Autòpsia impressora multifunció

Els visitants ocasionals d’aquest lloc ja coneixeu la meva fal·lera per desmuntar aparells i recuperar-ne les peces. Els que veniu més sovint també sabeu que tinc les meves preferències: els escàners i les impressores. Aquest és el motiu pel qual no vaig poder evitar endur-me a casa aquesta impressora multifunció, malgrat el seu estat lamentable, quan la vaig veure abandonada a la seva sort al mig del carrer; era com fer dues autòpsies alhora!

102_0007

Està feta una merda, però segur que encara hi ha material interessant, a dins

Com ja he dit, no es troba al seu millor moment, no té la tapa i el vidre està trencat, però a mi això tant me fa. Jo busco motors, mecanismes i xips, i segur que això encara hi és, a dins. A més, aquesta botonera amb pantalla LCD ja és un bon començament. Anem a veure en quin estat es troba per dins.

102_0009

Sí, la peça de puzzle hi anava de sèrie!
102_0011

Qui l’ha vist i qui la veu! He mirat per la xarxa a veure si descobria de quin model es tracta, doncs sense les tapes no hi ha número de model; estranyament, a la placa de característiques del darrere tampoc no ho diu. Tinc dues candidates, la HP Officejet PSC 750 i la HP Digital Copier 310. Per les fotos que he trobat són quasi idèntiques. Mireu la foto i digueu què en penseu, oi que sembla la mateixa?

La que tinc jo no està en tan bon estat

O sigui que he agafat el tornavís i he començat l’autòpsia. La primera part és desmuntar-la en diferents parts, encara grosses, per després anar part per part desmuntant i recuperant components. De moment tenim la botonera, la part superior on hi ha l’scanner, i la part inferior que és la pròpia impressora. Les peces de plàstic se’n van cap a la caixa que portaré a la deixalleria, no tenen cap utilitat.

102_0012

Com va dir Jack l’Esbudellador: “Anem per parts!”

Començo doncs per la impressora. És la part més grossa i la vull treure de sobre el marbre el més abans possible. Amb el tornavís la despullo, tot retirant-li la seva pell plàstica, i això és el que queda. Per fi veig una mica de ferro!

102_0014

Pel davant…
102_0015I pel darrere!

El primer que crida l’atenció aquí és que hi tenim la placa base, on hi ha pràcticament tota l’electrònica de l’aparell, el seu cervellet. A part d’això, ja li he fet una ullada als tres motors que han aparegut. És hora de destriar el que serveix del que se’n va a la deixalleria. Una estona de tornavís després, això és el que tenim.

102_0016

Cada vegada peces més petites.
102_0017

Us explico una mica el que veieu. A la part superior hi ha un conjunt de motor i engranatges que formen un reductor interessant. L’eix amb els cilindres tractors de goma -perfectes per fer rodes de robots de sumo- també cal reduïr-lo a peces més petites. A la part inferior de la imatge podeu veure dos conjunts que encara es poden desmuntar una mica més: un dels dos és el capçal, on hi ha una placa auxiliar i els cartutxs de tinta; l’altre conjunt porta un motor que està demanant que el rescati. Mirem-nos-ho de prop, abans de seguir desmuntant.

102_0020

El motor amb reducció. Dubto si desmuntar-lo o guardar-me’l tal i com està.

102_0018

Això és el capçal. Aquí hi ha molta tecnologia, però és molt específica.
No en farem res, del que hi ha aquí.

102_0019

Aquest conjunt neteja els capçals quan s’aparquen. És un gran dipòsit per la tinta que cau, ple d’escuma per absorbir-la, i un motor per fer el moviment de neteja.
El motor per mi, la resta no val per a res.

De moment només he desmuntat el teclat amb pantalla de la part superior i la impressora, i ja tenim unes quantes peces interessants per afegir a la col·lecció.

102_0021

De moment el botí ja és considerable.

Al final he desmuntat els motors dels grups d’engranatges, i les rodes dels eixos. En un dels eixos hi ha un disc d’encoder de plàstic molt interessant, me’l guardo. També alguns foto-interruptors formats per diode i fototransistor, que sempre van bé (sobretot amb el disc de l’encoder). De les plaques poca cosa més en podré treure…

102_0022

Motors, eixos, i dues plaques de PCB
102_0023El panell de control i la PCB principal
102_0024El material mecànic mai no falta: cargols, molles, engranatges, rodes…
102_0025Més mecànica: eixos, corretges, rodes de goma…
102_0041Aquest és el disc que us deia. Potser haureu de posar la foto a mida real per poder gaudir de la resolució amb la que van imprimir les línies de la part exterior.

Pels més curiosos, poso les referències dels motors. El més petit dels motors DC (de corrent contínua) és un C6429-60004, i sembla que funciona de 3V a 24V. El gros és un C6419-60058; no n’he trobat dades, però podria funcionar a 12V. Tots dos han estat fabricats per Mabuchi, o això sembla, però no n’he trobat cap documentació. Deuen ser fets a mida per a HP. El motor pas a pas és un NMB (Minebea) PM35S-048-HPL2. Sembla una customització per al client (la referència d’HP és C5870-60004) d’un model estàndar de la marca que funciona a 24V, té quatre fases, 5 cables, i fa 48 passos per volta (7,5 graus). Molt interessant i útil, com els altres dos.
Per finalitzar aquesta part, no puc resistir posar una foto de detall de la placa principal. Aquí la teniu.

102_0042

Aquí hi ha molts xips específics i propietaris, és a dir, res que pugui fer servir.

Ara que la part de l’impressora ja està completament reduïda i saquejada, passem a l’escàner. Així és com es veu el “llit”.

102_0026

Us juro que el vidre ja estava trencat, la massa que es veu a la dreta no hi ha tingut res a veure!

Això no té cap secret, un motor amb un eix i una corretja per fer el moviment del carro amunt i avall. I, dins el propi carro, hi ha d’haver una colla de coses indispensables: un CCFL amb el seu inversor per il·luminar el paper; una colla de miralls òptics per dirigir la llum al sensor, a través d’una lent; i el propi sensor, muntat damunt d’una placa amb uns quants components més sense massa importància. A veure si m’equivoco gaire.

Desmuntar l’eix de la carcassa de plàstic és un afer trivial. Allibero el carro de la corretja i el trec sencer. Per poder girar millor, a l’extrem oposat de l’eix hi té una roda. Una manera econòmica d’estalviar un segon eix a l’altre costat. Torno a muntar el conjunt de l’eix, i així es queda.

102_0027

L’eix me’l guardo sencer, amb motor, reductor i corretja. Ja estic tenint idees de què fer-ne…

Ara anem a veure el carro. És molt compacte, segur que hi tindrem uns minuts d’entreteniment, aquí.

102_0029

Per aquesta cara ja podeu veure el CCFL, en aquest cas ben protegit dins un perfil d’alumini.
102_0030A l’altra cara veiem la placa del sensor i, darrera, l’inversor pel CCFL. És la placa que porta el transformador i els components grossos.
102_0032Desmuntant la primera tapa del carro ja en podem alliberar el CCFL i l’inversor. Això millor ho guardo tot junt.
102_0033Un detall de la placa del sensor. No es veu perquè es troba a l’altre costat, mirant cap endins. A sobre podeu observar que un dels miralls està trencat.

Acabar de desmuntar el carro és molt fàcil. Només cal deixar anar una mena de pinces que van aguantant tots els miralls al seu lloc. La placa del sensor s’aguanta amb cargols, i la lent s’extreu a pressió, només està fixada al plàstic amb una mica de cola. Això és el que ha acabat sortint.

102_0034

Aquest és el botí de la part de l’escàner. A dalt podeu veure el sensor, que és molt bonic però no em servirà per a res.

Per últim, com no podia ser d’una altra manera, falta el “bodegó”, és a dir, la foto amb tot el material que he recuperat ben posadet. En aquest cas en puc estar ben content. Tal com m’imaginava, desmuntar una impressora multifunció és com fer una autòpsia a una impressora i a un escàner, tot alhora.

102_0038

Tot això és el que se’n va a la caixa, a punt per ser utilitzat en algun projecte!

Bé, poca cosa queda més a dir d’aquesta HP OfficeJet. Només portar-ne les restes a la deixalleria perquè les reciclin, i se’n puguin fer més impressores…

Fins a la propera!

El mòdul del xip L298

Si voleu controlar motors de corrent contínua de baixa potència des d’un microcontrolador o circuit lògic, us farà falta un transistor potent, un mosfet, un darlington, o uns quants de cada. Si el que voleu és que aquests motors vagin endavant i enrere, com per exemple per controlar el moviment d’un cotxe ràdio-controlat o un robot, necessitareu muntar un circuit que es diu “pont en H”. I si el que voleu és tenir tot això integrat en un sol xip que ho té tot controlat, tard o d’hora anireu a parar a l’L298. Aquest integrat és un clàssic entre els constructors de robots d’arreu del món des de fa molt de temps, i no per res, sinó perquè és senzill, barat, robust, i fiable. I a més es troba en format “thru-hole”, el preferit dels aficionats!

dibuix L298N

Anem a veure què fa aquest xip, i com ho fa. El títol del datasheet és “Dual full-bridge driver”, que vindria a voler dir que hi ha dos ponts en H que subministren corrent, si fa no fa. Només cal veure l’esquema intern (“block diagram”) per identificar de seguida els dos ponts, tal com els heu vist a l’enllaç que us he posat de la viquipèdia (Com? Que no ho heu llegit?). A partir d’aquí es tracta de veure quina és la capacitat màxima de l’integrat, sobretot quant a tensió i corrent, ja que els motors, per petits que siguin, s’enfilen de seguida en aquests paràmetres.

Diu la fulla de dades que la tensió màxima que pot controlar l’L298 són 46V, que no és pas poc. La corrent pot arribar a 4A, de manera que amb aquest animalet podem moure motors força importants. Però això no vol dir que podem fer el que volem per sota d’aquests màxims, hi ha altres coses que hem de tenir en compte. Si llegim una mica més avall, veiem que els 4 ampers que dèiem fa uns moments són en realitat 2 per canal, que podem sobrepassar només durant períodes molt curts de temps. I també hem de tenir en compte la potència màxima que dissiparà el xip, 25W. Però aquesta dada porta implícita una condició, la temperatura no pot superar un cert valor. Per això és important que aquests xips portin als nostres muntatges radiadors per mantenir-se freds. Ara no entraré en càlculs ni en teories perquè no és el propòsit d’aquest post ni d’aquest blog, però feu-me cas, quan feu muntatges amb molta potència, tingueu en compte que la temperatura sempre és un factor limitant: és el que al final acaba fregint els components!

Des del punt de vista de l’ús que li podem donar a l’L298, aquests dos ponts H que hi ha integrats al xip es poden fer servir per diverses coses. La més evident és controlar dos motors alhora, però també es poden controlar solenoides, motors pas a pas, i tot el que se’ns acudeixi.

Suposem que us ha agradat aquest xip i el voleu provar, quina seria la manera més senzilla? Doncs comprant un mòdul, és clar! Que no recordeu el meu post al respecte? Us ho recordaré, doncs: es tracta de buscar “L298N module” a l’ebay o l’aliexpress, cercar per tot el món, ordenar per preu i transport, i finalment trobar una cosa com aquesta:

pantalla mòdul L298N ebay

En veureu molts, però no us espanteu que quasi tots són idèntics. Jo per posar la foto aquí n’he triat un a l’atzar; com podeu veure, per menys de tres dòlars ja el tens (2,18€ al canvi d’ara mateix), i a més te l’envien a casa des de l’altra banda del món. He mirat als distribuïdors habituals què em costaria només el xip, aquests són els resultats. Digikey: 3,77€. Farnell: 4,95€. Mouser: 3,74€. Cap d’ells inclou el transport, és clar. Quincalla xinesa, recordeu?

Al final jo en vaig comprar un altre, d’un proveïdor que ja li he comprat altres coses i és ràpid i fiable. Us poso un PDF amb totes les característiques que hi havia a la pàgina de l’article. Si us ho mireu, veureu que l’esquema d’aquest mòdul no deixa de ser el que recomana el datasheet del xip (figura 6, només es representa la meitat del circuit) amb alguns afegits. La part fonamental és el xip L298N en un encapsulat “multiwatt” (que és el que dóna la “N” al final del nom) que dissipa molta potència, junt amb el seu radiador d’alumini negre reglamentari; els vuit diodes recomanats, i connexions per les entrades i sortides. Com a extres hi ha un regulador a 5V amb els seus condensadors i un led indicador, per si volem alimentar el circuit lògic aprofitant la tensió que farem servir pels motors. Hi ha dos “jumpers” o ponts per connectar o desconnectar les potes que permeten els moviments de cada motor, això no cal ni tocar-ho. L’entrada d’alimentació dels motors, que són dos borns (massa i positiu), i un de sortida pels 5V del regulador que ja he esmentat (la massa o GND és comú a l’alimentació dels motors). La resta són dos borns de dos pols cadascun, un per a cada motor, que es troben a cada banda de la placa del mòdul. Tot seguit us explico com ho he cablejat tot plegat, mireu-vos primer les fotos.

tot el conjunt

el boarduino al protoboard el cablejat del mòdul

Com podeu veure, he posat un motor DC a cada born de sortida del mòdul, que podré controlar individualment. Aquests motors provenen de dues impressores de tinta HP que vaig tenir al marbre d’autòpsies fa un temps. Com que no en tinc les característiques, els he provat abans. Sembla que poden anar bé fins a 24V, però no cal forçar-los tant, a més la meva font d’alimentació casolana no puja tan amunt. Els he provat a 12V, que a més de ser un valor molt habitual sembla una tensió segura pels motors. En buit (deixant-los rodar lliurement sense cap càrrega a l’eix) consumeixen uns 60mA. Si intento frenar l’eix amb els dits, provocant fregament, aquesta corrent puja de seguida a uns quants centenars de miliampers. Si freno completament l’eix del motor, la corrent que demana a la font és d’uns 900mA, quasi un amper. Sembla que en tot moment ens trobarem dins els límits segurs del mòdul i de la font (bé, si freno els dos motors alhora no, la font dóna 1,5A com a molt).

Els 12V que surten de la font d’alimentació van directament al mòdul dels motors. A la sortida del regulador del mòdul, que dóna 5V, hi he penjat el meu fidel Boarduino, que faré servir per aquesta prova. Entre l’Arduino i el mòdul de l’L298N hi he posat un cable amb quatre pins, un per cada entrada, que he hagut de fer a mida: una mica de cable pla multifilar que no recordo d’on va sortir, un connector femella tallat a mida (i ben llimat, que l’espai al mòdul és molt just per culpa dels jumpers) i una mica d’estany i tub retràctil. La connexió al protoboard ha estat un moment: els pins que controlaran els motors seran del 8 a l’11, la sortida del regulador del mòdul va al pin “5V” de l’Arduino, i he unit les masses (GND). Finalment és hora de fer un petit programa amb l’IDE de l’Arduino per a provar-ho.

// dosmotors.ino
// escrit per serkeros (serkeros.wordpress.com)
// febrer 2014
// llicencia -> creativecommons.org/licenses/by-nc/3.0

void setup()
{
  pinMode (8,  OUTPUT);     // establir els pins com a sortida
  pinMode (9,  OUTPUT);
  pinMode (10, OUTPUT);
  pinMode (11, OUTPUT);

  digitalWrite (8,  LOW);   // començar amb els dos motors parats
  digitalWrite (9,  LOW);
  digitalWrite (10, LOW);
  digitalWrite (11, LOW);
}

void loop()
{
  digitalWrite (8,  HIGH);  // engegar motor esquerre
  delay(1000);              // esperar un segon
  digitalWrite (8,  LOW);   // parar motor esquerre
  digitalWrite (10, HIGH);  // engegar motor dret
  delay(1000);
  digitalWrite (10, LOW);   // parar motor dret
  delay(1000);
  digitalWrite (9,  HIGH);  // engegar motor esquerre al reves
  delay(1000);
  digitalWrite (9,  LOW);   // parar motor esquerre
  digitalWrite (11, HIGH);  // engegar motor dret al reves
  delay(1000);
  digitalWrite (11, LOW);   // parar motor dret
  delay(1000);
  digitalWrite (8, HIGH);   // engegar tots dos motors alhora
  digitalWrite (10, HIGH);
  delay(1000);
  digitalWrite (8, LOW);    // parar els dos motors
  digitalWrite (10, LOW);
  delay(1000);
  digitalWrite (9, HIGH);   // engegar tots dos motors al reves alhora
  digitalWrite (11, HIGH);
  delay(1000);
  digitalWrite (9, LOW);    // parar els dos motors
  digitalWrite (11, LOW);
  delay(1000);
}

Si llegiu el codi font us adonareu que no m’hi he trencat el cap: engegar un motor endavant, després l’altre, després al revés, els dos alhora… Ben senzill, però ja veieu que funciona. Ara imagineu una roda a cada motor i ja teniu el sistema locomotor del vostre primer robot. Fàcil, oi?

Una altra cosa seria que volguéssim controlar la velocitat de gir dels motors, això ja és una mica més complicat, tot i que amb l’Arduino no us penseu que gaire. La manera més fàcil de fer-ho, contra el que pugui semblar, no és regular la tensió als motors; és fer servir impulsos d’amplada controlada, o PWM en anglès. Si no sabeu de què va això del PWM millor que us llegiu l’article de la viquipèdia, però si us fa mandra us en faig un resum ràpid. Es tracta d’un senyal digital (uns i zeros) a una freqüència fixa (ara mateix no importa massa quina, però prou ràpida), dins la qual la proporció de temps de 0 i 1 es pot variar. D’aquesta manera, si és tot zero (0%) el motor està parat; i si és tot 1 (100%) el motor funciona al màxim. La gràcia però és que podem triar qualsevol estat intermig (per exemple, el 50%, en la que hi hauria la mateixa estona de 1 i de 0, o el 75% on hi hauria tres temps d’1 per cada temps de 0). En l’entorn Arduino és molt fàcil implementar el PWM, com ja he dit, només heu de llegir el funcionament de l’ordre “analogWrite”. En essència, el nostre PWM té 8 bits de resolució (podem donar valors de 0 a 255, més precisió que 0,5%). Mireu-vos aquest codi que he escrit i el resultat que ha tingut als motors. Adoneu-vos que hi ha hagut un petit canvi al hardware; com que no tots els pins de l’Arduino poden donar una sortida PWM, he canviat les connexions. Ara un motor es controla pels pins 5 i 6 (abans el feia anar amb el 8 i el 9), mentre que l’altre segueix amb els pins 10 i 11.

canvis al cablejat

// dosmotors_pwm.ino
// escrit per serkeros (serkeros.wordpress.com)
// febrer 2014
// llicencia -> creativecommons.org/licenses/by-nc/3.0

void setup()
{
  pinMode (5,  OUTPUT);              // establir els pins com a sortida
  pinMode (6,  OUTPUT);
  pinMode (10, OUTPUT);
  pinMode (11, OUTPUT);

  digitalWrite (5,  LOW);            // començar amb els dos motors parats
  digitalWrite (6,  LOW);
  digitalWrite (10, LOW);
  digitalWrite (11, LOW);
}

void loop()
{ int gas;                           // variable on posarem el valor del PWM

  for (gas = 255 ; gas > 0 ; gas--)  // motor esquerre de gas a fons a parat
    {  analogWrite (5, gas);
       delay(20);
    }
  digitalWrite (5,  LOW);            // parar del tot el motor esquerre
  delay(2000);                       // espera dos segons
  for (gas = 255 ; gas > 0 ; gas--)  // ara el mateix en sentit contrari
    {  analogWrite (6, gas);
       delay(20);
    }
  digitalWrite (6, LOW);             // parar del tot el motor esquerre  
  delay(2000);
  
  for (gas = 255 ; gas > 0 ; gas--)  // ara el mateix amb el motor dret
    {  analogWrite (10, gas);
       delay(20);
    }
  digitalWrite (10,  LOW);
  delay(2000);
  for (gas = 255 ; gas > 0 ; gas--)
    {  analogWrite (11, gas);
       delay(20);
    }
  digitalWrite (11, LOW); 
  delay(2000); 
}

Bé, ja veieu que és ben útil, aquest xip; i amb aquest mòdul, resulta molt fàcil incorporar-lo als vostres invents. Jo per part meva en penso encarregar algun més, ja que són molt útils i ràpids d’aplicar. Em faltaria explicar-vos com utilitzar-lo per a controlar un motor pas a pas, però aquestes bestioles ja són figues d’un altre paner i ara no em vull enrotllar més. Ho deixem per un altre dia, d’acord? De moment podeu trobar totes les fotos penjades al flickr, com sempre. A reveure!