====== Appunti Fritzing ====== ===== Utilizzare oggetti (parts) contribuiti da terzi ===== Fritzing include una buona collezione di oggetti (parts) da includere nei propri progetti, questi vengono distribuiti nel pacchetto Debian **fritzing-parts**. Oltre alla **breadboard** generica per il cablaggio possiamo trovare componenti generici (**resistenze**, **condensatori**, ecc.) o specifici **[[wp>Printed_circuit_board|breakout]]** più o meno famosi (es. sensori di pressione, accelerometri, ecc.). Nel pacchetto ci sono anche gli schemi di oggetti più complessi, come vari modelli di **Raspberry Pi** o di **Arduino**. **ATTENZIONE**: In Debian si deve eseguire **Fritzing** (con la F maiuscola) che provvede a cambiare directory corrente in **/usr/share/fritzing/parts/** in modo da trovare tutti gli oggetti disponibili. Altrimenti si ricevono numerosi messaggi di errore del tipo **Unable to find the following parts**. Nella schermata di Fritzing gli oggetti sono visualizzati in alto a sinistra, raggruppati in **//CORE//**, **//CONTRIB//** e altre categorie specifiche. La categoria **//MINE//** è invece inizialmente vuota. È possibile trovare in rete diversi oggetti che non sono compresi nel pacchetto ufficiale, distribuiti come archivi **.fzz** (si tratta in effetti di archivi ZIP). Per poterli utilizzare nei propri progetti occorre: * Salvare l'archivio sul proprio computer. * Da Fritzing scegliere il menu //File//, **//Open...//** e indicare l'archivio **.fzz** in questione. * L'oggetto viene aperto nella categoria speciale **TEMP**, da questa è possibile trascinarlo in **MINE**. * È possibile **aggiungere** l'oggetto al **progetto** corrente. Al termine della sessione verrà chiesto se si desidera **mantenere l'oggetto importato** e se si desidera salvare il **bin** (contenitore) **My Parts**. In caso affermativo verrà creato un archivio **.fzp** o **.fzz** in **$HOME/Documents/Fritzing/parts/user/** (quando invece viene usata **$HOME/Documents/Fritzing/parts/contrib/**?) e viene aggiornato il file **$HOME/Documents/Fritzing/bins/my_parts.fzb**. ===== Creare un nuovo oggetto (part) ===== Se si vuole creare un oggetto di nome ELEMENTO, si devono preparare tre disegni (es. con Inkscape): * **ELEMENTO_breadboard.svg** disegno per creare lo schema dei collegamenti sulla //[[wpit>breadboard]]// * **ELEMENTO_pcb.svg** impronta dei contatti elettrici dell'elemento nel circuito stampato * **ELEMENTO_schematic.svg** disegno utilizzato nello schema elettrico * **ELEMENTO_icon.svg** icona per identificare l'oggetto nella libreria Per la //icon// è prassi diffusa utilizzare lo stesso disegno della breadboard. Dal sito di Fritzing è possibie scaricare il file **fontsandtemplates.zip** con degli esempi. Quando si disegna il [[wpit>Circuito_stampato|PCB]], va realizzato **visto da sopra**, cioè visto dal lato componenti elettronici, anche se si tratta di un circuito a singolo strato, cioè con il lato rame solo "sotto". ==== Istruzioni Inkscape ==== * Impostare le **dimensioni** a **mm**. * Nella barra della **posizione** e **dimensione** digitare i valori in mm. * **Raggruppare** eventualmente con //Object//, //Group//. * **Dimensione del disegno**: //File//, //Document Properties//, //Margin// 0.0 mm, //Resize page to drawing or section// (anche un leggero margine va bene). * Per posizionare gli oggetti **allineati** e correttamente **spaziati** usare la funzione //Object//, //Align and Distribute//. * Usare il **font OCRA** (estrarre il file .ttf da fontsandtemplates.zip e copiarlo in ''$HOME/.fonts/''). * Usare il **colore** **#F7BD13** per il rame e nero **#000000** per le serigrafie. * Quando si disegna lo schema PCB di un componente si deve creare il layer **silkscreen** (la serigrafia da stampare lato componenti) e il layer **copper0** che contiene a sua volta il layer **copper1**. Vedere il file di esempio ''PCBViewGraphic_Template.svg''. Il formato SVG in realtà non ha il concetto di //layer// bensì quello di //gruppo//. Con Inkscape non si riesce a creare un gruppo dentro ad un altro e soprattutto non si riesce ad **impostare il tag //id//** come richiesto da Fritzing. Si riesce solo a creare gruppi diversi e ad impostare il tag //name//. Si dovrà quindi editare il file SVG risultante per organizzarlo in questo modo (sembra che la struttura del file SVG non venga danneggiata se si apre nuovamente il disegno con Inkscape): Gli elementi contenuti nel gruppo **copper0** saranno posizionati solo nello strato inferiore di rame (**bottom layer**). Gli elementi nel gruppo **copper1** - se la struttura è organizzata gerarchicamente come sopra - compaiono sia nello strato superiore che in quello inferiore (**top e bottom layers**). Questa è la condizione normale per i componenti che hanno i pin passanti: si ha il vantaggio di disegnare i pad di rame solo una volta e questi verranno replicati su entrambe le facce. Ovviamente se si produce un circuito con tecnologia a singolo layer, i pad superiori non saranno creati. Per i componenti di tipo **[[wpit>Surface_mount_technology|SMD]]** si dovrà procedere diversamente, perché richiedono i pad di rame solo da un lato del circuito. ==== Usare Fritzing per creare un nouvo componente ==== Per creare un nuovo oggetto di libreria: * Scegliere un oggetto, quindi click destro, "Edit Part". * Per ciascuna vista breadboard, schema e PCB: **importare il disegno SVG** fatto con Inkscape o in altro modo. Per la vista icona conviene riusare il disegno breadboard. * Definire i connettori. Oltre al nome e alla descrizione, indicare se sono di tipo maschio o femmina. Un connettore di tipo **maschio** viene **automaticamente inserito nella breadboard** se vi è posizionato sopra (si stabilisce il contatto elettrico). Per un connettore di tipo femmina inveve è necessario aggiungere un filo per collegarlo elettricamente. * Associare ciascun connettore all'elemento grafico nelle viste breadboard, schema e PCB. * Associale una label all'oggetto. La parte iniziale alfabetica verrà utilizzata per etichettare il componente nella vista PCB (e nel conseguente silkscreen). **ATTENZIONE**: I disegni fatti con Inkscape vengono importati in Fritzing con diversi problemi. Ad esempio: * Le **scritte ruotate** di 90 gradi non mantengono la dimensione voluta. * Anche se si usano solo i **font** Droid e OCRA, Fritzing genera un warning come se fossero utilizzati altri font. * Non si riesce a creare layer (gruppi) con **id=name**. Questo impedisce la corretta interpretazione da parte di Fritzing dei layer speciali **copper0**, **copper1** e **silkscreen**. ==== Usare Fritzing per progettare il PCB ==== **Suggerimento**: conviene creare un PCB doppio strato perché sembra che il costo di produzione sia lo stesso. Quando si disegna il PCB di un progetto bisogna considerare alcuni aspetti: * Bisogna decidere se il circuito sarà di tipo **one layer** (singolo strato, piste di rame solo sotto), oppure **two layers** (doppio strato, rame sopra e sotto). Questa ovviamente è la prima scelta da effettuare, cliccando sul PCB e impostandone le proprietà nel riquadro //Inspector//. Sembra che alcuni produttori di PCB non facciano differenza di prezzo tra i due tipi, almeno questo risulta dall'anteprima di prezzo mostrata da Fritzing quando si passa il mouse sul pulsante //Fabircate//. * Se il circuito è a **layer singolo** per risolvere gli "incroci" si utilizzano i **jumper item** forniti nella libreria standard, cioè ponticelli lato componenti. Questi oggetti vanno aggiunti nella vista PCB, non sono presenti nella vista breadboard. * Nei circuiti a **doppio strato** per risolvere gli incroci invece esistono i **[[wp>Via_(electronics)#In_PCB|punti di via]]**, cioè fori rivestiti internamente di conduttore che mettono in contatto il layer inferiore con quello superiore. La funzione di //auotroute// crea automaticamente i punti di via per risolvere gli incroci, altrimenti si possono creare manualmente, ad esempio con click destro su un //bending point// di una traccia. Nei circuiti a doppio strato **ciascuna traccia può essere spostata dal lato inferiore al superiore** e viceversa, con un click destro. Il layer superiore e inferiore sono mostrati con colori diversi e possono essere mostrati o nascosti indipendentemente agendo sul menu //View//. * Ogni oggetto posizionato nel PCB deve essere **posizionato lato //top// o //bottom//** del circuito stesso, agendo nel riquadro //Inspector//. Anche si si crea un PCB singolo layer, i //Gerber files// generati contengono l'//impronta rame// anche per la parte superiore, cioè si considera che i fori siano comunque rivestiti di materiale conduttore all'interno come i punti di via e abbiano un pad di rame sul lato superiore. FIXME: Fritzing come sa che si deve praticare i fori nei pad dei componenti? Basta che il layer rame abbia un foro? Altri fori esterni al circuito si possono aggiungere come elementi nella vista PCB. Menu View * Copper Bottom Layer * Silkscreen Top Layer ===== Link Web ===== * https://learn.sparkfun.com/tutorials/make-your-own-fritzing-parts * http://fritzing.org/fritzings-graphic-standards/download-fonts-and-templates * http://fritzing.org/fritzings-graphic-standards/ * http://fritzing.org/learning/tutorials/creating-custom-parts/providing-part-graphics/ * http://fritzing.org/learning/tutorials/designing-pcb/