{"id":2285,"date":"2013-03-07T01:31:29","date_gmt":"2013-03-06T16:31:29","guid":{"rendered":"https:\/\/blog.eldhrimnir.com?p=2285"},"modified":"2013-03-07T01:31:29","modified_gmt":"2013-03-06T16:31:29","slug":"usb-host-shield-2-0-for-arduino%e3%81%a7%e3%81%aespp%e9%80%9a%e4%bf%a1%e5%ae%9f%e9%a8%93","status":"publish","type":"post","link":"https:\/\/blog.eldhrimnir.com\/?p=2285","title":{"rendered":"USB Host Shield 2.0 for Arduino\u3067\u306eSPP\u901a\u4fe1\u5b9f\u9a13"},"content":{"rendered":"<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u30ef\u30a4\u30e4\u30ec\u30b9\u3067\u306e\u6a5f\u4f53\u72b6\u614b\u306e\u78ba\u8a8d\u3068\u304b\u9060\u9694\u5236\u5fa1\u3068\u304b\u306b\u4f7f\u3048\u308b\u306e\u3067SPP\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u306e\u901a\u4fe1\u304c\u3067\u304d\u308b\u304b\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002 \u300cMultiWiiConf_2_0\u300d\u304b\u3089\u63a5\u7d9a\u3057\u3066\u6a5f\u4f53\u72b6\u614b\u3092\u8868\u793a\u51fa\u6765\u308c\u3070\u3044\u3044\u304b\u306a\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001\u306a\u3093\u3060\u304b\u3093\u3060\u3067\u554f\u984c\u51fa\u307e\u304f\u308a\u3060\u3063\u305f\u306e\u3067\u3059\u3002<\/p>\n<p>\u524d\u56de\u540c\u69d8\u306e\u69cb\u6210\u3067\u3001\u691c\u8a3c\u306b\u4f7f\u3063\u305f\u306e\u306f\u300cUSB Host Shield 2.0 for Arduino\u300d\uff0b\u300cUSB Host Library for Arduino\u300d\u3092\u4f7f\u7528\u3002\u305d\u3057\u3066\u3001\u63a5\u7d9a\u5148\u306eMultiWii\u76f8\u5f53\u3068\u3057\u305fArdunioNano\u3092\u3042\u3066\u3066\u30c6\u30b9\u30c8\u3092\u3057\u307e\u3057\u305f\u3002<\/p>\n<ul>\n<li>PC\u21d4Arduino\u9593\u306eSPP\u63a5\u7d9a\u306b\u95a2\u3057\u3066\u306f\u63a5\u7d9a\u306f\u63a5\u7d9a\u53ef\u80fd<\/li>\n<li>\u305f\u3060\u3057\u3001Windows\u6a19\u6e96\u306eBluetooth\u30b9\u30bf\u30c3\u30af\u3092\u4f7f\u3063\u305f\u5834\u5408\u306b\u306e\u307f\u3002 \u203b\uff1aiba\u3001Motorola\u30b9\u30bf\u30c3\u30af\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\u306b\u306f\u30b5\u30fc\u30d3\u30b9\u691c\u7d22\u306b\u5931\u6557\u3057\u3066\u63a5\u7d9a\u3067\u304d\u307e\u305b\u3093\u3002Broadcom\u30b9\u30bf\u30c3\u30af\u306f\u672a\u78ba\u8a8d\uff09<\/li>\n<\/ul>\n<p><strong>\u25a0PC\u3068\u306eSPP\u63a5\u7d9a\u306e\u6d41\u308c<\/strong><\/p>\n<p style=\"text-align: center;\"><span style=\"color: #ff0000; text-decoration: underline;\"><strong>\u6ce8\u610f\uff1a\u30d7\u30ed\u30c8\u30b3\u30eb\u30b9\u30bf\u30c3\u30af\u306fMicrosoft\u88fd\u306e\u7d14\u6b63\u30b9\u30bf\u30c3\u30af<\/strong><\/span><\/p>\n<ol>\n<li>Arduino\u5074\u3067\u30b9\u30b1\u30c3\u30c1\u300cSPP.ino\u300d\u3092\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3057\u3066\u30c9\u30f3\u30d6\u30eb\u3092\u30bb\u30c3\u30c8<\/li>\n<li>PC\u5074\u3088\u308aBluetooth\u30c7\u30d0\u30a4\u30b9\u3092\u691c\u7d22\u21d2PIN\u30b3\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u63a5\u7d9a \u00a0\u203b\uff1aXP\/7\u3067\u63a5\u7d9a\u78ba\u8a8d\u3092\u884c\u3044\u307e\u3057\u305f\u3002<\/li>\n<\/ol>\n<p style=\"padding-left: 30px;\"><strong>\u2605\u63a5\u7d9a\u5b8c\u4e86\u753b\u9762<\/strong><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/blog.eldhrimnir.comwp-content\/uploads\/2013\/03\/60f3234b7f03778e199077bdd2be6dc12.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2289\" alt=\"\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9\" src=\"https:\/\/blog.eldhrimnir.comwp-content\/uploads\/2013\/03\/60f3234b7f03778e199077bdd2be6dc12.jpg\" width=\"565\" height=\"759\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u307e\u3042\u3001\u3053\u3053\u307e\u3067\u3067\u3082\u306a\u3093\u3060\u304b\u3093\u3060\u3067\u7d50\u69cb\u304b\u304b\u3063\u3066\u3044\u307e\u3059\u3051\u308c\u3069\u3082\u2026\u3002\u30b9\u30bf\u30c3\u30af\u5468\u308a\u306e\u30c8\u30e9\u30d6\u30eb\u3067\u306a\u304b\u306a\u304b\u63a5\u7d9a\u3067\u304d\u306a\u304b\u3063\u305f\u308a\u3068\u304b\u3001\u30c9\u30e9\u30a4\u30d0\u304c2\u91cd\u306b\u5165\u3063\u3066\u3057\u307e\u3063\u3066\u6b63\u5e38\u306b\u52d5\u304b\u304b\u306a\u304f\u306a\u3063\u3066\u3057\u307e\u3063\u305f\u308a\u3068\u304b\u5927\u5909\u3067\u3057\u305f\u3002 \u3088\u3046\u3084\u304f\u63a5\u7d9a\u3067\u304d\u305f\u5f8c\u3067\u3059\u304c\u3001\u305d\u3053\u304b\u3089\u306f\u3053\u308c\u307e\u3067\u4ee5\u4e0a\u306b\u8328\u306e\u9053\u3060\u3063\u305f\u308a\u3057\u307e\u3057\u305f\u3002<\/p>\n<p><!--more--><\/p>\n<p>\u901a\u5e38\u3001\u30b7\u30ea\u30a2\u30eb\u30c7\u30fc\u30bf\u306e\u53d7\u3051\u6e21\u3057\u3092\u3059\u308b\u3060\u3051\u3067\u3042\u308c\u3070\u30b3\u30fc\u30c9\u306f\u975e\u5e38\u306b\u7c21\u5358\u3067\u3059\u3002 \u203b\uff1a\u4ee5\u4e0b\u30b3\u30fc\u30c9\u306fMega\u7cfb\u5217\u306e644P\/1284P\/1280\/2560\u9650\u5b9a\u3067\u3059\u3002\u306a\u305c\u306a\u3089\u3001\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u30b7\u30ea\u30a2\u30eb\u30922\u7cfb\u7d71\u4ee5\u4e0a\u6301\u3063\u3066\u3044\u306a\u3044\u3068\u4f7f\u7528\u3067\u304d\u306a\u3044\u305f\u3081\u3067\u3059\u3002 \u4eca\u56de\u3001Mega\u7cfb\u5217\u3092\u4f7f\u7528\u3057\u305f\u3044\u7406\u7531\u306f\u305d\u306e\u8fba\u308a\u306b\u3042\u308a\u307e\u3059\u3002\u30bd\u30d5\u30c8\u30a6\u30a8\u30a2\u30b7\u30ea\u30a2\u30eb\u3092\u4f7f\u3048\u3070\u307b\u304b\u30db\u30b9\u30c8\u3068\u306eUART\u901a\u4fe1\u306f\u53ef\u80fd\u3067\u3059\u304c\u3069\u901f\u5ea6\u304c\u51fa\u306a\u3044\uff06\u30ea\u30bd\u30fc\u30b9\u3092\u98df\u3046\u306e\u3067\u2026\u3002 \u3055\u3089\u306b\u3001644\/1284\u306f\u5b9f\u88c5\u9762\u7a4d\u304c1280\/2560\u306e\u534a\u5206\u7a0b\u5ea6\u306b\u306a\u308a\u307e\u3059\u3002\u305d\u306e\u305f\u3081\u3001\u305d\u306e\u4e2d\u3067\u6700\u5927\u5bb9\u91cf\u306e1284P\u304c\u6700\u6709\u529b\u5019\u88dc\u3068\u306a\u3063\u3066\u3044\u308b\u306e\u3067\u3059\u3002RAM\u30b5\u30a4\u30ba\u3082\u6700\u5927\u3067\u3059\u3057\u306d\u3002<\/p>\n<p>\u25a0\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\uff11\uff08\u65e7\uff09<\/p>\n<p>[sourcecode]<br \/>\nvoid setup() {<\/p>\n<p>  \/\/ initialize both serial ports:<br \/>\n  Serial.begin(115200);<br \/>\n  Serial1.begin(115200);<br \/>\n}<\/p>\n<p>void loop() {<\/p>\n<p>  \/\/ read from port 1, send to port 0:<br \/>\n  if (Serial1.available()) {<br \/>\n    int inByte = Serial1.read();<br \/>\n    Serial.write(inByte); \u00a0 }<\/p>\n<p>  \/\/ read from port 0, send to port 1:<br \/>\n if (Serial.available()) {<br \/>\n    int inByte = Serial.read();<br \/>\n    Serial1.write(inByte); \u00a0 }<br \/>\n}<br \/>\n[\/sourcecode]<\/p>\n<p>\u25a0\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9\uff12\uff08\u65b0\uff09<\/p>\n<p>[sourcecode]<br \/>\nint inByte_TxRx = 0; \/\/ incoming serial byte<br \/>\nint inByte_RxTx = 0; \/\/ incoming serial byte<\/p>\n<p>boolean stringComplete_TxRx = false; \/\/ whether the string is complete<br \/>\nboolean stringComplete_RxTx = false; \/\/ whether the string is complete<\/p>\n<p>void setup() {<\/p>\n<p>  Serial.begin(115200);<br \/>\n  Serial1.begin(115200); }<\/p>\n<p>void serialEvent() {<\/p>\n<p>  inByte_TxRx = Serial.read();<br \/>\n  stringComplete_TxRx = true; }<\/p>\n<p>void serialEvent1(){<\/p>\n<p>  inByte_RxTx = Serial1.read();<br \/>\n  stringComplete_RxTx = true; }<\/p>\n<p>void loop() {<\/p>\n<p>  if (stringComplete_RxTx) {<br \/>\n    Serial.write(inByte_RxTx);<br \/>\n    stringComplete_RxTx = false;<br \/>\n  }<br \/>\n  if (stringComplete_TxRx) {<br \/>\n    Serial1.write(inByte_TxRx);<br \/>\n    stringComplete_RxTx = false;<br \/>\n  }<br \/>\n}<br \/>\n[\/sourcecode]<\/p>\n<p>\u666e\u901a\u3060\u3063\u305f\u3089\u3001\u4e0a\u8a18\u30b3\u30fc\u30c9\u306e\u53d7\u3051\u6e21\u3057\u5148\u30dd\u30fc\u30c8\u3092\u30cf\u30fc\u30c9\u30a6\u30a8\u30a2\u304b\u3089Bluetooth\u306b\u5909\u66f4\u3057\u3066\u3042\u3052\u308c\u3070\u3046\u307e\u304f\u3044\u304f\u306f\u305a\u306a\u306e\u3067\u3059\u304c\u3001\u5168\u304f\u3046\u307e\u304f\u3044\u304b\u306a\u3044\u72b6\u614b\u306b\u306a\u308a\u307e\u3057\u305f\u3002 \u8272\u3005\u3068\u60a9\u3093\u3060\u7d50\u679c\u308f\u304b\u3063\u305f\u3053\u3068\u306f\u3084\u306f\u308a\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u5236\u5fa1\u306e\u30b7\u30ea\u30a2\u30eb\u306a\u306e\u3067\u30c7\u30fc\u30bf\u306e\u5165\u51fa\u529b\u306e\u5272\u308a\u8fbc\u307f\u304c\u591a\u3059\u304e\u3066\u51e6\u7406\u3067\u304d\u306a\u3044\u307e\u307e\u6b62\u307e\u3063\u3066\u3044\u308b\u2026\u3002\u304a\u305d\u3089\u304f\u30d0\u30c3\u30d5\u30a1\u30a8\u30e9\u30fc\u2026\u3002Orz \u305d\u3053\u304b\u3089\u8272\u3005\u3068\u30c6\u30b9\u30c8\u3057\u305f\u7d50\u679c\u3067\u3059\u304c\u3001\u53d7\u4fe1\u30c7\u30fc\u30bf\u306e\u30d0\u30c3\u30d5\u30a1\u5185\u5bb9\u3092\u4e00\u62ec\u3067\u914d\u5217\u306b\u683c\u7d0d\u3057\u3066\u304b\u3089\u9001\u4fe1\u3057\u3066\u3042\u3052\u308b\u4e8b\u3067\u89e3\u6c7a\u3057\u307e\u3057\u305f\u3002<\/p>\n<p>\u25a0SPP\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9<\/p>\n<p>[sourcecode]<br \/>\n#include &amp;lt;<\/p>\n<p>SPP.h&amp;gt;<\/p>\n<p>USB Usb;<\/p>\n<p>BTD Btd(&amp;amp;Usb);<\/p>\n<p>SPP SerialBT(&amp;amp;Btd, &quot;Arduino_Mega&quot;,&quot;0000&quot;);<\/p>\n<p>void setup() {<\/p>\n<p>  Serial.begin(115200);<br \/>\n  Serial1.begin(115200);<\/p>\n<p>  if (Usb.Init() == -1) {<br \/>\n    Serial.print(F(&quot;\\r\\nOSC did not start&quot;));<br \/>\n    while(1); \/\/halt<br \/>\n  }<br \/>\n  Serial.print(F(&quot;\\r\\nSPP Bluetooth Library Started&quot;)); }<\/p>\n<p>void loop() {<\/p>\n<p>  Usb.Task();<\/p>\n<p>  if(SerialBT.connected) {<br \/>\n    uint8_t length = SerialBT.available();<br \/>\n    uint8_t str_box[length-1];<br \/>\n    for(uint8_t i = 0; i &amp;lt; length; i++){<br \/>\n      str_box[i]=SerialBT.read();<br \/>\n    }<br \/>\n  Serial1.write(str_box,length);<br \/>\n  }<br \/>\n}<\/p>\n<p>void serialEvent1() {<\/p>\n<p>  uint8_t length = Serial1.available();<br \/>\n  uint8_t str_box[length-1];<\/p>\n<p>  if(SerialBT.connected) {<br \/>\n    for(uint8_t i = 0; i &amp;lt; length; i++){<br \/>\n      str_box[i]=Serial1.read();<br \/>\n    }<br \/>\n  SerialBT.print(str_box,length);<br \/>\n  }<br \/>\n}<br \/>\n[\/sourcecode]<\/p>\n<p>\u3084\u306f\u308a\u3001\u7121\u7dda\u3067\u3059\u3057\u51e6\u7406\u901f\u5ea6\u304c\u8db3\u308a\u306a\u3044\u3088\u3046\u306a\u306e\u3067\u901f\u5ea6\u306f\u305d\u308c\u307b\u3069\u51fa\u307e\u305b\u3093\u3002 \u53b3\u5bc6\u306a\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u306f\u306a\u3044\u3067\u3059\u304c\u3001\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30c7\u30fc\u30bf\u306b\u8fd1\u3044\u3082\u306e\u306f\u53d6\u5f97\u3067\u304d\u305d\u3046\u3067\u3059\u3002<\/p>\n<p>processing\u3068\u304b\u3092PC\u5074\u306e\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u306b\u3059\u308c\u3070\u6bd4\u8f03\u7684\u7c21\u5358\u306bPC\u304b\u3089\u306e\u9060\u9694\u64cd\u7e26\u304c\u53ef\u80fd\u306b\u306a\u308b\u3068\u601d\u308f\u308c\u307e\u3059\u3002\u305d\u306e\u969b\u306b\u306fClass1\u306eBT\u30c9\u30f3\u30b0\u30eb\u3092\u53cc\u65b9\u3067\u4f7f\u7528\u3059\u308c\u3070\u8ddd\u96e2100m\u307e\u3067\u64cd\u4f5c\u53ef\u80fd\u3068\u306a\u308a\u307e\u3059\u3002 \u305d\u3053\u307e\u3067\u3084\u308b\u3068\u30ab\u30e1\u30e9\u3092\u642d\u8f09\u3057\u306a\u3044\u3068\u30c0\u30e1\u3067\u3059\u306d\u3002\u3067\u3082\u3001\u305d\u3093\u306a\u306b\u8efd\u3044\u30ab\u30e1\u30e9\u3068\u304b\u5b58\u5728\u3059\u308b\u306e\u3067\u3057\u3087\u3046\u304b\uff1f\uff08\u30a2\u30e1\u30ea\u30ab\u306b1g\u306eNTSC\u51fa\u529b\u306e\u30ab\u30e1\u30e9\u304c\u6709\u308b\u307f\u305f\u3044\u3067\u3059\u3051\u3069\u3082\u3001\u65e5\u672c\u3067\u306f\u4f7f\u7528\u3067\u304d\u306a\u3044\uff09 \u6b21\u56de\u306f\u3001\u96fb\u6e90\u5468\u308a\uff08\u30d0\u30c3\u30c6\u30ea\u30fc\u5468\u308a\uff09\u306e\u56de\u8def\u306e\u30c6\u30b9\u30c8\u3092\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u3042\u3068\u306f\u3001Atmega1284P\u3092\u5b9f\u6a5f\u306b\u306f\u7a4d\u307f\u305f\u3044\u306e\u30671284P\u3067\u306e\u63a5\u7d9a\u691c\u8a3c\u3067\u3059\u306d\u3002 \u00a0\u691c\u8a3c\u304c\u3046\u307e\u304f\u884c\u3063\u305f\u3089\u3001\u5c02\u7528\u57fa\u677f\u3092\u4f5c\u3063\u3066\u5b9f\u6a5f\u98db\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u304d\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002\u57fa\u677f\u306f4\u5c64\u304b\u306a\uff1f<\/p>\n<blockquote><p>\u2605\u53c2\u8003\u60c5\u5831<\/p>\n<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u3001\u30cf\u30fc\u30c9\u30a6\u30a7\u30a2\u30b7\u30ea\u30a2\u30eb\u3067\u3082\u9ad8\u901f\u901a\u4fe1\u3055\u305b\u308b\u3068\u30d0\u30c3\u30d5\u30a1\u304b\u3089\u6ea2\u308c\u3066\u30c7\u30fc\u30bf\u304c\u65ad\u7247\u5316\u3059\u308b\u3053\u3068\u304c\u3042\u308b\u3088\u3046\u306a\u306e\u3067\u5bfe\u7b56\u30b3\u30fc\u30c9\u3092\u3001\u4e0a\u8a18\u30c6\u30b9\u30c8\u7248\u306e\u5909\u5f62\u3067\u3059\u3002<\/p>\n<p>\u25a0ATMega\u9ad8\u901f\u30b7\u30ea\u30a2\u30eb\u901a\u4fe1\u7528\u30c6\u30b9\u30c8\u30b3\u30fc\u30c9<\/p>\n<p>[sourcecode]<br \/>\nvoid setup() {<\/p>\n<p>Serial.begin(115200);<br \/>\nSerial1.begin(115200);<br \/>\n}<\/p>\n<p>void loop() {<\/p>\n<p>uint8_t length = Serial.available();<br \/>\nuint8_t str_box[length-1];<\/p>\n<p>  for(uint8_t i = 0; i &amp;lt; length; i++){<br \/>\n    str_box[i]=Serial.read();<br \/>\n  }<br \/>\n  Serial1.write(str_box,length); }<\/p>\n<p>void serialEvent1() {<\/p>\n<p>  uint8_t length = Serial1.available();<br \/>\n  uint8_t str_box[length-1];<\/p>\n<p>  for(uint8_t i = 0; i &amp;lt; length; i++){<br \/>\n    str_box[i]=Serial1.read();<br \/>\n  }<br \/>\n  Serial.write(str_box,length);<br \/>\n}<br \/>\n[\/sourcecode]<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>\u305b\u3063\u304b\u304f\u306a\u306e\u3067\u30ef\u30a4\u30e4\u30ec\u30b9\u3067\u306e\u6a5f\u4f53\u72b6\u614b\u306e\u78ba\u8a8d\u3068\u304b\u9060\u9694\u5236\u5fa1\u3068\u304b\u306b\u4f7f\u3048\u308b\u306e\u3067SPP\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u306e\u901a\u4fe1\u304c\u3067\u304d\u308b\u304b\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002 \u300cMultiWiiConf_2_0\u300d\u304b\u3089\u63a5\u7d9a\u3057\u3066\u6a5f\u4f53\u72b6\u614b\u3092\u8868\u793a\u51fa\u6765\u308c\u3070\u3044\u3044\u304b\u306a\u3068\u601d\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,25,16],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=\/wp\/v2\/posts\/2285"}],"collection":[{"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2285"}],"version-history":[{"count":0,"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=\/wp\/v2\/posts\/2285\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.eldhrimnir.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}