[PYTHON] Automatisches Hardware-Design-Tool für Web-Programmierer Mille-Feuille-Programm Edition

Von der Testproduktion mit einer Mille-Feuille-Platte bis zur Massenproduktion in kleinen Mengen kann das gleiche Programm wie durch einfaches Ersetzen der automatisch generierten Verdrahtungsinformationsdatei ausgeführt werden. Ich werde erklären, wie man tatsächlich ein Programm an die Milfille-Tafel schreibt.

Wie schreibe ich ein Programm?

Wie schreibt man das Programm nach dem Zusammenbau von Milfille? Ich werde die Verwendung der einfachsten AD2ch-Geräteplatine erklären.

AD2chTest.py


#!/usr/bin/python

from mil import mil
from mil import milMod
from mil import p

from mil import AD2ch

import time

if __name__=='__main__':
	try:
		mil.init()
		modA = milMod.milMod(AD2ch.getInfo(0))	#connector number 0

		while(1):
			modA.connect()
			returnData = AD2ch.read(modA,0)
			print "AD 0ch = ",returnData
			returnData = AD2ch.read(modA,1)
			print "AD 1ch = ",returnData
			modA.disconnect()
			time.sleep(1)

	except KeyboardInterrupt:
		print("detect key interrupt [ctrl]+ [C] \n")

	mil.cleanup()
	AD2ch.cleanup()

1. Zunächst Routinearbeiten

Importieren Sie zunächst die erforderlichen Bibliotheken. Die Bibliothek wird später veröffentlicht.

python


from mil import mil
from mil import milMod
from mil import p

Importieren Sie die Gerätebibliothek

python


from mil import AD2ch

Andere importieren bei Bedarf

python


import time

Haupt definieren

python


if __name__=='__main__':

try-exception setzt die Verarbeitung, wenn eine Ausnahmeverarbeitung auftritt. Insbesondere wird der E / A-Status bereinigt, nachdem das Programm mit Strg + c zwangsweise gestoppt wurde. Es wird empfohlen, aufzuräumen.

python


try:
...
except KeyboardInterrupt:

2, Initialisierung und Instanziierung

Grundsätzlich E / A bei der Initialisierung einstellen.

python


mil.init()

Instanzgenerierung

python


modA = milMod.milMod(AD2ch.getInfo(0))

AD2ch-Geräteinformationen (Geräteadresse, Verkabelungsinformationen der Geräteplatine usw.) sind dieser Instanz zugeordnet. Der Instanzname ist beliebig. Auf der Milfille-Fußleiste befinden sich vier Anschlüsse. Bitte geben Sie an, an welchen der Anschlüsse Sie angeschlossen haben. Sie können bis zu vier Gerätekarten des gleichen Typs anschließen. Nur für I2C-Geräte wird die I2C-Adresse vom Hersteller festgelegt, sodass einige Geräteplatinen nur eine verwenden können.

HardAll.jpg

3, automatische Verkabelung und Geräteplatinenbetrieb

Verdrahtet die Geräteplatine automatisch. Normalerweise wird die manuelle Verkabelung automatisiert.

python


modA.connect()

Beim Trennen

python


modA.disconnect()

Durch Einbeziehen der Instanz in das Argument und Übergeben an die Funktion der Bibliothek werden die Verdrahtungsinformationen erfasst und automatisch bestimmt, welche E / A verschoben werden sollen, um die Geräteplatine zu verschieben.

python


returnData = AD2ch.read(modA,0)

Hier werden die Daten des 0. Kanals von AD erfasst.

4, Firmware nach automatischer Schaltplangerzeugung

Nachdem Sie das Programm geschrieben und die Testproduktion abgeschlossen haben, erstellen wir einen Schaltplan. Informationen zum Generieren finden Sie im vorherigen Artikel. http://qiita.com/my_mil_info/items/ac484c96c867c1b3e702

Wenn der Schaltplan automatisch generiert wird, wird auch die Firmware automatisch gemäß dem Schaltplan generiert. Diese Firmware ist die "Verdrahtungsdaten (wiringdata.py)" und die Verdrahtungsdatei, auf die Sie beim Erstellen einer Instanz verweisen. Wenn Sie dies durch die automatisch generierte Firmware mit demselben Namen (wiringdata.py) ersetzen, können Sie das mit Milfille prototypisierte Programm so verwenden, wie es sich in der automatisch generierten Schaltung befindet.

Recommended Posts

Automatisches Hardware-Design-Tool für Web-Programmierer Mille-Feuille-Programm Edition
Automatisches Hardware-Design-Tool für Web-Programmierer Mille-Feuille-Hardware-Mechanismus
Automatisches Hardware-Design-Tool für Web-Programmierer mille-feuille-Was ist ein Tool zur automatischen Erstellung von Schaltplänen?
Hardware für Webprogrammierer mille-feuille Support-Tools für Raspberry Pi
[Python] Webanwendungsdesign für maschinelles Lernen