{"id":5503,"date":"2021-04-29T18:18:20","date_gmt":"2021-04-29T09:18:20","guid":{"rendered":"https:\/\/kats-eye.net\/info\/?p=5503"},"modified":"2021-05-04T19:36:13","modified_gmt":"2021-05-04T10:36:13","slug":"l6470-spi","status":"publish","type":"post","link":"https:\/\/kats-eye.net\/info\/2021\/04\/29\/l6470-spi\/","title":{"rendered":"\u30e9\u30ba\u30d1\u30a4\uff14 \u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u3092\u52d5\u304b\u3059\uff08L6470  SPI\u63a5\u7d9a\uff09"},"content":{"rendered":"\n<h2>\u6982\u8981<\/h2>\n\n\n\n<p>\u3000ArduinoUno\u304b\u3089L6470\u30c9\u30e9\u30a4\u30d0\u30fc\u3092\u5229\u7528\u3057\u305f\u30b9\u30c6\u30c3\u30d4\u30f3\u30b0\u30e2\u30fc\u30bf\u30fc\u5236\u5fa1\u306b\u3064\u3044\u3066\u6295\u7a3f\u3057\u305f\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<br>\u3000\u4eca\u56de\u306fRaspberryPi4 ModelB\uff08\u30e9\u30ba\u30d1\u30a4\uff09\u304b\u3089\u306e\u5236\u5fa1\u306b\u3064\u3044\u3066\u8abf\u67fb\u3057\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u306f python \u3067\u3059\u3002<\/p>\n\n\n\n<h2>\u7d50\u679c<\/h2>\n\n\n\n<p>\u3000\u6b21\u306e\uff13\u3064\u306e\u904b\u8ee2\u30e2\u30fc\u30c9\u3092\u78ba\u8a8d\u3057\u305f\u52d5\u753b\u3067\u3059\u3002\uff08\uff12\u500d\u901f\u518d\u751f\uff09<br>\u3000\u3000\u2460\u56de\u8ee2\u65b9\u5411\u30fb\u901f\u5ea6\u3092\u6307\u5b9a\u3059\u308bJOG\u904b\u8ee2\u3000<br>\u3000\u3000\u2461\u79fb\u52d5\u91cf\u3092\u6307\u5b9a\u3059\u308b\u30b9\u30c6\u30c3\u30d7\u904b\u8ee2\u3000<br>\u3000\u3000\u2462\u57fa\u6e96\u306b\u5bfe\u3059\u308b\u7d76\u5bfe\u4f4d\u7f6e\u6307\u5b9a\u3059\u308b\u4f4d\u7f6e\u6c7a\u3081\u904b\u8ee2<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video controls src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/20210428_L6470_STEP_MOTOR.mp4\"><\/video><\/figure>\n\n\n\n<p>\u3000\u753b\u9762\u4e0a\u306b\u3042\u308b\u4e3b\u306a\u69cb\u6210\u6a5f\u5668\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<br>\u3000\u3000\u2460RaspberryPi Model B \uff08\u753b\u9762\u5de6\u524d\uff09<br>\u3000\u3000\u2461\u30b9\u30c6\u30c3\u30d4\u30f3\u30b0\u30e2\u30fc\u30bf\u30fc\uff08\u753b\u9762\u4e2d\u592e\uff09<br>\u3000\u3000\u3000\uff08\u79cb\u6708\u96fb\u5b50\uff1aSM-42BYG011-25\uff09<br>\u3000\u3000\u2462L6470 \u30c9\u30e9\u30a4\u30d0\u30fc\uff08\u753b\u9762\u4e2d\u592e\u5965\uff09<br>\u3000\u3000\u3000\uff08\u79cb\u6708\u96fb\u5b50\uff1aAE-L6470DRV\uff09<br>\u3000\u3000\u2463\u76f4\u6d41\uff11\uff12V\u96fb\u6e90\uff08\u753b\u9762\u53f3\u5965\uff09<\/p>\n\n\n\n<!-- START MoshimoAffiliateEasyLink --><script type=\"text\/javascript\">(function(b,c,f,g,a,d,e){b.MoshimoAffiliateObject=a;b[a]=b[a]||function(){arguments.currentScript=c.currentScript||c.scripts[c.scripts.length-2];(b[a].q=b[a].q||[]).push(arguments)};c.getElementById(a)||(d=c.createElement(f),d.src=g,d.id=a,e=c.getElementsByTagName(\"body\")[0],e.appendChild(d))})(window,document,\"script\",\"\/\/dn.msmstatic.com\/site\/cardlink\/bundle.js?20210203\",\"msmaflink\");msmaflink({\"n\":\"Raspberry Pi 4 Model B Starter Kit Pro\\\/\u30e9\u30ba\u30d9\u30ea\u30fc\u30d1\u30a44B\uff084GB RAM\uff09\u6280\u9069\u30de\u30fc\u30af\u4ed8\\\/MicroSDHC\u30ab\u30fc\u30c932GB NOOBS\u30d7\u30ea\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\\\/1\u3064\u306e\u30d7\u30ec\u30df\u30a2\u30e0\u30b1\u30fc\u30b9\\\/4\u3064\u306e\u30d2\u30fc\u30c8\u30b7\u30f3\u30af\u30bb\u30c3\u30c8\u30681\u3064\u306e\u51b7\u5374\u30d5\u30a1\u30f3\\\/5.1V3A USB-C\u96fb\u6e90\u30a2\u30c0\u30d7\u30bf ON\\\/OFF\u30b9\u30a4\u30c3\u30c1\u4ed8\u304d\\\/2\u3064\u306eMicroHDMI-to-HDMI\u30b1\u30fc\u30d6\u30eb\u30e9\u30a4\u30f3\\\/\u30ab\u30fc\u30c9\u30ea\u30fc\u30c0\\\/\u65e5\u672c\u8a9e\u53d6\u6271\u8aac\u660e\u66f8\\\/3\u5e74\u4fdd\u8a3c\u4ed8\",\"b\":\"Marstudy\",\"t\":\"Raspi4\",\"d\":\"https:\\\/\\\/m.media-amazon.com\",\"c_p\":\"\\\/images\\\/I\",\"p\":[\"\\\/51VNFm2atFL._SL500_.jpg\",\"\\\/51YjPd2oJUL._SL500_.jpg\",\"\\\/51lU5aLeuuL._SL500_.jpg\",\"\\\/41+trQD+6SL._SL500_.jpg\",\"\\\/31gcCxuu6sL._SL500_.jpg\",\"\\\/51n23mVcXrL._SL500_.jpg\",\"\\\/41WeC+Ul8bL._SL500_.jpg\",\"\\\/519E70kv6GL._SL500_.jpg\",\"\\\/41FrO12feUL._SL500_.jpg\"],\"u\":{\"u\":\"https:\\\/\\\/www.amazon.co.jp\\\/dp\\\/B083XSRYXW\",\"t\":\"amazon\",\"r_v\":\"\"},\"v\":\"2.1\",\"b_l\":[{\"id\":1,\"u_tx\":\"Amazon\u3067\u898b\u308b\",\"u_bc\":\"#f79256\",\"u_url\":\"https:\\\/\\\/www.amazon.co.jp\\\/dp\\\/B083XSRYXW\",\"a_id\":1848374,\"p_id\":170,\"pl_id\":27060,\"pc_id\":185,\"s_n\":\"amazon\",\"u_so\":1},{\"id\":2,\"u_tx\":\"\u697d\u5929\u5e02\u5834\u3067\u898b\u308b\",\"u_bc\":\"#f76956\",\"u_url\":\"https:\\\/\\\/search.rakuten.co.jp\\\/search\\\/mall\\\/Raspberry%20Pi%204%20Model%20B%20Starter%20Kit%20Pro%2F%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A44B%EF%BC%884GB%20RAM%EF%BC%89%E6%8A%80%E9%81%A9%E3%83%9E%E3%83%BC%E3%82%AF%E4%BB%98%2FMicroSDHC%E3%82%AB%E3%83%BC%E3%83%8932GB%20NOOBS%E3%83%97%E3%83%AA%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%2F1%E3%81%A4%E3%81%AE%E3%83%97%E3%83%AC%E3%83%9F%E3%82%A2%E3%83%A0%E3%82%B1%E3%83%BC%E3%82%B9%2F4%E3%81%A4%E3%81%AE%E3%83%92%E3%83%BC%E3%83%88%E3%82%B7%E3%83%B3%E3%82%AF%E3%82%BB%E3%83%83%E3%83%88%E3%81%A81%E3%81%A4%E3%81%AE%E5%86%B7%E5%8D%B4%E3%83%95%E3%82%A1%E3%83%B3%2F5.1V3A%20USB-C%E9%9B%BB%E6%BA%90%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF%20ON%2FOFF%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E4%BB%98%E3%81%8D%2F2%E3%81%A4%E3%81%AEMicroHDMI-to-HDMI%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%83%A9%E3%82%A4%E3%83%B3%2F%E3%82%AB%E3%83%BC%E3%83%89%E3%83%AA%E3%83%BC%E3%83%80%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8F%96%E6%89%B1%E8%AA%AC%E6%98%8E%E6%9B%B8%2F3%E5%B9%B4%E4%BF%9D%E8%A8%BC%E4%BB%98\\\/\",\"a_id\":1848376,\"p_id\":54,\"pl_id\":27059,\"pc_id\":54,\"s_n\":\"rakuten\",\"u_so\":2},{\"id\":3,\"u_tx\":\"Yahoo!\u30b7\u30e7\u30c3\u30d4\u30f3\u30b0\u3067\u898b\u308b\",\"u_bc\":\"#66a7ff\",\"u_url\":\"https:\\\/\\\/shopping.yahoo.co.jp\\\/search?first=1\\u0026p=Raspberry%20Pi%204%20Model%20B%20Starter%20Kit%20Pro%2F%E3%83%A9%E3%82%BA%E3%83%99%E3%83%AA%E3%83%BC%E3%83%91%E3%82%A44B%EF%BC%884GB%20RAM%EF%BC%89%E6%8A%80%E9%81%A9%E3%83%9E%E3%83%BC%E3%82%AF%E4%BB%98%2FMicroSDHC%E3%82%AB%E3%83%BC%E3%83%8932GB%20NOOBS%E3%83%97%E3%83%AA%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%2F1%E3%81%A4%E3%81%AE%E3%83%97%E3%83%AC%E3%83%9F%E3%82%A2%E3%83%A0%E3%82%B1%E3%83%BC%E3%82%B9%2F4%E3%81%A4%E3%81%AE%E3%83%92%E3%83%BC%E3%83%88%E3%82%B7%E3%83%B3%E3%82%AF%E3%82%BB%E3%83%83%E3%83%88%E3%81%A81%E3%81%A4%E3%81%AE%E5%86%B7%E5%8D%B4%E3%83%95%E3%82%A1%E3%83%B3%2F5.1V3A%20USB-C%E9%9B%BB%E6%BA%90%E3%82%A2%E3%83%80%E3%83%97%E3%82%BF%20ON%2FOFF%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E4%BB%98%E3%81%8D%2F2%E3%81%A4%E3%81%AEMicroHDMI-to-HDMI%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB%E3%83%A9%E3%82%A4%E3%83%B3%2F%E3%82%AB%E3%83%BC%E3%83%89%E3%83%AA%E3%83%BC%E3%83%80%2F%E6%97%A5%E6%9C%AC%E8%AA%9E%E5%8F%96%E6%89%B1%E8%AA%AC%E6%98%8E%E6%9B%B8%2F3%E5%B9%B4%E4%BF%9D%E8%A8%BC%E4%BB%98\",\"a_id\":1848375,\"p_id\":1225,\"pl_id\":27061,\"pc_id\":1925,\"s_n\":\"yahoo\",\"u_so\":3}],\"eid\":\"3rrYg\",\"s\":\"s\"});<\/script><div id=\"msmaflink-3rrYg\">\u30ea\u30f3\u30af<\/div><!-- MoshimoAffiliateEasyLink END -->\n\n\n\n<h2>\u914d\u7dda\u63a5\u7d9a<\/h2>\n\n\n\n<p>\u3000\u914d\u7dda\u63a5\u7d9a\u306f\u6b21\u306e\u56f3\u306e\u901a\u308a\u306b\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"592\" height=\"316\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/002.jpg\" alt=\"\" class=\"wp-image-5513\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/002.jpg 592w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/002-300x160.jpg 300w\" sizes=\"(max-width: 592px) 100vw, 592px\" \/><figcaption>\u3000\u3000\u203b L6470  JP1 \uff1a3 &#8211; 4 pin \u77ed\u7d61 \uff08EXT-VDD \u7aef\u5b50\u304b\u3089\u5916\u90e8\u96fb\u5727\u4f9b\u7d66\uff09<br><\/figcaption><\/figure><\/div>\n\n\n\n<p>\u3000\u53c2\u8003\u306b RaspberryPi Model B \u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\u3092\u63b2\u8f09\u3057\u307e\u3059\u3002\u7bc4\u56f2\u304c\u72ed\u3044\u306e\u3067\u3001\u30d4\u30f3\u30bd\u30b1\u30c3\u30c8\uff082X5=10P  [FH-2x5SG] \uff09\u3067\u63a5\u7d9a\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"773\" height=\"419\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/003.jpg\" alt=\"\" class=\"wp-image-5514\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/003.jpg 773w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/003-300x163.jpg 300w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/003-768x416.jpg 768w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><\/figure><\/div>\n\n\n\n<h2>\u30e9\u30ba\u30d1\u30a4\u5074\u306eSPI\u8a2d\u5b9a<\/h2>\n\n\n\n<p>\u3000\u30e9\u30ba\u30d1\u30a4\u8a2d\u5b9a\u7528\u30a6\u30a3\u30f3\u30c9\u30a6\u3067 SPI \u8a2d\u5b9a\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u3002<br>\u3000Windows\u3067\u3044\u3046\u30b9\u30bf\u30fc\u30c8\u30e1\u30cb\u30e5\u30fc\uff08\uff1f\uff09\u304b\u3089\u3001\u300c\u8a2d\u5b9a\u300d\u30fc\u300cRaspberry Pi\u306e\u8a2d\u5b9a\u300d\u3067\u8a2d\u5b9a\u30a6\u30a3\u30f3\u30c9\u30a6\u3092\u958b\u304d\u307e\u3059\u3002<br>\u300c\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u300d\u30bf\u30d6\u3067  SPI \u3092\u6709\u52b9\u306b\u3057\u300cOK\u300d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"898\" height=\"464\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/spi_set2.png\" alt=\"\" class=\"wp-image-5517\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/spi_set2.png 898w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/spi_set2-300x155.png 300w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/spi_set2-768x397.png 768w\" sizes=\"(max-width: 898px) 100vw, 898px\" \/><figcaption>\u3000\u3000<\/figcaption><\/figure><\/div>\n\n\n\n<p>\u3000\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089\u300clsmod | grep spi\u300d\u30b3\u30de\u30f3\u30c9\u3067\u300cspi_bcm2835\u300d\u304c\u8868\u793a\u3055\u308c\u308c\u3070\u3001SPI\u63a5\u7d9a\u306f\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u69d8\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3000\u6b21\u306b\u4e0b\u8a18\u30b3\u30de\u30f3\u30c9\u3067\u300cwiringpi\u300d\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002python \u304b\u3089 SPI \u63a5\u7d9a\u3059\u308b\u70ba\u306b\u4f7f\u3044\u307e\u3057\u305f\u3002  <\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-plain\"><code>sudo pip3 install wiringpi<\/code><\/pre><\/div>\n\n\n\n<p>\u3000\u30bf\u30fc\u30df\u30ca\u30eb\u304b\u3089\u306e  SPI \u6709\u52b9\u78ba\u8a8d\u3068\u300cwiringpi\u300d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u72b6\u6cc1\u3092\u6b21\u306e\u56f3\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" width=\"713\" height=\"303\" src=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/wiring_pi_inst.png\" alt=\"\" class=\"wp-image-5519\" srcset=\"https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/wiring_pi_inst.png 713w, https:\/\/kats-eye.net\/info\/wp-content\/uploads\/2021\/04\/wiring_pi_inst-300x127.png 300w\" sizes=\"(max-width: 713px) 100vw, 713px\" \/><figcaption>\u203b SPI \u6709\u52b9\u78ba\u8a8d\u3068\u300cwiringpi\u300d\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<br><br><\/figcaption><\/figure><\/div>\n\n\n\n<h2>\u30d7\u30ed\u30b0\u30e9\u30e0<\/h2>\n\n\n\n<p>\u3000\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"hcb_wrap\"><pre class=\"prism line-numbers lang-python\" data-file=\"L6470_TEST_SPI_004.py\" data-lang=\"Python\"><code>import wiringpi as wp                   \nimport RPi.GPIO as GPIO\nimport struct\nimport time\nimport sys\n\nSPI_CH = 0                              # SPI \u30c1\u30e3\u30f3\u30cd\u30eb\nSPI_HZ = 1000000                        # SPI \u901a\u4fe1\u901f\u5ea6\n\nGPIO_Nbr = 25                           # GPIO-NO\nGPIO.setmode(GPIO.BCM)                  # GPIO-NO \u6307\u5b9a\nGPIO.setup(GPIO_Nbr,GPIO.IN)            # GPIO INPUT \u6307\u5b9a\n\n# L6470\u521d\u671f\u8a2d\u5b9a    \ndef INIT_L6470():\n    spi_send([0x00,0x00,0x00,0xc0])     # Reset Device\n    spi_send([0x05,0x00,0x0e])          # Acceleration (12)\n    spi_send([0x06,0x00,0x0e])          # Deceleration (12)\n    spi_send([0x07,0x00,0x0e])          # Maximum speed (10)\n    spi_send([0x08,0x00,0x01])          # Minimum speed (13)\n    spi_send([0x15,0x03,0xFF])          # Full-step speed (10)\n    spi_send([0x16,0x03])               # Micro Step (8)\n    spi_send([0x09,0x50])               # Holding Kval (8)\n    spi_send([0x0A,0x50])               # Constant Speed Kval (8)\n    spi_send([0x0B,0x50])               # Acceleration starting Kval (8)\n    spi_send([0x0C,0x50])               # Deceleration starting Kbal (8)\n\n# SPI \u30c7\u30fc\u30bf\u9001\u4fe1\ndef spi_send(spi_dat_ary):\n    for itm in spi_dat_ary:\n        tmp=struct.pack(&quot;B&quot;,itm)\n        wp.wiringPiSPIDataRW(SPI_CH, tmp)\n\n# JOG (SPEED\u6307\u5b9a : 0---30000)\ndef L6470_run(run_spd):\n    # \u65b9\u5411\u691c\u51fa\n    if (run_spd &gt; 0):\n        dir = 0x50\n        spd = run_spd\n    else:\n        dir = 0x51\n        spd = -1 * run_spd\n        \n    L6470_SEND_MOVE_CMD( dir , spd )\n\n# \u79fb\u52d5\u91cf\u6307\u5b9a\u79fb\u52d5\ndef L6470_POSITIONING(MV_DIST):\n    # \u65b9\u5411\u691c\u51fa\n    if (MV_DIST &gt; 0):\n        dir = 0x40\n    else:\n        dir = 0x41\n        MV_DIST = -1 * MV_DIST\n        \n    L6470_SEND_MOVE_CMD( dir , MV_DIST )\n\n# \u7d76\u5bfe\u4f4d\u7f6e\u6307\u5b9a\u79fb\u52d5\ndef L6470_MOVE_ABS(MV_DIST):\n    dir = 0x60\n    if (MV_DIST &lt; 0):\n        MV_DIST = -1 * MV_DIST\n        \n    L6470_SEND_MOVE_CMD( dir , MV_DIST )\n        \n# \u30c7\u30fc\u30bf\u52a0\u5de5\u30fb\u9001\u4fe1\uff08\u5171\u901a\uff09\ndef L6470_SEND_MOVE_CMD( cmd , DAT ):\n    tmp=[]\n    tmp.append(cmd)\n    tmp.append((0x0F0000 & DAT) &gt;&gt; 16)\n    tmp.append((0x00FF00 & DAT) &gt;&gt; 8)\n    tmp.append((0x00FF & DAT))\n    spi_send(tmp)\n        \n# \u30c6\u30b9\u30c8\u904b\u8ee2(JOG\u904b\u8ee2)\ndef L6470_DEMO():\n    spd_run = 0\n    inc_spd = 8000\n    print(&quot;DEMO STARTED&quot;)\n    while True:\n        rng = 4\n        for i in range(rng):\n            inc_spd_d = inc_spd\n            if i &gt;= int(rng\/2):\n                inc_spd_d = -1 * inc_spd\n                \n            spd_run = spd_run + inc_spd_d\n            if spd_run &lt;= 0:\n                break\n            L6470_run(spd_run)\n            print(&quot;Speed : %d&quot; % spd_run)\n            time.sleep(2)\n\n        L6470_STOP()\n        print(&quot;DEMO FINISHED&quot;)\n        print(&quot;&quot;)\n        time.sleep(1)\n        break\n\n# \u505c\u6b62\u6307\u4ee4\ndef L6470_STOP():\n    spi_send([0xB0])                    # SOFT STOP\n    time.sleep(0.2)\n    spi_send([0xA8])                    # Hard HiZ\n    time.sleep(0.2)\n\n# \u539f\u70b9\u8a2d\u5b9a\ndef L6470_SET_ORIGIN():\n    spi_send([0xD8])                    # Reset Position\n    time.sleep(0.5)\n\n# \u539f\u70b9\u79fb\u52d5\ndef L6470_MOVE_ORIGIN():\n    spi_send([0x70])                    # Go Home\n    time.sleep(0.5)\n\n# \u30c9\u30e9\u30a4\u30d0\u30fcBUSY\u89e3\u9664\u5f85\u3061\ndef wait_until_not_busy():\n    while True:\n        time.sleep(0.2)\n        mtr_sts = GPIO.input(GPIO_Nbr)\n        #print(mtr_sts)\n        \n        if GPIO.input(GPIO_Nbr) == GPIO.HIGH :\n            print(&quot;L6470 NOT BUSY&quot;)\n            break    \n    time.sleep(0.2)\n\n##################################\n# \u30e1\u30a4\u30f3\u30d7\u30ed\u30b0\u30e9\u30e0\n##################################\nif __name__ == &quot;__main__&quot;:\n    wp.wiringPiSPISetup(SPI_CH,SPI_HZ)  # SPI \u63a5\u7d9a\n    \n    INIT_L6470()                        # L6470\u521d\u671f\u8a2d\u5b9a\n    \n    # \u30c6\u30b9\u30c8\u904b\u8ee2(JOG\u904b\u8ee2)\n    L6470_DEMO()                        # \u30c6\u30b9\u30c8\u904b\u8ee2(JOG\u904b\u8ee2)\n\n    # \u79fb\u52d5\u91cf\u6307\u5b9a\u79fb\u52d5   \n    print(&quot;STEP ROTATION START&quot;)\n    rng=10\n    step = int(1600 \/ rng)\n    for i in range(rng):\n        L6470_POSITIONING(step)         # \u79fb\u52d5\u91cf\u6307\u5b9a\u79fb\u52d5\n        wait_until_not_busy()           # \u30c9\u30e9\u30a4\u30d0\u30fcBUSY\u89e3\u9664\u5f85\u3061\n    print(&quot;STEP ROTATION FINISHED&quot;)\n    print(&quot;&quot;)\n\n    # \u7d76\u5bfe\u4f4d\u7f6e\u6307\u5b9a\u79fb\u52d5\n    print(&quot;ABS ROTATION START&quot;)\n    L6470_SET_ORIGIN()                  # \u539f\u70b9\u4f4d\u7f6e\u8a2d\u5b9a(0)\n    rng=10\n    step = int(3*(1600 \/ rng))\n    for i in range(rng):\n        L6470_MOVE_ABS((i+1)*step)      # \u7d76\u5bfe\u4f4d\u7f6e\u6307\u5b9a\u79fb\u52d5\n        wait_until_not_busy()           # \u30c9\u30e9\u30a4\u30d0\u30fcBUSY\u89e3\u9664\u5f85\u3061\n\n    L6470_MOVE_ORIGIN()                 # \u539f\u70b9\u4f4d\u7f6e\u79fb\u52d5\n    print(&quot;ABS ROTATION FINISHED&quot;)\n    \n    GPIO.cleanup() <\/code><\/pre><\/div>\n\n\n\n<h2>\u307e\u3068\u3081<\/h2>\n\n\n\n<p>\u3000\u6700\u521d\u3001\u300cspidev\u300d\u3068\u3044\u3046\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u8a66\u3057\u305f\u3068\u3053\u308d\u3001\u6b63\u78ba\u306b\u52d5\u304b\u306a\u304b\u3063\u305f\u306e\u3067\u300cwiringpi\u300d\u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u305f\u3002 \u30c7\u30fc\u30bf\u5f62\u5f0f\u7b49\u304c\u7570\u306a\u308b\u306e\u3060\u3068\u601d\u3044\u307e\u3059\u304c\u3001\u57fa\u790e\u77e5\u8b58\u6b20\u5982\u306b\u3088\u308a\u5bfe\u5fdc\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u6642\u9593\u304c\u3042\u308c\u3070\u307e\u305f\u8a66\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<br>\u3000\u4e00\u65b9\u3001\u30e9\u30ba\u30d1\u30a4\u306f\u591a\u7528\u9014\u3067\u5229\u7528\u3067\u304d\u308b\u306e\u3067\u3001\u7d44\u307f\u5408\u305b\u305f\u4f7f\u3044\u65b9\u3082\u691c\u8a0e\u3057\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981 \u3000ArduinoUno\u304b\u3089L6470\u30c9\u30e9\u30a4\u30d0\u30fc\u3092\u5229\u7528\u3057\u305f\u30b9\u30c6\u30c3\u30d4\u30f3\u30b0\u30e2\u30fc\u30bf\u30fc\u5236\u5fa1\u306b\u3064\u3044\u3066\u6295\u7a3f\u3057\u305f\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002\u3000\u4eca\u56de\u306fRaspberryPi4 ModelB\uff08\u30e9\u30ba\u30d1\u30a4\uff09\u304b\u3089\u306e\u5236\u5fa1\u306b\u3064\u3044\u3066\u8abf\u67fb\u3057\u307e\u3057\u305f\u3002\u30d7\u30ed\u30b0\u30e9\u30e0\u306f &hellip; <a href=\"https:\/\/kats-eye.net\/info\/2021\/04\/29\/l6470-spi\/\" class=\"more-link\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"screen-reader-text\">\u30e9\u30ba\u30d1\u30a4\uff14 \u30b9\u30c6\u30c3\u30d7\u30e2\u30fc\u30bf\u30fc\u3092\u52d5\u304b\u3059\uff08L6470  SPI\u63a5\u7d9a\uff09<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":5506,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[110],"tags":[74,116,111,90],"_links":{"self":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5503"}],"collection":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/comments?post=5503"}],"version-history":[{"count":22,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5503\/revisions"}],"predecessor-version":[{"id":5995,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/posts\/5503\/revisions\/5995"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media\/5506"}],"wp:attachment":[{"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/media?parent=5503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/categories?post=5503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kats-eye.net\/info\/wp-json\/wp\/v2\/tags?post=5503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}