Oprogramowanie inżynierskie :: Środowiska symulacyjne :: GEDA i PCB :: Porady użytkowe :: Współpraca między gschem i pcb - gsch2pcb :: Konfiguracja i dodawanie własnych symboli :: Nazwy częściej stosowanych footprint'ów :: Tekstowe poprawianie plików :: Linki :: QCad :: Dia i różne schematy :: GnuPlot

Programy dla elektronika, elektryka itp.

Na stronie tej zamieszczam informacje dotyczące korzystania z wolnych programów przydatnych w elektronice, elektryce itp. Ich (zapewne niepełną) listę znależść moża w spisie oprogramowania

Oprogramowanie inżynierskie

Środowiska symulacyjne

Do najpopularniejszych środowisk symulacji układów elektronicznych należy SPCICE. Niejako jego klonem jest GnuCAP, które w dużym stopniu jest zgodny na poziomie składni plików opisujących układ i symulację, jednak występują tu pewne rozbieżności. Zamieszczam demonstracyjny plik z opisem symulacji zgodny z obydwoma tymi symulatorami.

Środowiska symulacyjne/obliczeniowe są używane także w technice cyfrowej. Zamieszam także skrypt do plików PLA (z liczbą wyjść równą 1) dla podanej formuły boolowskiej - expr2pla.sh

Innym, aczkolwiek dopiero raczkującym (za to dość przyjemnym) środowiskiem jest Ktechlab, tutaj także zamieszczam przykładowy plik dla tego środowiska.

GEDA i PCB

Jest to zestaw oprogramowania służącego do tworzenia schematów elektronicznych (gschem) oraz projektów płytek drukowanych (pcb).

Porady użytkowe

Na wstępie kilka użytecznych skrótów klawiaturowych w PCB:

W gschem występujądwa atrybuty o podobnych nazwach - "netname" oraz "net". Warto wiedzieć że pierwszy z nich służy do nazywania danego drutu i umożliwia łączenie poprzez nazwy czy też tworzenie magistral (bus). Drugi jest postaci "nazwa:pin" i służy do powiedzenia że do danego pinu podłączony (wirtualny) drucik o wskazanej nazwie. Umożliwia to nadpisanie domyślnych podłączeń w układach (gnd, vcc, itp) a także stworzenie jedno-pinowego elementu który będzie podłączał się do wskazanej w atrybucie net sieci.

Współpraca między gschem i pcb - gsch2pcb

Istnieje możliwość wygenerowania na podstawie schematu programu gschem (z pakietu gEDA) materiału wejściowego dla projektowania płytki w pcb. Aby to zrobić w trakcie edycji schematu (lub po niej) zainteresować powinniśmy się atrybutem "footprint" odpowiedzialnym za przechowywanie informacji jaki element PCB odpowiada temu symbolowi. Poniżej prezentuję listę najistotniejszych footprint'ów.

Gdy skończymy uzupełnianie naszego schematu powinniśmy wygenerować na jego podstawie plik *.pcb oraz *.net - posłuży do tego program gsch2pcb. Później otwieramy nasz plik w programie pcb i ładujemy odpowiedni plik *.net (File -> Load netlist file). Następnie możemy już układać naszą płytkę (na poczatku warto skorzystać z opcji która rozsunie elementy po płytce - wybieramy Select -> Disperse all elements), aby odświeżyć mapę połączeń wciskamy O (lub wybieramy Connects -> Optimze rasts-net).

W przypadku gdy zaktualizowaliśmy schemat i chcemy także poprawić projekt płytki należy ponownie wywołać (na tym samym pliku) gsch2pcb i postąpić zgodnie z wypisanymi przez niego instrukcjami czyli wkleić nowododane elementy oraz zaktualizować mapę połączeń. Warto pamiętać także o możliwości wygenerowania tylko odświeżonej listy połączeń (netlist) przy pomocy gnetlist -g PCB plik.sch, a także o xgsch2pcb automatyzującym opisany tu proces (wygodne przy równoczesnej pracy nad schematem i pcb).

Jeżeli kożystamy z footprintów przechowywanych w ~/.pcb/elements/ warto do ~/.bashrc dodać:

	function gsch2pcb() {
		command gsch2pcb $(for f in ~/.pcb/elements/*; do echo -d $f; done) "$@"
	}

Przy drukowaniu (eksporcie) projektów z pcb warto zwrócić uwagę na ustawienia grup warstw (menu "file - preferences", zakładka "layers - group"), można również wyłączyć niepotrzeebne nam elementy wydruku w menu wydruku/eksportu.

Hierarchiczne schematy

W gschem możliwe jest wstawianie pod-schematów jako elementów na schemacie. Ułatwia to projektowanie dużych i powtarzalnych układów. Wymaga to dodania do pliku konfiguracyjnego ~/.gEDA/commonrc wpisu:

(component-library ".")
(source-library  ".")

W schemacie podukładu umieszczamy elementy "in-1" lub "out-1" z odpowiednio ustawionym atrybutem rdefs (będzie to nazwa pinu symbolu wstawionego do głównego schematu. Następnie tworzymy (niestety trzeba to zrobić ręcznie) symbol takiego komponentu, pamiętając o umieszczeniu atrybutu source wskazującego na plik zawierający schemat podukładu oraz umieszczeniu pinów z odpowiednim atrybutem pinlabel (zgodnym z rdefs elementów "in-1" lub "out-1" w schemacie). Tak przygotowany symbol możemy wykorzystać w schemacie głównym, a używając menu kontekstowego na nim możemy przechodzić do edycji pod-schematu. Zamieszczam skrypt ułatwiający generowanie PCB głównego układu w oparciu o PCB zaprojektowane dla pod-schematów: gsch2pcb-gen_sub_pcb.sh.

Konfiguracja i dodawanie własnych symboli

Warto zwrócić uwagę na pliki konfiguracyjne pakietu gEDA - pliki w ~/.gEDA/ stanowią uzupełnienie plików ogólnosystemowych z /etc/gEDA/, na szczególną uwagę zasługuje commonrc (i gafrc - polecam zrobić dowiązanie do commonrc) gdzie możemy dodać katalogi do biblioteki symboli (także te wycołane przez autorów - zakomentowane w plikach ogólnosystemowych - polecam w szczególności (component-library "${GEDADATA}/sym/verilog")), a także gschemrc gdzie możemy m.in. zmienić wariant kolorystyczny programu. Więcej szczegółów znaleźć można w plikach ogólnosystemowych.

Dodatkowe elementy m4 dla pcb (gsch2pcb) możemy umieszczać w pliku ~/.pcb/pcb.inc. W nowszych wersjach gsch2pcb nie kożysta z pliku ~/.pcb/pcb.inc, zamiast tego można używa np. user-config.inc, warto zatem zsymlinkować te pliki.

Zamieszczam plik pcb.inc z elementami których mi brakowało (złącza śróbkowe z rastrem 3.5 mm oraz 5mm, przekaźniki z serii RM85, mostek leżący i zmodyfikowane obudowy tranzystorowe TO92, TO220 z możliwością podania nazw pinów, zgodnych z nazwami na symbolu gschem, w kolejności występowania na obudowie; TO220 także w wersji z środkową nóżką wysuniętą w drugą stronę).

Przygotowałem także zbiór symboli (w formie rozpakowanej) dla gschem (jfet, p-mosfet, transoptor, optotriak, max485-1, przekaznik, przekaznik dwusekcyjny, przekaznik bistabilny) oraz archiwum (w formie rozpakowanej) z dodatkowymi (nie dodanymi do pcb.inc) elementami dla pcb.

W skład wspomnianego zbioru symboli dla gschem wchodzi biblioteka symboli elektrycznych:
POWIĘKSZelementy mojej biblioteki symboli elektrycznych (+ standardowy symbol bezpiecznika)

Zachęcam także do korzystania z repozytorium symboli na gedasymbols.org.

Nazwy częściej stosowanych footprint'ów

W nawiasach klamrowych podano nazwy plików w których zdefiniowane są elementy. Wiele z elementów ma krótsze aliasy zdefiniowane w geda.inc. Zamieszczam także zbiór plików (w formie rozpakowanej) prezentujących graficznie elementy pcb, wraz z skryptem do ich generowania.

Tekstowe poprawianie plików

Jako że pliki zarówno gschem, jak i pcb są plikami tekstowymi możemy do ich edycji wykorzystywać także zwykły edytor tekstowy. Jest to przydatne m.in. gdy chcemy aby niektóre z ścieżek zlewały się z wielokątami a inne nie wówczas w pliku pcb dla ścieżek które mają być izolowane od wielokątów ustawiamy ostatni parametr na 0x00000020 a dla tych co maja być połączone na 0x00000000 dwa wcześniejsze parametry odpowiadają za szerokość izolacji (przedostatni i jest to podwojona wartość) oraz szerokość ścieżki (jeszcze wcześniejszy). Uwaga: przed taką edycją warto zrobić kopię zapasową - w szczególności ostatni parametr odpowiada nie tylko za łączenie ścieżek z wielokątami.

Do szybkiej edycji wielu plików, możemy posłużyć się skryptami - np.:
awk 'BEGIN {FS="="; FIND="device"} $1!=FIND && last!="" {print last} {last=""} $1!=FIND {last=$0}' > OUT.sch < IN.sch (usunięcie atrybutu device z wszystkich elementów w pliku),
find -name '*.sch' -o -name '*.pcb' | while read f; do sed 's#TO220STAND#TO220STAND_WIDE#g' < "$f" > /tmp/zam; mv -f /tmp/zam "$f"; done (zamienia wszystkie elementy TO220STAND na TO220STAND_WIDE).

Podobne skrypty mogą posłużyć sprawdzeniu jakich elementów używaliśmy:
find -name '*.sch' -exec cat \{\} \; | grep '^C' | cut -f7 -d' ' | sort | uniq (użyte elementy gschem),
find -name '*.sch' -exec cat \{\} \; | grep '^footprint=' | cut -f2 -d'=' | cut -f1 -d' ' | sort | uniq (użyte footprint'y).

Warto tu także wspomnieć o refdes_renum nadającym nieponumerowanym elementom (mającym zamiast numeru ?) unikalne numery.

Niekiedy możemy natrafić na problem z nazewnictwem połączeń tranzystorów - zamiast cyfr użyte mogą być oznaczenia literowe C,E,B; aby temu zaradzić zastosować można taki skrypt awk'owy który zamieni oznaczenia:

gawk '{
	$0=gensub("T([1-9]+)-E","T\\1-1","g");
	$0=gensub("T([1-9]+)-B","T\\1-2","g");
	$0=gensub("T([1-9]+)-C","T\\1-3","g");
	print $0;
}' OLD.net > NEW.net

Zamieszczam również 3 skrypty służące do przetwarzania plików *.sch i*.pcb:

Linki

Zobacz w Sieci: gEDA, PCB, Using gEDA (w LinuxFocus)kopia lokalna

QCad

Jest to całkiem przyjemny program typu CAD, służący do tworzenia rysunków technicznych takich jak projekty architektoniczne (np. rzuty pięter), projekty elementów mechanicznych, schematy instalacji elektrycznych, czy nawet schematy elektroniczne lub blokowe (aczkolwiek tu lepiej u żyć bardziej specjalistycznego oprogramowania).

Przy drukowaniu projektów warto szczególną uwagę zwrócić na rozmiar papieru zdefiniowanych w właściwościach bieżącego rysunku (menu edycja) - to ona odpowiada za wielkość kartki którą przykładamy na podglądzie wydruku.

Przedstawiam także zestaw symboli, mojego autorstwa, przydatnych przy projektowaniu instalacji i rozdzielnic elektrycznych - qcad-elektryczne.tgz (w formie rozpakowanej)

Dia i różne schematy

Jest to całkiem program do tworzenia diagramów i schematów. Umożliwia tworzenie m.in:

Ponadto dzięki bliskości formatu dia do svg narzędzie to ładnie współpracuje z inkscape (możemy go użyć np. do przygotowywania elementów używanych w dia), a także umożliwia eksport do tego formatu. Główną niedogodnością w dia jest brak możliwości swobodnego obracania elementów.

Możemy instalować także w ~/.dia/ dodatkowe "shape" do tego programu, trochę gotowych znaleźć można na Dia Shape Repository, Shapes for Dia (te i nie tylko w formie paczki deb). Poprzez edycję pliku konfiguracyjnego ~/.dia/sheets/Assorted.sheet możemy ustalać zawartość grupy "Mieszane" (wyróżnia się tym iż zawsze jest na górze menu) - przykład.

Zamieszczm także skrypt do automatycznej konwersji schematów dia na pliki w formatach pdf i png - dia2pdf.sh

GnuPlot

Zamieszam też przykładowy skrypt gnuplot-owy obrazujący zagadnienia mocy czynnej, biernej i tangensa fi.

Zobacz w Sieci: Quick Reference Card for gnuplot - kilkustronicowa broszurka z najważniejszymi poleceniami, Wstęp do gnuplota, Gnuplot Manualkopia lokalna - oficjalny podręcznik [en], LaTeX and the Gnuplot Plotting Program



Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/usage_and_config/toolbox4electronic/soft4electronic) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2015-10-10 11:32:41 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).