A collection of integrated circuit libraries in pure Python
Project description
ADC78H89 is a A collection of integrated circuit libraries in pure Python.
Features
High-level integrated circuit usage.
Low-level integrated circuit usage.
Installation
pip install iclib
Usage
Below shows a sample usage of ADC78H89.
from iclib.adc78h89 import ADC78H89
from periphery import SPI
spi = SPI('/dev/spidev0.0', 3, 1e6)
adc78h89 = ADC78H89(spi)
voltages = adc78h89.sample_all()
print(voltages[ADC78H89.InputChannel.AIN1])
print(voltages[ADC78H89.InputChannel.GROUND])
Below shows a sample usage of MCP4161.
from iclib.mcp4161 import MCP4161
from periphery import SPI
spi = SPI('/dev/spidev0.0', 3, 1e6)
mcp4161 = MCP4161(spi)
mcp4161.set_wiper_step(123, True) # eeprom
mcp4161.set_wiper_step(123)
Below shows a sample usage of SN74HCS137.
from time import sleep
from unittest.mock import MagicMock
from periphery import GPIO
from iclib.sn78hcs137 import SN74HCS137
latch_enable_gpio = GPIO('/dev/gpiochip0', 0, 'out', inverted=True)
strobe_input_gpio = GPIO('/dev/gpiochip0', 1, 'out', inverted=True)
address_select_0_gpio = GPIO('/dev/gpiochip0', 2, 'out', inverted=False)
address_select_1_gpio = GPIO('/dev/gpiochip0', 3, 'out', inverted=False)
address_select_2_gpio = GPIO('/dev/gpiochip0', 4, 'out', inverted=False)
sn78hcs137 = SN74HCS137(
latch_enable_gpio,
MagicMock(),
strobe_input_gpio,
address_select_0_gpio,
address_select_1_gpio,
address_select_2_gpio,
)
sn78hcs137.select(SN74HCS137.Address.Y3)
sleep(1)
sn78hcs137.deselect()
Below shows a sample usage of NHD-C12864A1Z-FSW-FBW-HTT.
from time import sleep
from periphery import GPIO, SPI
from iclib.nhd_c12864a1z_fsw_fbw_htt import NHDC12864A1ZFSWFBWHTT
spi = SPI('/dev/spidev0.0', 3, 10e6)
a0 = GPIO('/dev/gpiochip0', 8, 'out')
not_reset = GPIO('/dev/gpiochip0', 9, 'out')
display = NHDC12864A1ZFSWFBWHTT(spi, a0, not_reset)
display.clear_screen()
display.draw_rect(0, 0, 127, 63)
display.set_font('dejavusans.ttf')
display.set_size(8, 14)
display.draw_word('Welcome to Blue Sky solar racing! 12345678910', 2, 2)
display.set_size(16, 16)
display.draw_word('@#$%*^', 1, int(driver.HEIGHT * 0.7))
display.display()
sleep(5)
display.clear_screen()
# Fill screen
for row in range(display.HEIGHT)
for col in range(display.WIDTH)
display.write_pixel(col, row)
display.display()
# Create checkerboard pattern
for row in range(display.HEIGHT)
for col in range(display.WIDTH)
if (row + col) % 2 == 1: # Checker pattern
display.clear_pixel(col, row)
Testing and Validation
ICLib has extensive test coverage, passes mypy static type checking with strict parameter, and has been validated through extensive use in real-life scenarios.
Contributing
Contributions are welcome! Please read our Contributing Guide for more information.
License
ICLib is distributed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file iclib-0.0.0.dev7.tar.gz
.
File metadata
- Download URL: iclib-0.0.0.dev7.tar.gz
- Upload date:
- Size: 25.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abfc6643d77bb30d7c8d0cd8224f9694146d97ff4bc4e371c389e05d442c8cb2 |
|
MD5 | 99c361fb6bbc9d2dc01a47ccef06a90d |
|
BLAKE2b-256 | 1b669be4776aab85da5665b4066674246990a7813cef278b0bdc5ddd62cfa7fb |
File details
Details for the file iclib-0.0.0.dev7-py3-none-any.whl
.
File metadata
- Download URL: iclib-0.0.0.dev7-py3-none-any.whl
- Upload date:
- Size: 30.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b414e3e0f4624a415b637e9b0dd819d9c4a9e988825190b8a3841ce93bbd101 |
|
MD5 | ccb107391f449b5ad3c0a7a68e5fa1e9 |
|
BLAKE2b-256 | 970fe9ad305b93184b3b4c64fe6c49d8b23526c13568e3f47871472ef5e69fba |