2024年1月29日月曜日

line-notify / avr gcc asm on avrdue via usbasp

#message only

import requests

url = "https://notify-api.line.me/api/notify" 

token = "qmapg2FRrm4gt1V9Qfupz6eIAa05jDTNAw7xoGIU31Q"

headers = {"Authorization" : "Bearer "+ token} 

message =  "そぞら@プログラミングに夢中すぎる会社員より" 

payload = {"message" :  message} 

r = requests.post(url, headers = headers, params=payload)


 # imageをLINEに挿入 --- (*2)

TOKEN='qmapg2FRrm4gt1V9Qfupz6eIAa05jDTNAw7xoGIU31Q'

API = 'https://notify-api.line.me/api/notify' 

import requests

fname='./image.jpg'

post_data = {'message': '侵入者アリ'}

headers = {'Authorization': 'Bearer ' + TOKEN}

files={'imageFile': open(fname,'rb')}

requests.post(API, data=post_data,headers=headers,files=files)

----------------------------------------------------------------

avrdude: Warning: cannot open USB device: Permission denied - shangtian’s blog

https://www.shangtian.tokyo/entry/2021/06/19/104814#:~:text=%E3%81%BE%E3%81%9A%E3%81%AFlsusb%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%83%87%20%E3%83%90%E3%82%A4%E3%82%B9%20%E3%82%92%E6%8E%A2%E3%81%97%E3%81%AB%E8%A1%8C%E3%81%8F%E3%80%82%20USBasp%E3%82%92%E6%8C%BF%E3%81%97%E3%81%9F%E7%8A%B6%E6%85%8B%E3%81%A8%E6%8A%9C%E3%81%84%E3%81%9F%E7%8A%B6%E6%85%8B%E3%81%A7%E6%AF%94%E8%BC%83%E3%81%97%E3%81%A6%E3%83%87%20%E3%83%90%E3%82%A4%E3%82%B9%20%E3%82%92%E7%89%B9%E5%AE%9A%E3%81%97%E3%81%A6%E3%81%84%E3%81%8F%E3%81%A8%E3%80%81%E3%81%86%E3%81%BE%E3%81%8F%E8%A1%8C%E3%81%8F%E3%81%8B%E3%81%AA%E3%80%82%20%24%20lsusb,Bus%20003%20Device%20015%3A%20ID...........................%20%E5%85%88%E7%A8%8Blsusb%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E3%83%87%20%E3%83%90%E3%82%A4%E3%82%B9%20%E3%82%92%E7%89%B9%E5%AE%9A%E3%81%97%E3%81%9F%E3%80%82

https://qiita.com/aKuad/items/2a41c1d7fc58a403efb2 :: main

https://www.exasub.com/component/integrated-circuit/microcontroller/avr/how-to-install-avr-gcc-compiler-in-raspberry-pi/ ::  sub 

botth for gcc-avr ,avr-libc

https://www.rikachann.jp/blog/pengin/archives/216  :: avra

2024年1月20日土曜日

lua/c or micropython/python pedia

-----------lua --------------------------------------

sudo apt install libssl-devですべてうまくいくようになった(ただしopensslをapt install

したりソースからビルドしたりして、いずれもapt remove,make unistallしたあとだが。。)

http,lapisも無事にインストできた(VirtualBox) sqlite3もdevいれんといかんみたい

raspberry piではうまくいかんが。。。lsqlite,socket,copasはうごいた

GitHub - LuaDist/lsqlite3: LuaSQLite 3 is a thin wrapper around the public domain SQLite3 database engine. 無事にインストできた exampleもうごいた

sudo apt instasll lua-copas and curl --http0.9 http://localhost:8000 以下のサイト成功

Lua Copasを使ってみる - コピペプログラマーのブログ (hatenablog.com) OK

https://densan-labs.net/tech/lua/chapter6.html#id13 でグローバル変数で数字は浮動小数点になってしまうので  printf("SIZE : %d\n", lua_tointeger(L, -1)); はエラーとなる

printf("%f\n",lua_tonumber(L,-1))でないとエラーとなる

同様に以下の変更が必要

/ sample.lua using cfunc l_add as add
// x =10 // Lua stackにつまれる
// y =5   // Lua stackにつまれ
// result = add(x, y) // add(x,y)の結果がLua stack につまれ、その結果がresultにポップされる
// print("x + y は " .. result .. " です")

int l_add(lua_State* L)
{
  int x = luaL_checknumber(L,-2); // checkint->checknumber
  int y = luaL_checknumber(L,-1); // as above
  int result = x + y;
  printf("%d + %d is calculated\n",x,y);
  lua_pushnumber(L,result); // int計算しても浮動小数点でつまれる
  return 1;
}

int main(void){

//  int x = 10, y = 5; // no meaning code, never used
  lua_State* L = luaL_newstate();
  luaL_openlibs(L);//luaの標準関数を使用するため	
  lua_register(L,"add",l_add); // regsiter l_add as add in lua
  if(luaL_loadfile(L,"sample.lua") || lua_pcall(L,0,0,0)){
	  printf("sample.lua can not open\n");
    printf("error:%s\n",lua_tostring(L,-1));
    return 1;
  }
  lua_close(L);
  return 0;
}	

ーーーーーーmicropythonーーーーーーーーーーーーーーーーーーーーーーーーーー

 Quick reference for the RP2 — MicroPython latest documentation !!

以下をmain.pyでラズピコにおいて/dev/ttyACM0を解放する

import machine,time

adc0=machine.ADC(0) # 

f = 100 / 65535

while True:

  v = adc0.read_u16()*f

  print(v)

  time.sleep(0.5)

そして以下のpythonコードをpython3で実行する!

import serial

ser = serial.Serial('/dev/ttyACM0',115200,timeout=1)

try:

 while True:

  data = ser.readline()

  s = data.decode()

  print("read: ",s.strip())

except:

  ser.close


2024年1月19日金曜日

esp01 via arduinoIDE :: dht11,lcd1602

 ESP-01とDHT11を使ったサーバー - KomaKomaBlog (hatenablog.com)を参考にしたが

【電子工作】ESP-01(ESP8266)やESP32で取得した情報をLINEに通知する方法! | ぶらり@web走り書き (burariweb.info) で3vにdht11つないで、gpio3でなく、gpio2で成功

このボードマネジャは最新のesp8266でした

---------------------------------------------------------------------

これは上記の最新ボードマネジャーではうごかずダウングレードして成功

Tx,Rxが不要となるのでDHT11くらいはうごきそう。。。。あとWS2812くらい。。。。

2024年1月12日金曜日

c and lua or python interface

  windowsの場合はLuaを組み込んだC言語プログラムのコンパイル #C - Qiitaではlua54.aをつかっているがうまくいかんlua54.dllを仕込んで成功

gcc -o LuaTest LuaTest.c -I. -L. -llua54

1. Running a Lua Script from C - Creating Solid APIs with Lua [Book] (oreilly.com)

これを参考に関係ライブラリをとりこみ,luaXX.aもとりこむ(github installではsoできん)

gcc doscript.c -o doscript -lluaXX -L. -I. -lm -ldl
ただしなぜかraspiOS 64bitでは不成功 do_loadを除き成功 まあよしか。。。
---- c and python ------------------------------------------
PythonとCの連携で高速処理!!(ctypes) #Python - Qiita :: ラズパイで成功
ウィンドウズでは MinGWでDLLを作成して実行する (digirakuda.org)  
を参考にしてdllつくって成功


2024年1月7日日曜日

nodemcu lua scripts::bme280 OK,lcd1602 OK

esp01はgpio0をGNDにしてUSBシリアル3Vから1M仕様を書き込める 実行時は

gio0をフリーにする ACラインより3V供給してUSBシリアルはgnd,tx,rxのみ残して通信!

ああややこい、よって没

NodeMCU Documentationが基本となる! Cモジュールははいっとるげな

--------------------simple server----------------------------

print(wifi.sta.getip())
--nil
wifi.setmode(wifi.STATION)
wifi.sta.config("184F32CF8BF3-2G","2215085363556")
print(wifi.sta.getip())
--192.168.18.110
-- a simple http server
srv=net.createServer(net.TCP)
srv:listen(80,function(conn)
    conn:on("receive",function(conn,payload)
    print(payload)
    conn:send("<h1> Hello, NodeMcu.</h1>")
    end)
end)
注:getipででるアドレスをブラウズして成功

ーーーーーーーblink.luaーーーーーーーーーーーーーーーーーーーーーーーー

https://gist.github.com/skyrocknroll/fb7184f4a6e0025e5d33443553a995db 有益

ただし ピン配置は注意が必要

https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/ を参考にする

---bme280-----------------------------------------------------------------------------

BME280を用いた NodeMCUの温湿度・気圧測定 プログラム | TomoSoft で成功!

t, p, h = dofile("bme280.lua").read()

print (string.format("T:%d P:%d H:%d",t,p,h))

ーーlcd1602ーー5v駆動ーーーーーーーーーーーーーーーーーーーー

GitHub - dreske/nodemcu-lcd1602: 16x2 LCD I2C Lua Module for NodeMCU で

ゲットしたlcd1602.luaをいれて

require("i2c") // defaultで入っているみたい

lcd = require("lcd1602")

scl = 1 // d1

sda = 2 // d2

i2c.setup(0, sda, scl,i2c.SLOW)

lcd.init(0x27) 

lcd.printAt(0, 0, "Hello World.")

2024年1月2日火曜日

microchip studio :: avr-asm,avr-gcc

 .include "tn2313def.inc" 

.device attiny2313 注:小山さんのではないがmicrochip studioでは必須!

AVRでアセンブリ(1) – 導入とLチカ (blueeyes.sakura.ne.jp) を参考にした

.cseg

    LDI  R16,0b00001000

    OUT  DDRB,R16       ;PB3は出力, 他は入力

LOOP:

    LDI  R16,0b00001000

    OUT  PORTB,R16      ;PB3は1(LED点灯), 他は0

    RJMP LOOP           ;LOOPの箇所にジャンプ

-------pb5まで実装されている場合pb6,pb7はないので0にしておく慣例のようだ-----------------
#define    F_CPUは #include <util/delay.h> に影響を与えるのでクロックが9.6MHzなら96000でOKです。PB5はフューズでRESETになっているので、特に設定せず、DDRB = 0b00000001; PORTB = 0b00000010;  で割り込みのPB1とLEDのPB0を設定するだけで動くはずです。よろしくお願いします。
おはようございます。PB5ピンの件、我が家では常に10kΩでプルアップしリセットスイッチを付けているのでうっかり昨日のようなメールになりましたが、何もつないでいない場合は内部プルアップしておくのが正解です。ピンは何もつないでいない場合、「浮いた」状態になっているため、他のピンはともかくリセットピンはLOWに振れたときリセットがかかってしまいます。ちなみにPICはconfigでリセットピンを選択すると自動的にプルアップになります。よろしくお願いします。